fix(version-guard): 遠端版本查詢加上重試,避免暫時性網路失敗誤判 fail-closed #12

Merged
admin merged 2 commits from develop into master 2026-08-19 03:50:21 +00:00
Member

摘要

  • version-guard.mjs 的遠端版本查詢加上重試(最多 3 次、間隔 300ms),避免暫時性網路失敗(逾時/連線中斷/非 2xx)被直接誤判成「查無法取得遠端版本」而 fail-closed 擋下所有工具呼叫。
  • TLS 憑證驗證全程不跳過,維持既有 --use-system-ca 信任機制;--timeout-ms 預設由 5000 降到 3000,讓重試後的最長總耗時仍落在 hooks.json 設定的 15 秒逾時內。
  • jsc-shared 三份 manifest(plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json)依 spec-plugin-version 同步升版至 0.2.4。

測試計畫

  • 正常情況下手動執行 version-guard.mjs,確認四個 plugin(shared/doc/code/persona 對應的本地 plugin.json)皆能查到遠端版本並放行
  • 以不可達的假 host 模擬連線失敗,確認會重試 3 次、每次間隔 300ms,最終才 fail-closed,且過程中未跳過 TLS 驗證
  • 模擬 hook 實際呼叫模式(stdin 餵入 PreToolUse JSON),確認回傳 permissionDecision: allow

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

## 摘要 - `version-guard.mjs` 的遠端版本查詢加上重試(最多 3 次、間隔 300ms),避免暫時性網路失敗(逾時/連線中斷/非 2xx)被直接誤判成「查無法取得遠端版本」而 fail-closed 擋下所有工具呼叫。 - TLS 憑證驗證全程不跳過,維持既有 `--use-system-ca` 信任機制;`--timeout-ms` 預設由 5000 降到 3000,讓重試後的最長總耗時仍落在 hooks.json 設定的 15 秒逾時內。 - jsc-shared 三份 manifest(`plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json`)依 spec-plugin-version 同步升版至 0.2.4。 ## 測試計畫 - [x] 正常情況下手動執行 `version-guard.mjs`,確認四個 plugin(shared/doc/code/persona 對應的本地 plugin.json)皆能查到遠端版本並放行 - [x] 以不可達的假 host 模擬連線失敗,確認會重試 3 次、每次間隔 300ms,最終才 fail-closed,且過程中未跳過 TLS 驗證 - [x] 模擬 hook 實際呼叫模式(stdin 餵入 PreToolUse JSON),確認回傳 `permissionDecision: allow` Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jiantw83 added 2 commits 2026-08-19 03:41:17 +00:00
原本一次 fetch 失敗(逾時/連線中斷/非 2xx)就直接視為查無遠端版本並擋下工具呼叫,
對暫時性網路問題過度敏感;改為最多重試 3 次、每次間隔 300ms,仍全部失敗才 fail-closed。
TLS 憑證驗證全程不跳過,維持 --use-system-ca 既有信任機制;--timeout-ms 預設由 5000
降到 3000,讓重試後的最長總耗時仍落在 hooks.json 設定的 15 秒逾時內。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
對應 version-guard.mjs 遠端查詢重試機制的修正。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
admin approved these changes 2026-08-19 03:50:14 +00:00
Dismissed
admin approved these changes 2026-08-19 03:50:19 +00:00
admin merged commit ca53be3011 into master 2026-08-19 03:50:21 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/shared#12