改了設定跑更新,它說「部署完成」但什麼都沒動——跳過的判準只看 code 不看設定 #113
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
症狀(leo 2026-08-13 實撞,兩次連續更新的對照)
改了
~/.arcrun/config.yaml的api_key之後跑更新,它印:「✓ 部署完成」,但設定一個字都沒生效。 使用者沒有任何線索。
對照前一次跑(code 有變)——那次印了這行、這次沒有:
⇒ 部署被跳過 ⇒ vars 沒被寫 ⇒ 改設定等於沒改。
實測後果:
kbdb_get_map仍回 0 個庫(Arcrun#108的修法在 code 裡,但設定沒對齊)。根因
cli/src/lib/deploy.ts:🔴 指紋只算 code,不算 vars。 而
vars(ARCRUN_BUNDLE_VERSION/ARCRUN_NAMESPACE/使用者沿用的那些)是在
wrangler deploy的當下一起送上去的。⇒ 只要 code 沒變,vars 的變更就永遠送不出去。
為什麼這比「加 --force 就好」嚴重
使用者(與 AI)都會相信設定生效了,然後去別的地方找原因。
2026-08-13 實際發生:總管改完設定、跑完更新、看到「完成」,
結果地圖仍是空的,又去查了一輪 code。
--force不是解法——那是把機器的責任推給記性。而且
--force會重部 23 顆(慢、且擴大風險面),只為了改一個 var。.worker-builds落後源碼/*.sql被 gitignore 吃掉/bundle 比 main 舊)。共同形狀:兩個東西該一致,但只有一邊被檢查。
要達成什麼
改了設定跑更新,設定就會生效;如果真的沒事可做,它要說「沒有東西需要更新」而不是「部署完成」。
不指定做法。但有一題請回答:指紋該不該把「這趟要烙的 vars」算進去?
(若算進去,改一個 var 只會重部需要它的那幾顆,而不是 23 顆全上。)
怎麼驗才算數
~/.arcrun/config.yaml的api_key→ 跑更新(不加--force)→cypher 身上的
ARCRUN_NAMESPACE真的變了(貼更新前後的值)壓測 2026-06-12:22/23 成功後重跑仍全部重來)
🔴 收工標準多一條:留一道會擋的閘
leo 2026-08-12 立:「做平台要減少 hotfix。」
本票屬於「兩個東西該一致,但只有一邊被檢查」那一類 ⇒
修掉不算完成,要留下「下次有人加了新的 var 卻沒納入指紋會被擋住」的機制。
閘要滿足:會擋不是只提醒/判準看「有沒有在做那件事」不是「字串有沒有出現」/閘自己要能被測試。
紅線
leo21c(測試用 youlin)📍 repo:
matrix/arcrun(cli/src/lib/deploy.ts、~/.arcrun/deploy-manifest.json)📍 相關:
Arcrun#108(因為本 bug 而看起來像沒修好)|Arcrun#106(版本標籤也是 var,同一條路)