← 全部的單
GitHub #296 ↗
Compute 互通・功能
在 Farside Compute 跑完任務的人,馬上拿到一組成果代碼、看得到它什麼時候過期;成果檔另外放進一個「只有 Farside 能寫、Slate 只能讀」的檔案池,讓 Slate 那一側(#252)憑這組代碼把檔帶進畫布。
#296 Farside 側:Compute 成果的檔案池+成果代碼(#252 的前置,ADR-0115)
狀態
還沒開始
誰在做
宜芳分派
做到哪
還沒有程式、沒有 PR,也還沒建檔案池或權杖。Farside 那一側 10/04 做了現況調查:成果已經自動上傳到 Farside 自己的 R2 工作區桶(不是只留在 GPU 機器上),但那個桶不是要另開的檔案池;目前自動流程只收 3DGS 的 splat.ply,模型權重沒收。負責人 10/05 照 PM 建議定了做事順序、代碼一次性 24 小時、池子只放成果(
#326
)。
卡在
照 10/05 定的順序,要先等
#252
(畫布這邊,負責人+Claude)貼出介面草案:清單檔的格式、給 Slate 的唯讀權杖能碰什麼、誰記「代碼已經用過」、池子的保存期與大小上限提案。草案確認後,還要宜芳分派這張的實作。
下一步
畫布這邊(負責人+Claude)先在
#252
、
#296
貼介面草案;負責人與 Farside 那一側確認後,宜芳分派這張的實作。實作的人第一步:在這張留言公告後,建檔案池桶與兩把權杖(Farside 寫、Slate 只讀),再做發代碼、寫清單檔、任務完成處顯示代碼。
提醒:
① 本文〈還沒裁的〉三題都有著落了:第 1 題(成果存在哪)Farside 那一側 10/04 自己查到了——已經在 R2,但那是 Farside 自己的工作區桶,不是要另開的檔案池;第 2 題 10/05 定一次性 24 小時;第 3 題(池子上限、保存期)改成跟
#252
一起定。所以「待負責人裁決」這個標籤現在只剩第 3 題、而且要等
#252
草案,建議拿掉或改標,本文也該請負責人+Claude 更新。② 本文與 10/05 那則留言都寫了指定某位工程師實作;但負責人 10/05 補了一句「之後一律先給宜芳看、由她分派」,所以誰做由妳決定。③ 三張單互相等:這張等
#252
的草案;
#252
從頭到尾的驗收等這張的池子和代碼;
#297
排在
#252
之後——起點是
#252
草案。④ Farside 今天自動產出的只有 3DGS 的 .ply,第一輪驗收大概只能用 3D 檔;圖、報告、表格的出口要另外做(見〈還沒定的〉)。⑤ 本文〈測試方式〉的端到端要
#252
做好才跑得了;這張自己可以先驗權杖、代碼、清單檔三件。⑥ Farside 的程式碼在另一個 repo,寫這份時讀不到,Farside 任務完成處的畫面是照需求畫的線框,不是現在的樣子。
一步一步 8
已經定的 15
還沒定的 8
怎麼驗收 8
這張不做 10
這張要解決什麼
在 Farside Compute 跑 GPU 任務的人,同時也用 Slate 畫布(例如把現場照片做成 3DGS 立體模型的設計師)
,任務跑完,成果只放在 Farside 自己的工作區;要放上 Slate 畫布只能自己下載再上傳,Slate 也不知道這個檔是哪個任務做出來的——要能 任務一完成就在 Farside 看到一組成果代碼和它的期限,複製下來拿去 Slate 畫布貼上,成果就帶過去了(貼的那一半在
#252
)
一步一步
8 步
實作的人(宜芳分派)
先在
#296
留言公告要改 Cloudflare 設定,然後在 Cloudflare 開一個新的 R2 桶當檔案池,發兩把權杖:一把給 Farside、只能寫這個池子;一把給 Slate、只能讀這個池子
池子存在。沒有任何一把權杖同時能寫池子又能碰 Slate 現在的檔案桶;Farside 對 Slate 的檔案桶讀寫都沒有。權杖清單截圖貼回這張單
Cloudflare 後台:API 權杖清單(截圖貼回 #296 給 PM 看)
API 權杖
每把權杖一列:名稱、能碰哪個桶、讀或寫
Farside 用的:檔案池・讀寫
Slate 用的:檔案池・只能讀
沒有一把同時碰檔案池和 Slate 的檔案桶
使用者(在 Farside)
跟今天一樣送一個 GPU 任務,例如用照片訓練 3DGS
任務照常排隊、跑;這一段不改
Farside 系統(任務跑完)
跟今天一樣把成果寫進 Farside 自己的工作區;再把這次要給使用者帶走的成果(圖、報告、表格、3D)放進檔案池。模型權重(checkpoint、LoRA)不放進池子
池子裡有這次的成果檔。診斷紀錄 runner.log 不算成果、不放進去(Farside 那一側 10/04 的讀法)
Farside 系統
產生一組成果代碼(亂數、至少 128 bit,不是檔案路徑、看不出任務或使用者),並在池子裡寫一份清單檔:版本、哪個任務、產生與過期時間;每個檔的原檔名、大小、檢查碼、類型、在池子裡的位置;權重只寫位置
代碼 24 小時內有效、只能用一次。Slate 不用呼叫 Farside,用唯讀權杖讀得到這份清單(清單怎麼命名、欄位最後長什麼樣,照
#252
草案)
使用者(在 Farside)
打開剛完成的任務(任務完成頁或通知,放哪還沒定),看成果代碼,按複製
代碼在剪貼簿裡,也看得到什麼時候過期
Farside:任務完成處多一塊「成果代碼」(線框,照需求畫,不是現在的畫面)
任務完成
這次的成果:splat.ply・3D(Gaussian splat)・檔案大小
模型權重:只記位置,不會帶到 Slate(有權重時才出現)
成果代碼(唯讀,一長串亂數)
複製代碼
有效到 ○月○日 ○○:○○,只能用一次
到 Slate 畫布左側的「從 Compute 匯入」貼上
使用者(在 Slate,#252 那一半)
打開畫布,按左側工具列的「從 Compute 匯入」,貼代碼、按匯入
Slate 用唯讀權杖讀池子裡的清單與檔,複製進自己機構的區域、比對檢查碼,成果以檔案元件出現在畫布上。同一組代碼第二次貼就失敗(「已經用過」由誰記,寫在
#252
草案;Slate 不能刪池子裡的東西)
使用者
超過 24 小時才去 Slate 貼,或代碼弄丟了
Slate 那邊回固定格式的錯誤。能不能回 Farside 再拿一組新的代碼,還沒定
檔案池(自動清理)
過了保存期,池子裡的檔自動刪掉(保存多久還沒定)
R2 的自動清除會晚最多約一天,所以「代碼過期」不能靠池子刪檔來判斷,Slate 匯入時要看清單上的過期時間自己擋(Farside 那一側 10/04 查的)
已經定的
15 條
要做的是「Compute 的成果在 Slate 讀得到」,不是畫布去呼叫 Compute;帳號合併之前只做匯入
ADR-0115
裁決二(含 2026-10-01 修訂三)
另開一個 R2 桶當檔案池:只有 Farside 寫、Slate 只讀
ADR-0115
裁決三
Slate 現在的檔案桶,Farside 讀寫都拿不到(那裡有對外單據的正本)
ADR-0115
裁決三;
#296
本文〈要做什麼〉第 1 點
檔案池不改成雙向;反方向(Slate 的檔給 Compute)另開交換桶,是
#297
,排在
#252
與第一階段帳務之後
ADR-0115
(裁決之後「另裁」那一段);負責人 10/05 照PM建議(
#326
二、
#297
留言)
成果代碼由 Farside 在成果產出時發:亂數至少 128 bit、有時效,不能拿池子裡的路徑當代碼
ADR-0115
〈安全要求〉
成果代碼一次性、24 小時有效
負責人 10/05「照PM建議」(
#326
二、
#296
留言)
池子只放成果(圖、報告、表格、3D);模型權重(checkpoint、LoRA)不複製,只在清單裡記位置
ADR-0115
裁決三;負責人 10/05(
#326
二)
池子的大小上限與保存期,跟
#252
的匯入政策一起定
負責人 10/05(
#326
二)
做事順序選 B:
#252
(Slate 匯入端)先出清單檔格式與唯讀權杖的介面草案,Farside 這一側照草案做;「誰記錄代碼已兌換」寫進
#252
的草案
負責人 10/05「照PM建議」(
#326
二、
#296
留言)
範圍只有成果檔案;不在 Slate 看 Compute 的任務紀錄、用量
負責人 10/03(
#252
留言「三個決定」第 2 點;
#296
本文〈已經裁定的〉)
匯入不收點數(帳號合併之前)
ADR-0115
裁決四
合併之前兩側都不需要動帳號系統(Farside 照舊用自己的帳號)
ADR-0115
〈實作〉
任務完成時使用者拿得到成果代碼、看得到有效期;清單檔格式要跟
#252
對齊,寫在這張或
ADR-0115
的附錄
#296
本文〈驗收條件〉
這張的實作由宜芳分派;之後新工作一律先給宜芳看、由她分派
#326
〈分工〉與負責人 10/05 補充
改 Cloudflare 設定(建桶、發權杖、設 secret)之前,先在 issue 留言公告
#248
規矩第 2 條(宜芳已確認八條規矩)
還沒定的
8 題
Slate 怎麼從一組代碼找到池子裡的檔?
A:Farside 在池子裡放一份以「代碼的雜湊」命名的清單檔,Slate 用唯讀權杖去讀
B:Slate 呼叫 Farside 的 API 問這組代碼對到哪些檔
建議:
A(
#296
本文第 3 點的建議,還沒定案):Slate 不用呼叫 Farside,守住「Compute 不需要知道 Slate 存在」
誰裁:#252 草案寫,負責人與 Farside 那一側確認
清單檔每個成果要寫哪些欄位?
照 Farside 那一側 10/04 列的起點:版本、任務識別、產生與過期時間;每個檔的原檔名、大小、檢查碼與算法、類型與具體格式、池內位置、「複製」或「只記位置」
再加別的(例如縮圖、說明文字)
建議:
照 10/04 那份當起點;檢查碼用 SHA-256;3DGS 的 .ply 要在類型寫明是 Gaussian splat,不能只靠副檔名(Farside 那一側 10/04 的建議,未定)
誰裁:#252 草案寫,負責人與 Farside 那一側確認
「這組代碼已經用過」由誰記?只讀清單檔不會自己失效,Slate 也不能刪池子裡的東西
Slate 自己記
Farside 記,Slate 兌換時回頭通知 Farside
誰裁:寫進 #252 草案(#326 指定),負責人確認
檔案池的檔留多久、池子總共多大?
代碼過期後幾天就清(反方向
#297
的交換桶定的是 7 天)
留久一點,讓使用者可以重新拿代碼
建議:
#252
草案提一個數(
#326
:跟匯入政策一起定)
誰裁:負責人
代碼過期或弄丟了,能不能在 Farside 重新拿一組?
可以:池子裡的檔還在,就能對同一批成果再發一組新代碼
不行:過期就只能自己下載再到 Slate 上傳
誰裁:負責人(跟保存期一起定)
成果代碼放在 Farside 的哪裡給使用者看?
任務完成頁
通知
兩個都放
誰裁:負責人(本文寫「任務完成頁或通知」,沒選)
模型權重「只記位置」要記到哪裡?Farside 目前的自動流程不收權重,只記 GPU 機器上的暫存路徑不夠(任務結束就沒了)
Farside 先把權重放到一個會留著的位置,清單檔再記那個位置
第一版先不處理權重,等之後補
誰裁:Farside 那一側回答現況,負責人決定第一版做不做
Farside 今天的自動出口只有 3DGS 的 .ply;圖、報告、表格要不要在第一版就有出口進池子?
第一版只做 3DGS,其他類型之後補
第一版就做成各種類型都能放進池子
誰裁:負責人
怎麼驗收
8 項
前提:
實作完成;工程在 Cloudflare 後台列出所有 API 權杖,截圖貼回
#296
操作:
PM 看截圖
應該看到:
有一個新的檔案池桶(不是 Farside 現在的工作區桶);Farside 那把能寫池子、Slate 那把只能讀池子;沒有任何一把同時能寫池子又能碰 Slate 的檔案桶;Farside 的權杖對 Slate 的檔案桶沒有任何權限
前提:
Slate 那把唯讀權杖
操作:
工程用它試著往池子寫一個小檔、再試著刪一個檔,把結果截圖貼回單子
應該看到:
兩個都被拒絕
前提:
Farside 的測試帳號
操作:
跑一個小的 3DGS 任務到完成,打開任務完成的地方
應該看到:
看得到這次的成果清單、一組成果代碼、清楚的過期時間(約 24 小時後);按「複製代碼」貼到記事本,跟畫面上的一樣
前提:
剛拿到的成果代碼
操作:
跟任務編號、檔名、帳號對照著看
應該看到:
是一長串亂數,看不出任務、使用者或檔名;工程附上代碼產生的自動測試綠燈(長度、字元集、至少 128 bit)
前提:
同一個任務
操作:
工程把池子裡這次的清單檔內容貼給 PM
應該看到:
欄位跟
#252
草案一致;每個檔有原檔名、大小、檢查碼、類型、池內位置;有權重的話只有位置,池子裡沒有權重檔本身
前提:
清單檔格式已經定稿
操作:
PM 打開
#296
或
ADR-0115
應該看到:
格式寫在這張單或
ADR-0115
的附錄裡
前提:
#252
做好之後;Slate 測試機構的帳號,是那張畫布的 Editor 以上
操作:
把 Farside 給的代碼貼進畫布的「從 Compute 匯入」
應該看到:
成果出現在畫布上;工程附上跟 Farside 原檔比對檢查碼一致的紀錄
前提:
上一步已經用過的代碼,和一組超過 24 小時的代碼
操作:
分別再到 Slate 貼一次
應該看到:
兩次都失敗,畫布上沒有多出東西
這張不做
畫布呼叫 Compute、從 Slate 送任務給 Farside(帳號合併之前不做,
ADR-0115
裁決二)
在 Slate 看 Compute 的任務紀錄、用量
把模型權重放進池子
拿檔案路徑、任務編號當成果代碼
把 Farside 現在的工作區桶或它的權杖交給 Slate 當檔案池
給 Farside 任何 Slate 檔案桶的權限
把池子改成雙向——反方向是
#297
Slate 那一側的匯入端點與畫布入口(在
#252
)
帳號合併、Supabase 整合(合併之前兩側都不動帳號系統)
匯入收點數
相關的單
#248
#252
#289
#297
#317
#326