## 課題 ローカル deploy 後の `~/.local/bin/opencode-live-guardrails-wrapper` は、作業 worktree 内の built binary と guardrails wrapper を固定参照します。 その worktree を cleanup で削除すると、Git の cleanup 自体は正しくても、ローカルの `opencode` 起動だけが壊れます。以前は削除前に人間が wrapper を確認する運用に寄っており、再発防止として弱い状態でした。 ## 対応方針 - local deploy 時に wrapper の固定先を manifest として保存する - `bun run local:assert-not-pinned -- <worktree-path>` を追加し、削除対象 worktree が local wrapper の固定先なら失敗させる - manifest が古い場合にも wrapper 本文と entrypoint symlink を確認して fail-safe に寄せる - AGENTS.md と Codex memory note に、worktree 削除前の必須手順として残す ## 完了条件 - pinned worktree の削除前チェックが失敗する - unrelated worktree の削除前チェックが成功する - local deploy/check と deployed entrypoint 経由の smoke が通る
Activity
terisuke commentedon Jul 1, 2026
対応を PR #270 で merge 済みです。
Local deploy / fire verification
bash -n scripts/local-dev-deploy.sh: passgit diff --check: passpackages/opencode:bun typecheck: passpackages/opencode:bun run test:httpapi: pass(coverage/auth/effect 各 208 routes、fail=0、missing=0、extra=0)bun run local:deploy: passbun run local:check: pass~/.local/bin/opencode --version:0.0.0-fix-local-wrapper-pinned-worktree-guard-20260701-202607011448~/.local/bin/opencode debug info:guardrail.ts/team.tsを profile plugin として読み込み確認packages/opencode:bun test --timeout 30000 test/cli/smokes/local-deploy.test.ts: 8 passbun run local:assert-not-pinned -- <current-pinned-worktree>: expected block(manifest + wrapper text で検出)bun run local:assert-not-pinned -- <tmpdir>: passGLM-5.2、version 表示を確認して Ctrl-C 終了Merge evidence
454767461dbafc9906f04bd29629785399e23a8531c9e249150db89e1d15c41b684d6348edc05f18