release v2.0.10#15
Merged
Merged
Conversation
…changes panel - tmux "control center": tiled wall of real terminals for sessions/teams/swarms with arrange/close/attach (packages/core/src/tmux.ts), OS-window fallback - delegated agents (sub-agent/team/swarm) surface asks/permissions in the main view and bridge the answer back - changes panel is a full session summary (committed + uncommitted + removed) - resume restores per-session model/provider/effort/mode/summary/base/worktree - plan mode asks before planning; pause moved to Ctrl+Space - docs: agents-and-teams covers the tmux wall + delegated asks - CHANGELOG: cut [2.0.10] section Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
gitRevParse spawns a `git` subprocess; awaiting it at turn start delayed the first stream event by the spawn time on every session. On Windows (slow process spawn) this blew the tight timing budgets in the engine/TUI tests, failing 9 Windows-only CI checks. `git rev-parse HEAD` returns the committed sha regardless of uncommitted edits, so capture it fire-and-forget; the snapshot tracker covers the brief window before it resolves. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The changes panel spawns background `git` with cwd=dir; on the slow Windows runner an immediate fs.rmSync races that subprocess's cwd lock (EBUSY). Use fs.rmSync's native maxRetries/retryDelay — the option built for exactly this. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Background git in the dir outlives the test and holds a cwd lock; rm retries weren't enough. The rewind assertion already passed, so swallow teardown failure — a leaked os.tmpdir() dir is harmless. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Root cause of the flaky Windows-only failures: the session base-ref capture and the changes-panel diff each spawn a `git` subprocess. Awaiting at turn start blocked the hot path (broke tight test timing budgets); fire-and-forget left a git process holding the dir's cwd lock past turn-done, so whichever temp-dir test rm'd first hit EBUSY. Now: kick off the base-ref capture concurrently with the model stream (hot path stays free), then await both it and emitSessionFiles in the turn's finally BEFORE emitting turn-done — so no git subprocess outlives the turn. Off the hot path, this only gates the done/ready signal by a quick git diff. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The per-session base-ref capture spawned `git rev-parse` even in non-repo dirs, holding a Windows cwd lock that EBUSY'd temp-dir test teardowns. Probe for `.git` with an fs walk first (no subprocess) — non-repo sessions skip git entirely (also a small perf win), repos still capture and settle within the turn. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release prep for v2.0.10. Tag push (
v2.0.10) after merge triggers the build + npm/Homebrew/Scoop publish.Highlights
Docs
docs/agents-and-teams.mddocuments the tmux wall + delegated asks.CHANGELOG.md: cut[2.0.10]section.Verification (local, mirrors CI)
biome ci✅ ·typecheck✅ ·bun test→ 200 pass / 0 fail ✅0.0.0-private✅🤖 Generated with Claude Code