fix: unblock claude-teams (PATH shim + master→evy import rename leftovers) - #38
Conversation
The v4 chat entry point now occupies the bare `subctl` name on PATH and doesn't dispatch v3 verbs (teams, dashboard, radar, deck, session-resume, session-kill). The six claude-* convenience shims still call `exec subctl <verb>`, so on any box where v4 wins the PATH race they print v4 usage and exit 2 instead of doing their job. Resolve each shim's own location through any symlinks, then exec the sibling `subctl` in the same bin/ directory. That's always the v3 bash dispatcher in the install tree, regardless of what `subctl` resolves to on PATH. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
`providers/claude/_write_snapshot.ts` and `_apply_team_template.ts` still imported `components/master/tools/policy/*` and `components/master/team-templates` after the v3 rename moved those modules under `components/evy/`. The result was every `subctl teams claude` spawn failing at spawn time with `Cannot find module '../../components/master/tools/policy/audit'`. These two are the last import sites — the other repo references to `components/master` are comments explaining the rename history, not live imports. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughSix CLI wrapper scripts ( Changesv3 Dispatcher and Component Migration
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
…g + Hermes docs (#40) Cuts v3.3.4 bundling the three commits since v3.3.3: - #38 fix(claude-teams): PATH-shim collision + master→evy import leftovers - #37 fix(chat): voice toggle first-paint race + SSE reconnect drift - #39 chore: Hermes research docs + ORCHESTRATION log + .codegraph gitignore Per the version-cap doctrine, stays on the v3.3.x patch line — no v3.4 / v4 bump until operator decides. Supersedes the stale `fix/policy-snapshot-evy-rename` branch (commit 557b19f), which documented only the `_write_snapshot.ts` half of the broken-imports breakage. The shipped v3.3.4 fix covers both `.ts` import sites plus the six `bin/claude-*` shims. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Summary
Restores
claude-teams(and its 5 siblingclaude-*shims) by fixing two layered breakages discovered when runningclaude-teams -o -y -a claude-jason.1. PATH collision — shims caught by v4 chat root
The v4 entry point at
~/.local/bin/subctl(chat TUI) beats the v3 dispatcher at~/bin/subctlin the operator's interactive shell. All 6bin/claude-*convenience shims doexec subctl <verb>, so v4 caught the call, didn't recognize the v3 verb, and printed its own usage instead of dispatching.Fix (commit 0ae23a3): each shim resolves its own location through symlinks and execs the sibling
subctlin the samebin/directory — always the v3 dispatcher in the install tree, independent of$PATHordering.Files:
bin/claude-{dash,deck,kill,radar,resume,teams}2. Stale
components/master/...imports after v3 renameAfter the shim fix, the spawn flow reached
providers/claude/_write_snapshot.tswhich died at module-load withCannot find module '../../components/master/tools/policy/audit'. Two files inproviders/claude/were missed by the v3 master→evy rename sweep (03f8f0b).Fix (commit 66ecbe7):
providers/claude/_write_snapshot.ts—components/master/tools/policy/{audit,snapshot}→components/evy/tools/policy/{audit,snapshot}providers/claude/_apply_team_template.ts—components/master/team-templates→components/evy/team-templatesOther repo mentions of
components/masterwere confirmed to be comments referencing the rename history, not live imports.Test plan
claude-teams -o -y -a claude-jason --dry-runruns end-to-end to "(dry run — not launching tmux)" withallowlist_sha 812559eeon both~/code/subctl(dev tree) and~/.local/lib/subctl-install(install tree).claude-dash,claude-deck,claude-kill,claude-radar,claude-resume) reach v3 dispatcher and emit proper v3 behavior.bun -e 'await import("./providers/claude/_apply_team_template.ts")'resolves cleanly on both trees (proves module-load works; script then exits with usage error after parsing argv).subctl installrather than manually.🤖 Generated with Claude Code
Summary by CodeRabbit