fix: 前端驗證閘先看這台有沒有瀏覽器能力,再要求用它(inkstone/ISEP#121)
browser-verify-guard.sh 舊版每回合都要求 mcp__Claude_Browser__*,但那套工具在 雲端這台叫不出來(ToolSearch:No matching deferred tools),容器內 chromium 也 連不出去(ERR_TUNNEL_CONNECTION_FAILED)⇒ 2026-09-01 一整天每回合誤攔一次, 在懲罰一個「這台辦不到」的要求。 閘現在先判斷「這個 session 有哪種瀏覽器能力」(正向存在性檢查,不是關鍵字): - CF Browser Rendering:環境變數 CLOUDFLARE_API_TOKEN_YOULIN_CC_USE + CLOUDFLARE_ACCOUNT_ID_YOULIN 都在場(雲端首選) - Browser MCP:這個 session 的 transcript 出現過 Claude_Browser__ - 容器內 chromium:ISEP#121 實測雲端連不出去,不當能力來源 判準是「有沒有用某種瀏覽器能力」這個動作:這回合叫過 Claude_Browser__(computer…) 或打過 .../browser-rendering/ 端點 ⇒ 放行。有能力卻沒用它 ⇒ 擋,且教實際可用的 那一種(CF 教 browser-rendering 端點的 curl,MCP 教三步)。一種能力都沒有 ⇒ 訊息改成「缺什麼、怎麼補」(找 leo 幫 token 加 Browser Rendering: Edit/明說 「本次無前端」),且每個 session 只提醒一次(stamp),不再每回合誤攔。 測試 hooks/tests/browser-verify-guard.test.sh(14/14,全離線): - C 群演練「一種能力都沒有」:第一次提醒一次、同 session 第二次放行(不再誤攔) - B 群:有 CF 能力教 CF 不教 MCP;只有 MCP 能力教 MCP 不教 CF - A 群:用過某種瀏覽器能力/明說本次無前端 ⇒ 放行;fail-open docs/TESTING.md 加 A43;docs/hooks-inventory.md 更新該支說明(+0 支、+0 條、 腳本不變:62 支、88 條當場數出)。 版本待總管定(plugin.json 未動)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TGxitYq49FzYC7EFkbhzF5
This commit is contained in:
@@ -1339,6 +1339,30 @@ bash hooks/tests/gitea-arm-to-github-armed.test.sh .
|
||||
- ④ 前兩條紅 ⇒ **沒拿到核准也寫了保險**——這是 D20 等級的洞,最嚴重
|
||||
- ④ ★ 紅 ⇒ 擋下之後教的指令又印回相對路徑(站在 InkStoneCo 會叫到舊複本,`inkstone/ISEP#112` 同病)
|
||||
|
||||
### A43 — 前端驗證閘先看這台有沒有瀏覽器能力,再要求用它:14 條
|
||||
```
|
||||
bash hooks/tests/browser-verify-guard.test.sh
|
||||
```
|
||||
**該看到**:`通過 14 / 失敗 0`。**全程離線**:在 `mktemp` 裡造假 transcript,
|
||||
瀏覽器能力用環境變數(`CLOUDFLARE_API_TOKEN_YOULIN_CC_USE`/`CLOUDFLARE_ACCOUNT_ID_YOULIN`)
|
||||
在場與否來扮演,session 各自帶 id、跑完清掉 `/tmp/.browser-cap-warned-*`。**不打網路、不碰真 repo。**
|
||||
|
||||
**它在守什麼**(`inkstone/ISEP#121`,2026-09-01 實撞):舊版每回合都要求
|
||||
`mcp__Claude_Browser__*`,但那套工具在雲端這台**叫不出來**、容器內 chromium 也連不出去
|
||||
(`ERR_TUNNEL_CONNECTION_FAILED`)⇒ 它一整天每回合都在懲罰一個「這台辦不到」的要求。
|
||||
現在閘先判斷「這個 session 有哪種瀏覽器能力」(CF Browser Rendering 的兩個 env/
|
||||
transcript 出現過 `Claude_Browser__`),**有能力才要求用它,且教實際可用的那一種**;
|
||||
一種都沒有時訊息改成「缺什麼、怎麼補」,且**每個 session 只提醒一次**。
|
||||
|
||||
**失敗**:
|
||||
- C 群「第二次(同 session)放行」紅 ⇒ 沒能力時仍每回合誤攔,ISEP#121 的主症狀沒解,
|
||||
**這比漏擋嚴重**(一支天天誤擋的閘會被學會忽略)
|
||||
- B 群「有 CF 能力沒用它 ⇒ 教 CF 不是 MCP」紅 ⇒ 閘又去教這台叫不出來的那套工具
|
||||
- C 群「第一次提醒缺什麼怎麼補」紅 ⇒ 沒能力時的出路(找 leo 加 `Browser Rendering: Edit`/
|
||||
明說「本次無前端」)沒印出來,撞到的人不知道怎麼走
|
||||
- A 群「用過某種瀏覽器能力就放行」任一紅 ⇒ 真的看了畫面卻還被擋,誤攔
|
||||
- fail-open 任一紅 ⇒ 壞輸入會亂擋
|
||||
|
||||
---
|
||||
|
||||
## B. 只有 leo 能跑的(雲端)
|
||||
|
||||
Reference in New Issue
Block a user