Commit Graph

857 Commits

Author SHA1 Message Date
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
YeonGyu-Kim ad535cd29d fix(process-cleanup): isolate test and avoid checking process.exitCode directly
The test file modifies process.exitCode and emits process signals which can
leak into bun test's exit code. Add:
1. mock.module() sentinel to route to isolated batch (following abort-with-timeout.test.ts pattern)
2. Global afterAll() hook that resets process.exitCode = 0 before test runner checks it
3. Remove direct checks of process.exitCode in assertions - only check that process.exit() was called with the right code via spy

This ensures bun test exits with code 0 even after tests verify process.exit behavior.

Fixes #3792
2026-05-05 05:15:59 +09:00
YeonGyu-Kim 45452a039c Merge pull request #3731 from yizhifengye/fix/process-cleanup-infinite-loop-epipe
fix(background-agent): detach error listener before running body to s…
2026-05-05 04:24:01 +09:00
YeonGyu-Kim fd62f5b072 Merge pull request #3639 from auyua9/fix/fatal-cleanup-exit
fix(background): exit after fatal cleanup
2026-05-05 04:15:50 +09:00
YeonGyu-Kim 6323fa8ef9 fix(background-agent): fix parentSessionID -> parentSessionId typo causing TS build failure
Property 'parentSessionID' does not exist on type 'LaunchInput' / 'BackgroundTask'.
The correct casing is 'parentSessionId' (camelCase with lowercase 'd').
Fixes CI build failure on dev branch.
2026-05-05 03:53:44 +09:00
YeonGyu-Kim e699f3388d Merge pull request #3455 from CHLK/fix/cli-run-premature-exit-with-background-tasks
fix(cli-run): prevent premature exit when background tasks are active
2026-05-04 23:58:34 +09:00
YeonGyu-Kim 8c8522ee72 Merge pull request #3415 from lightrabbit/fix/skill-mcp-stdio-cwd
fix(skill-mcp): pass workspace directory as cwd to stdio MCP processes
2026-05-04 23:58:22 +09:00