This repository has been archived on 2026-10-08 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
6c1bcf042cd47252903929fb91b9b18e12935beb
Merges two milestones. Spawn v2 (#53-#68) replaced the spawn modal with an inline draft pane, added project scanning, branch pickers and name generation across the web and TUI clients. Worktree lifecycle (#77-#89) then redesigned what the daemon does with a worktree it created, which is what Spawn v2's reviews kept getting wrong: - The daemon never adopts a directory it finds. A path collision is sidestepped with a numeric suffix instead of resolved. - A kill is refused when the worktree holds unsaved work; ignored files never count. --force ends the session and RETAINS the tree. - A session that exits on its own applies the same predicate, from the same function, so the two paths cannot drift. - Retained trees are persisted in state_dir, listed by GET /api/worktrees, and reclaimed explicitly. Reclaim removes the directory, never the branch. - cleanup_on_kill is gone from the wire; what survives is decided by what is in the tree, not by what the spawn asked for. docs/WORKTREES.md is the written contract, with the reasoning for each non-obvious rule.
Description
No description provided
13 MiB
Languages
Rust
62.2%
TypeScript
22.6%
Kotlin
9.7%
CSS
4.4%
Nix
0.5%
Other
0.5%