mirror of
https://github.com/Yeachan-Heo/oh-my-claudecode.git
synced 2026-10-19 01:39:52 -05:00
* fix(team): bind native team lifecycle to an immutable instance id Reserve a UUID before startup effects so shutdown, MCP cleanup, and SessionEnd cannot adopt a newer same-name team. Keep cleanup receipts outside the disposable state root so interrupted disposal can retry without touching a successor. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(team): persist Claude session ownership for SessionEnd cleanup SessionEnd was matching the ending Claude session against a tmux target, so owned teams were preserved. Record leader_session_id on config and treat a positively absent dedicated window as retryable cleanup evidence. Co-authored-by: Cursor <cursoragent@cursor.com> * test(team): align lifecycle fixtures with owned tmux identity Keep production fail-closed. Tests now supply valid server identity and launch evidence, and interruption tests build runtime-cli so CI can run the kill-pane guard without committing bridge/. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(test): restore typecheck and CI baselines for team instance lifecycle - widen getWorkerLiveness mock return types so tsc (and the dist build the e2e/npm-pack suites depend on) stops failing with 10 TS errors - accept esbuild's hoisted import.meta shim spelling in the runtime-cli package-dir regression assertion - give the interrupted-shutdown fixture a platform-shaped process identity so isProcessIdentityDead() can prove the owner dead and adoption runs - regenerate inventory-graph baseline for the new source content * chore(inventory): regenerate graph baseline after dev merge --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: clawdbot <clawdbot@users.noreply.github.com>