Commit Graph

12 Commits

Author SHA1 Message Date
5893e07530 Replace filesystem-scanning session discovery with an explicit project registry
The old loadAll() walked ~/.sandlot/ and reverse-engineered repo roots
from .git worktree pointers, which was fragile and slow. A simple
registry (~/.sandlot/state.json) tracks known projects explicitly,
with commands to add, remove, and list across all of them.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 18:27:09 -07:00
d10adac712 Replace patchSession with setSession to fix concurrent state writes
The fire-and-forget patchSession calls in list could race with each
other, each reading stale state before writing. Collecting stale
branches and doing a single load-modify-save eliminates the race.
Also emits valid JSON (`[]`) when listing with --json and no sessions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 11:17:41 -07:00
9336deed9c Remove state file locking and simplify review cleanup
The mkdir-based lock was unreliable (stale lock recovery was racy) and
added latency. The atomic rename in save() already prevents corruption,
and concurrent writes to different keys are rare enough to not warrant
the complexity. Also inlines stale review self-healing into the map
callback and collapses the review try/catch/finally into just finally.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 11:11:16 -07:00
bd9d481e81 Add file-based locking to state mutations to prevent concurrent write races
Parallel operations (e.g. stale review cleanup in `list`) could
clobber each other via read-modify-write on the shared state file.
Also fix spinner lifecycle in `review` and simplify empty-list output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 11:04:33 -07:00
69ba73b3c3 Use patchSession to avoid race conditions in review flag updates
The load-modify-save pattern could overwrite concurrent state changes.
patchSession does an atomic read-patch-write, and the list command now
re-checks activity before clearing stale flags to avoid racing with a
review that just started.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 10:56:50 -07:00
92dbad3cad Add review status tracking to sessions
The list command needs to show when a session is under active
review so users don't interrupt it. Wrapping the review body in
try/finally ensures the flag is always cleared on exit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 23:08:41 -07:00
4b178dec44 enhance vm status with cross-repo session view 2026-03-11 22:42:54 -07:00
14cad28488 Refactor cli.ts into per-command modules with shared utilities 2026-02-20 15:43:15 -08:00
cf28eec718 Store and display prompt in session; improve list formatting with tilde paths and prompt column 2026-02-19 11:19:07 -08:00
994c26647d updates 2026-02-17 08:52:07 -08:00
033331db98 updates 2026-02-16 20:22:44 -08:00
5d7bf302f2 Add sandlot CLI for branch-based dev with worktrees and Apple containers
Implements all 7 commands: new, save, push, list, open, stop, rm.
Uses Commander for CLI parsing, Anthropic SDK for AI commit messages
and merge conflict resolution, and Apple container for VMs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 20:15:29 -08:00