docs(teardown): 記下兩層咬合的已知限制(跨 worker 依賴鏈,2026-08-14 實撞)
今天實跑撞到、也解掉的真事:kbdb-graph-plugin(不屬於這台實例,正確被排除不動) 身上有 service binding 指著 arcrun-kbdb(要刪的)→ CF 拒絕刪除,本工具只回報那次 DELETE 失敗,不會主動點出「有外部依賴卡住」。若選擇半殘留(清資源留殼),下一步 acr init/update 的 resource-rule fail-closed 保護會正確拒絕重裝——這是它該有的行為, 但代表本工具留下的半殘留會讓下一步卡住,不是「拆一半也沒關係」。 本工具目前無法自動偵測跨 worker 依賴鏈,寫進「已知限制」而不是假裝判準完備。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,6 +32,20 @@
|
||||
* - 中心 KV 清理走 `wrangler kv key`,用的是本機既有的 wrangler OAuth 登入態(不是 CF API
|
||||
* token),因為 INSTALLER_KV 住在另一個帳號(uncle6,官方安裝器所在),本工具沒有那把帳號
|
||||
* 的 API token。呼叫前務必 `npx wrangler whoami` 確認登入態是 uncle6,不是別的帳號。
|
||||
* - 🔴 **偵測不到「不屬於這台實例的 worker 反過來依賴這台實例的 worker」這種形狀**
|
||||
* (2026-08-14 實撞,兩層咬合):`kbdb-graph-plugin`(不認得,正確被排除、不動)身上有
|
||||
* service binding 指著 `arcrun-kbdb`(要刪的)。CF 因此拒絕刪 `arcrun-kbdb`——
|
||||
* 本工具當下**只會回報那次 DELETE 呼叫失敗**,不會主動告訴你「有一個外部依賴卡住了」,
|
||||
* 需要人自己讀錯誤訊息裡的 worker 名字去追。
|
||||
* ⇒ **第二層**:kbdb-graph-plugin 被移除後 `arcrun-kbdb` 才刪得掉,但如果選擇「先清掉
|
||||
* `arcrun-kbdb` 綁著的資源、留著這顆殼」這條路(半殘留),下次呼叫 `acr init`/`acr update`
|
||||
* 時,`shared/resource-rule` 的 fail-closed 保護(Arcrun#97 那道)會正確地發現
|
||||
* 「這顆 worker 的 binding 指向的資源已經找不到」而**拒絕重裝**(這是它該有的行為,不是
|
||||
* bug;但代表**本工具留下的半殘留會讓下一步——重裝——卡住**,不是「拆一半也沒關係」)。
|
||||
* ⇒ **結論**:本工具目前不會自動偵測或處理跨 worker 的依賴鏈;遇到「刪不掉、被誰誰誰的
|
||||
* service binding 卡住」時,操作者要自己判斷那個「誰誰誰」是不是這台實例的一部分
|
||||
* (是 → 一併排入拆除;不是 → 照紅線問人再決定要不要動它),**拆完後如果選了半殘留,
|
||||
* 要有心理準備下一步的 fail-closed 檢查會擋下重裝**。
|
||||
*
|
||||
* 用法:
|
||||
* node scripts/teardown-instance.mjs plan --account-id <id> --api-token <token> [--keep w1,w2]
|
||||
|
||||
Reference in New Issue
Block a user