雲端要拿得到票、主線與通知:白名單住 ISEP、主線檔隨 repo 走、leo21c 讀放寫擋(inkstone/ISEP#130)
- docs/permissions-allow.json + scripts/settings-allow-sync:四個 Gitea 正門工具的權限白名單一份, setup script 裝完 plugin 寫一次、SessionStart 每次再對一次(只加不減、冪等) - hooks/lib/mainline.py/scripts/mainline:家目錄沒主線就讀 InkStoneCo/system-dev/mainline.json; set/adopt/clear 兩份一起寫,refresh 只寫家目錄 - hooks/leo21c-write-guard.sh:唯讀 -d(tr/cut/sort…)先剪掉再判、notify_leo trigger 放行 (與 prod-write-guard 同一份白名單)、改法段改印 09-02 起的 youlin 子網域;補第一支測試(26 條) - prod-write-guard/main-and-prod-push-guard/kbdb-live-exam:認得 youlin 新子網域 arcrun-yuga3bse - scripts/ticket:收件 repo 寫 inkstone/ISEP 不再 404(org 寫錯當場講) - scripts/isep-notify:有 TELEGRAM_BOT_TOKEN/TELEGRAM_CHAT_ID 先走 Bot API 直送(雲端唯一通的路) - 測試:A31–A35 共 79 條;README/plugin.json/hooks-inventory 數字實數(61 支、85 條、53 支腳本) 假設(記在這裡等 review):權限規則的形狀沿用 leo 09-07 親手加、實測有效的那四條; 「分類器真的不擋」要雲端一趟 run 的 permission_denials 才驗得到,本 PR 驗不了。 版本:待總管定版(plugin.json 仍 0.22.0)。 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DTZ9QtvjY7MNxjfQbexAm7
This commit is contained in:
@@ -160,6 +160,52 @@ GitHub、不是 Gitea):
|
||||
驗 `claude plugin list` 顯示 `isep@inkstone enabled`,且照 §逐條對照 那張表
|
||||
再核一次數字。
|
||||
|
||||
## 雲端要全權處理的三樣:票、主線、通知(inkstone/ISEP#130,2026-09-07)
|
||||
|
||||
leo 09-07:「雲端回覆的問題你首要解決⋯⋯僅有需要依賴 Mac 環境的東西要求地端處理,其他全部需要可以從雲端全權處理。」
|
||||
09-04 兩支 Routine 的 run log 實查出四件雲端拿不到的東西,ISEP 這一半的解法:
|
||||
|
||||
| 拿不到什麼 | 為什麼 | ISEP 這一半 | 還缺誰 |
|
||||
|---|---|---|---|
|
||||
| **主線是哪條** | 主線檔只在本機 `~/.claude` | `hooks/lib/mainline.py`:家目錄沒有就讀 repo 的 `InkStoneCo/system-dev/mainline.json`(雲端形狀:`$CLAUDE_PROJECT_DIR` 是薄殼根、真身在 `InkStoneCo/`);`mainline set`/`adopt`/`clear` 兩份一起寫 | 總管 `set` 之後要把 repo 那份 commit/併 main |
|
||||
| **正門工具被分類器擋**(`permission_denials=6`) | leo 09-07 親手加的四條只在本機 settings | `docs/permissions-allow.json` 一份清單;`scripts/settings-allow-sync` 寫進那台的 `~/.claude/settings.json`(setup script 裝完 plugin 跑一次,SessionStart 每次再對一次) | 雲端一趟 run 看 `permission_denials`=0 才算驗到 |
|
||||
| **讀 leo21c 也被擋** | `leo21c-write-guard.sh` 把 `tr -d` 的 `-d` 當 body | 唯讀 `-d` 先剪掉再判;`notify_leo` trigger 放行(同 `prod-write-guard` 白名單);改法段改印現役 youlin 子網域 | — |
|
||||
| **收工摘要到不了手機** | 雲端沒 `TELEGRAM_*`;leo21c 的 `notify_leo` 404;youlin 被 egress proxy 擋 | `scripts/isep-notify` 有 `TELEGRAM_BOT_TOKEN`/`TELEGRAM_CHAT_ID` 就先走 Bot API 直送(`api.telegram.org` 從雲端是通的) | **leo**:在 Cloud environment 加那兩個變數 |
|
||||
|
||||
### 雲端連不到 youlin 不是 000,是 proxy 403(2026-09-07 實查)
|
||||
|
||||
```
|
||||
$ curl -sS -o /dev/null -w '%{http_code}' https://arcrun-cypher-executor.arcrun-yuga3bse.workers.dev/health
|
||||
curl: (56) CONNECT tunnel failed, response 403 ← egress policy denial
|
||||
$ curl -sS "$HTTPS_PROXY/__agentproxy/status" | jq .recentRelayFailures
|
||||
{ "kind": "connect_rejected", "host": "arcrun-cypher-executor.arcrun-yuga3bse.workers.dev:443",
|
||||
"detail": "gateway answered 403 to CONNECT (policy denial or upstream failure)" }
|
||||
$ curl … https://arcrun-cypher-executor.leo21c.workers.dev/health → 200
|
||||
$ curl … https://api.telegram.org/ → 302
|
||||
$ curl … https://git.uncle6.me/api/v1/version → 200
|
||||
```
|
||||
|
||||
⇒ 09-04 log 寫的「youlin 從雲端 HTTP 000」有兩層:舊子網域 `youlin-hsieh-dev` DNS 已死(總管 09-07 查到),
|
||||
**而新子網域從雲端是被 policy 擋**——`/root/.ccr/README.md` 明寫「403/407 = 你組織的 egress policy
|
||||
不允許這個主機,不要重試、不要繞路,回報主機名」。leo21c 通、youlin 不通,差別只在主機有沒有被放行。
|
||||
**這格是 leo 的**:Cloud environment 的 allowed network hosts 加 `*.arcrun-yuga3bse.workers.dev`;
|
||||
在那之前雲端做不了 stage 驗證,所有要打 youlin 的驗證一律交回地端或標 `Human`。
|
||||
|
||||
### 只有「要 Mac」的事才交回地端(給 `cloud-worker.md` 的清單草稿)
|
||||
|
||||
判準一句話:**這件事依賴的東西隨 repo clone 走得到嗎?走得到就雲端做。**
|
||||
|
||||
| 交回地端 | 為什麼雲端做不了 |
|
||||
|---|---|
|
||||
| 打包 DMG/簽章/MS Store 送件 | 要 macOS 工具鏈與簽章身分(Keychain),不隨 clone 走 |
|
||||
| 本機 daemon(`~/.arcrun-rag`、`~/.arcrun/config.yaml`)的改與驗 | 住在 leo 的家目錄 |
|
||||
| 用 `~/.wrangler` OAuth 登入態出貨到 uncle6 | 登入態不隨 clone 走(`make-cloud-env.sh` 檔頭記過) |
|
||||
| 要 leo 親手輸入的互動閘(`acr recipe push` 的暴露同意、密碼打進登入欄) | surface 層硬規則,誰都不能代 |
|
||||
| 打 youlin stage 的驗證 | **暫時**:egress proxy 擋(上一段)。leo 放行主機後這條就回到雲端 |
|
||||
|
||||
其餘(讀票、認領、留言、handback、寫 code、跑測試、開 PR、對 leo21c 唯讀查詢、發 Telegram)雲端全做。
|
||||
📌 這份清單的家是 `inkstone/InkStoneCo` 的 `cloud-worker.md`(票上驗收第 4 條),ISEP 只放草稿;併進去由總管做。
|
||||
|
||||
## 這張票沒動、也不會動的東西
|
||||
|
||||
- 沒有動 `youlinhsieh/inkstoneco`(GitHub 薄殼 repo)——這個新機制**完全不需要
|
||||
|
||||
Reference in New Issue
Block a user