ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Windows用户注意:pstack的PowerShell钩子适配器与执行策略陷阱

Windows用户注意:pstack的PowerShell钩子适配器与执行策略陷阱 Windows用户注意pstack的PowerShell钩子适配器与执行策略陷阱【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Potetos pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claudepstack是面向 Claude Code、Codex、Pi 等 AI 智能体运行时的技能栈通过 SessionStart 钩子在每次会话启动时自动注入路由指令。在 Windows 上它必须依赖一个 PowerShell 钩子适配器运行而**执行策略Execution Policy**正是最容易让钩子静默失效的陷阱。本文带你理清适配器的运作原理并给出快速排查清单。一、pstack 的钩子机制为什么 Windows 要特殊处理pstack 的核心是 session-start-context.md 这份路由指令当任务跨多个文件、涉及架构设计或排查原因不明的 Bug 时它会让智能体进入poteto-mode技能流程。钩子的触发时机由两份清单文件定义运行环境配置文件调用脚本Claude Codehooks.jsonsession-start.shPOSIX ShellCodexWindowscodex-hooks.jsonsession-start.ps1PowerShell 适配器在codex-hooks.json中Windows 环境通过commandWindows字段覆盖了默认的 Shell 命令powershell.exe -NoProfile -ExecutionPolicy Bypass -File ${CLAUDE_PLUGIN_ROOT}/hooks/session-start.ps1也就是说Windows 上的 Codex 不需要 Bash钩子完全由 PowerShell 适配器 session-start.ps1 完成。它的逻辑只有三步找到配置表pstack-models.md优先$env:CODEX_HOME否则回退到%USERPROFILE%\.codex如果表中含session hook: off静默退出不注入任何内容否则以 UTF-8 编码输出路由指令完成注入。二、核心陷阱-ExecutionPolicy Bypass并非万能钥匙 ⚠️这是 Windows 用户最常踩的坑也是 docs/reference.md 中明确警告的点适配器以-ExecutionPolicy Bypass运行但这一参数会被机器级或用户级通过组策略 Group Policy 配置的执行策略覆盖。在这类机器上钩子会失败且路由指令不会被加载。理解这一点的关键在于命令行中的-ExecutionPolicy Bypass只作用于当前进程。如果企业策略在 LocalMachine 作用域上把策略锁死为Restricted或AllSignedBypass 参数会被直接压过脚本根本无法执行——而且失败时钩子没有任何明显报错表现为pstack 装了但好像没生效。如何确认你中招了在 PowerShell 中执行Get-ExecutionPolicy -List如果LocalMachine或CurrentUser行显示受限策略而你的公司又通过域控下发了组策略那么命令行 Bypass 就无法绕过它。此时可行的做法是联系 IT 管理员调整策略或改用不受组策略锁定的用户级会话环境。三、两个容易被忽略的配套坑1️⃣ 钩子未获信任 白装Codex 要求用户主动信任插件钩子在 Codex 中通过/hooks查看并批准插件声明的钩子。跳过这一步无论执行策略多宽松适配器都永远不会被调用。2️⃣ 配置表位置优先级想临时关掉钩子在pstack-models.md中写入一行session hook: off即可适配器会在输出任何内容前静默退出。注意查找顺序优先读取$env:CODEX_HOME指向的目录变量缺失或为空时回退到%USERPROFILE%\.codex。这个优先级由 tests/session-hook-windows.test.mjs 中的用例逐条验证包括路径含空格、UTF-8 中文与 emoji 输出、上下文文件缺失时报错等边界场景——如果你修改过钩子行为建议跑一遍这套测试。四、快速排查清单 ✅当 pstack 在 Windows 上不生效时按顺序检查策略锁定Get-ExecutionPolicy -List确认 LocalMachine/CurrentUser 是否被组策略锁死钩子信任在 Codex 中执行/hooks确认 pstack 插件的 SessionStart 钩子已获批准开关状态检查$env:CODEX_HOME或%USERPROFILE%\.codex下的pstack-models.md是否包含session hook: off触发时机钩子仅在startup、resume、clear、compact四种场景触发普通对话中途不会重新注入上下文文件确认 session-start-context.md 存在且可读缺失时适配器会直接失败。五、小结Windows 上使用 pstack记住一句话就够了PowerShell 适配器靠-ExecutionPolicy Bypass自保但扛不住组策略的机器级/用户级策略覆盖。先用Get-ExecutionPolicy -List看清策略分布再确认钩子已信任、开关表没被误关绝大多数静默失效都能定位。更多运行时配置细节可参考 docs/reference.md 与 plugins/pstack/README.md。【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Potetos pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claude创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表