* fix: sync worktree completion artifacts back to external state before merge (#1412) When a worktree's .gsd/ was a real directory (not symlinked to external state), milestone completion artifacts (SUMMARY, VALIDATION, updated ROADMAP) were written locally but never synced back. The project root's deriveState() read from external state and found no SUMMARY — reporting the milestone as incomplete. Changes: - auto-worktree.ts: Added syncWorktreeStateBack() that copies milestone and slice .md files from worktree .gsd/ to the main external state dir - auto.ts: Call syncWorktreeStateBack() in tryMergeMilestone before the git merge, ensuring artifacts are visible from the project root Fixes #1412 * fix: emit agent_end after abort during tool execution (#1414) When a user aborts a turn while a tool call is running, the abort RPC succeeds but agent_end was never emitted. RPC consumers tracking turn lifecycle via events got stuck in a 'streaming' state permanently. Fix: After abort() + waitForIdle(), emit a synthetic agent_end if the agent is no longer streaming. This ensures consumers always see the turn-complete signal regardless of how the turn ended. Fixes #1414 |
||
|---|---|---|
| .. | ||
| scripts | ||
| src | ||
| package.json | ||
| pnpm-lock.yaml | ||
| tsconfig.json | ||