提案收斂:那張紙搬到用戶自己的帳號上,中心不再保管(leo 2026-08-14 第三次)

比「降級」更徹底——紙跟東西在同一個地方,一起消失
⇒ #120 不是被修好,是沒有地方可以發生。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
uncle6me-web
2026-08-14 20:05:29 +08:00
parent 73bdb90780
commit cfb759a774
+24 -2
View File
@@ -645,8 +645,30 @@ leo 的判準(2026-07-30):
2. **`rule.mjs:257` 那道「說是更新卻一顆 worker 都找不到 → 停手」不再是錯誤**。
在新判準下這個組合根本不會出現:沒有 worker ⇒ `mode` 本來就會是 `init`
(該閘原本是 `#97` 的另一道門,其防護目的由「2b 已部署綁定絕對優先」承接。)
3. **中心帳本降級成純優化/提示資料**,只保留它別處拿不到的東西
每顆 worker 上次部署的 `sha256`(差異更新)、`bundleBase`(跨通道互蓋警告 t157)。
3. **那張紙搬到用戶自己的帳號上,中心不再保管**leo 2026-08-14 第三次收斂,比「降級」更徹底)
> 「**我覺得根本不用我 keep**,這次裝的 sha **記在一張紙放你家**,
> 下次又要裝我就把那張紙拿出來看你上次裝了什麼版本,
> **如果不符,以實際有幾顆為準**。」
⇒ 紀錄(每顆 worker 的 `sha256``bundleBase`**寫在使用者自己的 Cloudflare 帳號上**
不再寫進我們的 `INSTALLER_KV`
🔑 **為什麼這個比「降級」更好——它讓那個 bug 變成不可能發生,而不是被處理掉**
紙跟東西放在同一個地方 ⇒ **他把帳號清空時,紙跟著消失**
⇒ 結構上不可能出現「東西沒了、而我們手上還留著一張說他裝過的紙」。
`#120` 因此不是「被修好」,是**沒有地方可以發生**。
附帶好處:
· 跨通道互蓋(t157)不必再讀「對方通道的 KV」——紙就在帳號上,兩條通道看的是同一張
· 我們不再保管一份「誰裝了什麼」的中央登記簿(少一個要維護、會漂、會外洩的東西)
· 帳本壞掉/被清掉/從沒有過,安裝器照樣 work
**要 leo 一併裁的兩題**(實作前必須有答案,但**做法由收工方判斷**):
① 那張紙**貼在帳號的什麼位置**才會「跟著東西一起消失」——
要能被拆除工具連帶清掉,且不需要額外權限面
`hasDeployRecordForToken`(t154:用一把 token 查「這些帳號有沒有裝過」)
現在靠中心前綴掃描,搬走後要改成逐帳號去看——**這是預期內的成本,不是阻礙**
4. 🔴 **鐵律:帳本永遠不得產生「停手」。** 帳本與現場不合時,
**以現場為準並順手把帳本改對**,不是把使用者擋在門外。