Problem
#170 診斷確認的緩解選項 2:每次 Claude Code 自動更新輪替 versioned binary path(~/.local/share/claude/versions/<N>),host 側 TCC grant 失效,使用者只會看到 tool call 突然 access denied,無主動提示。
#122 的 startup banner drift detector 已有「stale process / csreq mismatch」等 signal 家族;缺一個「host context 是 versioned claude binary 且 Calendar/Reminders notDetermined 或 denied 」的組合 signal — 命中時主動提示使用者去 System Settings toggle 新版本號 entry(或觸發 re-prompt),把「昨天還能用今天壞了」的困惑收斂成一行可行動訊息。
Type
feature(drift detector 新 signal)
Expected
Banner 偵測邏輯:walk parent chain 找 ~/.local/share/claude/versions/ pattern(判定 host = Claude Code versioned binary)+ 該 context 下 EventKit authorizationStatus 非 fullAccess → emit 提示行(含 troubleshoot-tcc 指引 pointer)
沿用 [bug] v1.9.0: create_event 仍回 "denied" 即使 similar_events 讀取成功(read/write auth status 矛盾) #122 signal 慣例:advisory、stderr、非阻塞、可 CHE_ICAL_MCP_NO_BANNER 關閉
測試:detector signal 的 fake-driven 單元測試(TCCDriftDetectorTests 家族慣例)
Dependency(Blocking)
Blocked on PR #174 merge (#169 的 ParentChainSource — parent chain 判定所需 primitive)。若 #174 被 reject,替代路徑:banner 內建輕量單層 getppid() + proc_pidpath 檢查(不 walk 全鏈,只認直系 parent 的 versions/ pattern)。
Source : surfaced during /idd-diagnose #170 sister concern surfacing (Step 3.6)
Current Status
Phase : closed
Last updated : 2026-07-10 by /idd-verify
Problem
#170 診斷確認的緩解選項 2:每次 Claude Code 自動更新輪替 versioned binary path(
~/.local/share/claude/versions/<N>),host 側 TCC grant 失效,使用者只會看到 tool call 突然access denied,無主動提示。#122 的 startup banner drift detector 已有「stale process / csreq mismatch」等 signal 家族;缺一個「host context 是 versioned claude binary 且 Calendar/Reminders notDetermined 或 denied」的組合 signal — 命中時主動提示使用者去 System Settings toggle 新版本號 entry(或觸發 re-prompt),把「昨天還能用今天壞了」的困惑收斂成一行可行動訊息。
Type
feature(drift detector 新 signal)
Expected
~/.local/share/claude/versions/pattern(判定 host = Claude Code versioned binary)+ 該 context 下 EventKit authorizationStatus 非 fullAccess → emit 提示行(含 troubleshoot-tcc 指引 pointer)Dependency(Blocking)
Blocked on PR #174 merge(#169 的
ParentChainSource— parent chain 判定所需 primitive)。若 #174 被 reject,替代路徑:banner 內建輕量單層getppid()+proc_pidpath檢查(不 walk 全鏈,只認直系 parent 的 versions/ pattern)。Source: surfaced during /idd-diagnose #170 sister concern surfacing (Step 3.6)
Current Status
Phase: closed
Last updated: 2026-07-10 by /idd-verify
idd/175-banner-versioned-host-signal