Commit Graph

863 Commits

Author SHA1 Message Date
YeonGyu-Kim 62d409085e feat(team-mode): add team runtime delete with background cancellation tests 2026-05-06 14:19:39 +09:00
YeonGyu-Kim 4645d56d05 feat(team-mode): add team runtime layout activation with tests 2026-05-06 14:19:39 +09:00
YeonGyu-Kim d958b7f17a feat(team-mode): add team runtime member dependency resolution 2026-05-06 14:19:39 +09:00
YeonGyu-Kim a65d54cac3 feat(team-mode): add team runtime member resolver with tests 2026-05-06 14:19:39 +09:00
YeonGyu-Kim 301e02cdf9 feat(team-mode): add team runtime status query with tests 2026-05-06 14:19:39 +09:00
YeonGyu-Kim d9785c7c2c feat(team-mode): add team runtime create with tests 2026-05-06 14:19:39 +09:00
YeonGyu-Kim 51382c1082 test(team-mode): add live tmux smoke test for team layout 2026-05-06 14:19:39 +09:00
YeonGyu-Kim f78b1e62d7 feat(team-mode): add sweep-stale-team-sessions with tests 2026-05-06 14:19:39 +09:00
YeonGyu-Kim 2b8096fc06 feat(team-mode): add resolve-caller-tmux-session helper with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim eb61091f6d feat(team-mode): add rebalance-team-window command with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim a13ef03f82 feat(team-mode): add close-team-member-pane command with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim c5df781029 feat(team-mode): add tmux team layout creation and removal 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 0f20a1b7f9 feat(team-mode): export team-mailbox barrel 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 01aeeedc60 feat(team-mode): add team mailbox reservation logic 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 2ce86ff9e5 feat(team-mode): add team mailbox poll with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 3f69333939 feat(team-mode): add team mailbox ack with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 07368b4685 feat(team-mode): add team mailbox send with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 85cc30a8fe feat(team-mode): add team mailbox inbox with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 796143aa5d feat(team-mode): export team-tasklist barrel 2026-05-06 14:19:38 +09:00
YeonGyu-Kim b34cd87416 feat(team-mode): add team tasklist test-support utilities 2026-05-06 14:19:38 +09:00
YeonGyu-Kim f72593736d feat(team-mode): add team tasklist update with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 205ce93654 feat(team-mode): add team tasklist dependencies with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 4270af3ac9 feat(team-mode): add team tasklist claim with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 043348442d feat(team-mode): add team tasklist list with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 031a7a4dd4 feat(team-mode): add team tasklist get with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 6e0f6aefcc feat(team-mode): add team tasklist store with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 23e6a53ea2 feat(team-mode): export team-state-store barrel 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 274df1f262 feat(team-mode): add team state store resume logic with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 79fb12e254 feat(team-mode): add team state store locks with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 1bec921a5a feat(team-mode): add team state store with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 48bac223d3 feat(team-mode): export team-registry barrel 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 2866d3276e feat(team-mode): add team registry validator with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim cf050dc63a feat(team-mode): add team spec input normalizer with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim de30721fdc feat(team-mode): add team registry loader with normalization tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim b2359c0a63 feat(team-mode): add team registry path utilities with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim a91023961c feat(team-mode): add team session registry with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 3a93cb776f test(team-mode): add integration test for team-mode lifecycle 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 8c4c4ff644 feat(team-mode): add caller team-lead resolution with tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 41d6e12f0d feat(team-mode): add member session resolution and routing logic 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 8a42d7fd69 feat(team-mode): add member guidance and parser utilities 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 783d70558b feat(team-mode): add core types, dependencies and type-level tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 5e4ae8815e test(tmux-subagent): expand zombie-pane test coverage 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 49bb5dd81a test(tmux-subagent): add pane-state-querier runner tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 8d3d882578 test(tmux-subagent): add manager project-directory resolution tests 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 77655a7c30 test(tmux-subagent): expand manager test coverage 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 680927d0fd test(tmux-subagent): expand polling-manager test coverage 2026-05-06 14:19:38 +09:00
YeonGyu-Kim b6dcf05d45 test(tmux-subagent): expand action-executor test coverage 2026-05-06 14:19:38 +09:00
YeonGyu-Kim c8b225099c refactor(tmux-subagent): stabilize polling, execution and session lifecycle with runner 2026-05-06 14:19:38 +09:00
YeonGyu-Kim 3ddc757b15 fix(bun-spawn-shim): eliminate globalThis.Bun top-level destructures for Electron/Node compat
Root cause: bun build --target bun inlines top-level
  var { spawn } = globalThis.Bun;
for every file that contains 'import { spawn } from "bun"'. On Node/Electron
where globalThis.Bun is undefined, this crashes with
  Cannot destructure property 'spawn' of 'globalThis.Bun' as it is undefined.
26 source files had this import; the bundled output had 25 top-level destructures.

Fix:
- Add src/shared/bun-spawn-shim.ts: a thin wrapper that
  - delegates to Bun.spawn/spawnSync when globalThis.Bun is present (real Bun)
  - falls back to static ESM imports of node:child_process otherwise
  - uses static 'import { spawn } from "node:child_process"' so Bun bundler
    does NOT emit any globalThis.Bun destructures for this module
- Replace all 26 'from "bun"' spawn/spawnSync imports with relative paths to shim
- Replace 4 direct Bun.spawn() call sites with shim's spawn()
- Remove src/electron-compat.ts and script/prepend-electron-shim.ts (no longer needed)
- Update src/electron-compat.test.ts to assert 0 top-level globalThis.Bun destructures

Verification: grep -c '} = globalThis.Bun;' dist/index.js → 0 (was 25)
All 5921 tests pass (1 pre-existing timeout failure unrelated to this change).

Fixes #3797
2026-05-05 22:41:45 +09:00
YeonGyu-Kim 32fab88d68 fix(process-cleanup): add test seam to prevent process.exitCode contaminating bun runner
scheduleForcedExit() sets process.exitCode which taints the bun test runner's
own exit code for the entire suite. This caused CI to fail even though all
tests passed individually.

Fix:
- Add __disableScheduledForcedExitForTesting / __enableScheduledForcedExitForTesting
  seams to skip scheduleForcedExit() during tests
- beforeEach disables forced exit; afterEach re-enables
- The 'fallback exit timer' test explicitly re-enables to verify setTimeout/clearTimeout
- Remove process.exitCode and exitSpy assertions that required forced exit to be active
  (shutdown call counts are sufficient to verify behavior)
2026-05-05 19:04:40 +09:00