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> |
||
|---|---|---|
| completions | ||
| src | ||
| test | ||
| .gitignore | ||
| .gitkeep | ||
| .npmrc | ||
| bun.lock | ||
| CLAUDE.md | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
sandlot
A CLI for branch-based development using git worktrees and Apple Container. Each branch gets its own worktree and isolated container.
Prerequisites
- macOS on Apple Silicon
- Bun
- Apple Container (
brew install container) - Git
First-time setup
After installing Apple Container, run container system start in your terminal. It will prompt to install the Kata kernel — say yes. This is a one-time step.
Install
git clone https://github.com/your/sandlot
cd sandlot
bun install
bun link
alias sl=sandlot
Usage
Run all commands from inside a cloned git repo.
Start a session
sandlot new fix-POST
Creates a worktree, boots a container, and launches Claude Code inside it.
Other commands
sandlot list # show all sessions
sandlot open <branch> # re-enter a session
sandlot stop <branch> # stop a container without destroying it
sandlot rm <branch> # tear down session (container, worktree, local branch)
Use git directly for commits, pushes, merges, etc. The worktree is a normal git checkout.