SuperAPI AI 工具集

claude-workspace-trust-fix

编程与开发

查看项目

更新于 10-15 22:15

技能介绍

用途:修复 Claude Code 在交互模式下 PreToolUse 钩子被静默跳过的已知缺陷。根因是 ~/.claude/.claude.json 中每个项目条目的 hasTrustDialogAccepted 默认为 false,且信任对话框本身未能正确设置该标志;-p(非交互)模式会绕过工作区信任检查,因此钩子看似只在非交互模式生效。已在 v2.1.69(2026 年 3 月)确认,相关上游 issue 被 stale bot 关闭但未真正修复。

主要能力:备份配置文件、批量将每个项目条目的 hasTrustDialogAccepted 置为 true、校验结果,并提示重启 Claude Code 会话。

使用方式:先备份 cp ~/.claude/.claude.json ~/.claude/.claude.json.bak;再用 python3 脚本遍历 data['projects'] 中未接受信任的条目并设为 true,写回 JSON;随后用另一段 python3 脚本统计 true/false 数量进行验证;最后重启正在运行的 Claude Code 会话。

适用场景:交互模式下钩子不触发、而 -p 模式正常时。

限制:该文件为每台机器本地文件,不由 dotfiles 或 Nix 管理;后续新增项目仍默认 false,需定期或新增项目后重跑;必须重启会话才生效。若修复后钩子仍不触发,可清空 /tmp/deny-debug.log 后在交互模式尝试 Edit,若日志仍为空说明钩子根本未被调用;可用 claude -p 'Edit README.md add <!-- test -->' 对比测试,若 -p 触发而交互不触发,则重新检查 hasTrustDialogAccepted。