Commit Graph

286 Commits

Author SHA1 Message Date
16d67fa3e7 Remove VM from cache and destroy with spinner 2026-02-25 12:29:47 -08:00
8543179ec6 Merge branch 'fix-worktrees' 2026-02-25 12:28:18 -08:00
aab4f35c89 Mount host dirs read-only in container 2026-02-25 12:28:16 -08:00
8149a6add3 Accept trust dialog for root project in claude.json 2026-02-25 12:25:16 -08:00
65603df7d2 Make hostMounts sync, drop readonly mounts 2026-02-24 23:44:22 -08:00
a89d8482d2 Add color and pager support to log command 2026-02-24 19:07:39 -08:00
40cd8f332c Update list status icons 2026-02-24 19:02:52 -08:00
d11df74ecd Add --enable-kernel-install to container start 2026-02-24 10:23:57 -08:00
9ed2b1c192 Show stderr output in debug mode 2026-02-24 09:58:45 -08:00
6a8bbfd407 Add spinner to vm stop command 2026-02-24 09:53:59 -08:00
8e62ce1a59 Normalize ~/Code path to lowercase ~/code 2026-02-24 09:52:11 -08:00
3b21a2afd1 Use nested paths for host mounts 2026-02-24 08:49:33 -08:00
3d41e3de29 Support optional ~/Code mount alongside ~/dev 2026-02-24 08:47:57 -08:00
be277b7623 Add stat formatting with colorized diff indicators 2026-02-23 21:28:23 -08:00
33f820f124 sandlot web <branch> 2026-02-23 21:14:29 -08:00
1d7f60b50c Simplify commit message prompts to single-line format
Change the commit message generation prompts from requesting
50/72-rule multi-line messages to single-line subjects only.
This avoids unnecessary body text in automated commits and
ensures the first line is always used via `.split("\n")[0]`.
2026-02-23 20:35:43 -08:00
4c1530760c Merge branch 'super-diffs' 2026-02-23 20:33:39 -08:00
909189b745 Extract browse HTML into external template
The HTML for the browse view was inlined as a template literal in
browse.ts, making it hard to edit and losing syntax highlighting.
Move it to browse.html and use placeholder replacement instead.

Also update branchDiff to accept the main branch as a parameter
so the caller resolves it once and reuses it for diffStat too.
2026-02-23 20:33:10 -08:00
b8f7aea3b0 add browse command to open branch diff in web browser 2026-02-23 20:17:25 -08:00
c6ef48384e Improve commit message generation to follow 50/72 rule 2026-02-23 20:06:41 -08:00
1fc053ce70 Add markdown table rendering with box-drawing characters and alignment support 2026-02-23 20:03:11 -08:00
1022a75722 Improve merge spinner messages and conflict resolution flow 2026-02-23 19:20:37 -08:00
ec1f6796b8 Add edit command to open session files in $EDITOR 2026-02-23 19:14:58 -08:00
b46511efe3 Rename info to neofetch in vm module and command handler 2026-02-23 08:08:59 -08:00
33e47a802c Move retry logic into vm.ts and simplify open.ts command flow 2026-02-23 08:06:58 -08:00
6114540764 Return exit code and output from claude() and retry without --continue on failure 2026-02-23 07:32:42 -08:00
6ec203e67f Start container with progress logging 2026-02-23 07:21:46 -08:00
5b9998b138 Simplify default command fallback to always run list when no args given 2026-02-22 12:35:30 -08:00
2eba71ce87 Merge branch 'difftastic-integration' 2026-02-22 07:47:11 -08:00
2d0940f7c6 Merge branch 'continue' 2026-02-22 07:45:37 -08:00
4cde0c2086 Use inherited stdio for git diff/show to support external diff tools and native paging 2026-02-22 07:31:30 -08:00
10ebfcf754 Update CLI description, help/version options, and add version command 2026-02-22 07:17:03 -08:00
c2cf0518e7 open: pass continue flag when running prompt in print mode 2026-02-21 12:29:16 -08:00
cfb9ed6172 Pass continue: true to claude when opening an existing session 2026-02-21 12:27:37 -08:00
89eb5e382b Reorganize CLI commands into groups using commander v14, upgrade commander to 14.0.3 2026-02-21 12:23:08 -08:00
a5fb4c2555 Merge branch 'sandlot-squash'
# Conflicts:
#	src/commands/merge.ts
2026-02-21 08:56:32 -08:00
18de3a4164 missing join 2026-02-21 08:56:19 -08:00
31df93016b Refactor merge/squash into shared mergeAndClose helper with AI-generated squash commit messages 2026-02-21 08:54:58 -08:00
47a6107f76 Merge branch 'cache-packages' 2026-02-21 08:54:14 -08:00
daf436f90e Merge branch 'improve-conflict-context'
# Conflicts:
#	src/commands/merge.ts
2026-02-21 08:53:45 -08:00
cfe8eab054 add vm uncache command to clear the package cache 2026-02-21 08:53:06 -08:00
db9f40dac9 improve conflict complexity analysis and merge error messaging 2026-02-21 08:46:58 -08:00
417bb666b2 Refactor tooling install steps and extract PATH constant 2026-02-21 08:45:32 -08:00
668f66d3c9 Add squash-merge command with conflict resolution 2026-02-21 08:39:37 -08:00
376f918a66 refactor merge: extract lineCount helper, hoist preamble, and gracefully handle git errors 2026-02-21 08:36:44 -08:00
1e71b3b4a4 Require session to exist before closing; simplify worktree path resolution 2026-02-21 08:31:08 -08:00
ca7af3d671 Remove difftastic from tooling installation and cache 2026-02-21 08:31:02 -08:00
c6b6f52b1f skip complex conflicts in merge auto-resolution 2026-02-21 08:30:51 -08:00
4db29e4beb Add --install flag to completions command that outputs an install script 2026-02-21 08:26:44 -08:00
4f913b6091 Add tooling cache and install neofetch, difftastic, and Neovim in containers 2026-02-21 08:24:26 -08:00
12ba2c7c82 Merge branch 'sandlot-rebase' 2026-02-21 07:54:44 -08:00
386954b3c4 Truncate large diffs in merge context and add error handling to git log/diff helpers 2026-02-21 07:54:23 -08:00
2722761125 truncate prompt display to first line only 2026-02-21 07:53:52 -08:00
cc1d2628a9 Replace newlines with spaces in prompt display 2026-02-21 07:51:20 -08:00
0932fd5ef5 Rename spinner variables and add rebase-in-progress guard with improved error messages 2026-02-20 20:12:44 -08:00
ae6604caad add merge context (branch log, diff stats, per-file diffs) to improve conflict resolution quality 2026-02-20 19:21:16 -08:00
ed43aaff78 Merge branch 'sandlot-rm-completion' 2026-02-20 19:19:25 -08:00
76797569e1 Hide rm alias from help while keeping it in completions 2026-02-20 18:55:24 -08:00
603c92b595 refactor conflict resolution into shared helper and add rebase round limit 2026-02-20 18:54:25 -08:00
e88de1aed3 save changes after review completes 2026-02-20 18:41:36 -08:00
37665aac58 Unhide rm command and add description as alias for close 2026-02-20 16:27:43 -08:00
0c5e44bb5d Add rebase command with AI-assisted conflict resolution 2026-02-20 16:01:26 -08:00
71830c6bd5 Merge branch 'code-review'
# Conflicts:
#	src/cli.ts
2026-02-20 15:56:35 -08:00
8d31e9ec68 Remove REVIEW.md, standardize close.ts export, and minor cleanup 2026-02-20 15:55:54 -08:00
14cad28488 Refactor cli.ts into per-command modules with shared utilities 2026-02-20 15:43:15 -08:00
59c90fa812 Merge branch 'markdown-links' 2026-02-20 15:22:13 -08:00
b4b72e2c02 fix markdown rendering: protect code blocks/escapes, move links before bold/italic, add task lists and H2-H6 support 2026-02-20 15:22:09 -08:00
89127f98c8 Pass --continue flag when resuming existing sessions 2026-02-20 15:17:07 -08:00
ecf7b93f3f Add OSC 8 terminal hyperlink rendering for markdown links 2026-02-20 12:21:12 -08:00
3c1f42e985 Merge branch 'test-markdown' 2026-02-20 12:17:17 -08:00
a1e543057f Refactor markdown test to read from file instead of hardcoded strings 2026-02-20 12:17:10 -08:00
7732a3136e Merge branch 'auto-list' 2026-02-20 12:16:34 -08:00
cc3793593d Show session list by default when sessions exist 2026-02-20 12:16:18 -08:00
0ad173ef8f Add heading and blockquote rendering to markdown formatter 2026-02-20 09:00:49 -08:00
3e423a3b37 Strip code fences from markdown rendering in terminal output 2026-02-20 08:45:28 -08:00
7c5746e268 add fish shell completions command 2026-02-20 08:40:56 -08:00
267b519e14 Add --force flag to close command and guard against unsaved changes 2026-02-20 08:28:39 -08:00
7c46b28aab Add dirty worktree check before merge to prevent unsaved changes from being lost 2026-02-20 08:27:34 -08:00
9b8d4d882e Set explicit PATH in shell container exec 2026-02-20 08:25:24 -08:00
601170e2ab Merge branch 'claude-markdown' 2026-02-20 07:58:40 -08:00
f6bc2aecb7 render markdown output for claude command results; add blank line before lists in markdown renderer 2026-02-20 07:58:27 -08:00
59fcb55eb4 Merge branch 'launch-claude-vm' 2026-02-20 07:55:39 -08:00
e00d1f7d5b Swap active/saved colors in session list (cyan for active, green for saved) 2026-02-20 07:54:01 -08:00
de40ddd225 Make the branch argument optional in the shell command, falling back to a plain VM shell when omitted 2026-02-20 07:47:49 -08:00
10c6bd46a0 Add PATH to container exec environment for claude binary 2026-02-20 07:47:40 -08:00
5beb35dbe2 Change inline code color to light purple and add markdown test script 2026-02-20 07:47:31 -08:00
ef8e40ecb3 add sandlot shell <branch> command to open a shell in a session's worktree 2026-02-20 07:44:43 -08:00
f00cea588f Merge branch 'cleanup' 2026-02-20 07:41:41 -08:00
814bbb39a0 Make worktree removal idempotent by pruning and cleaning up stale directories instead of throwing on failure 2026-02-20 07:41:24 -08:00
be29b5fcd7 die more gracefully 2026-02-20 07:40:24 -08:00
1cd4e7f668 add cleanup command to remove stale sessions with missing worktrees 2026-02-20 07:40:02 -08:00
3888876ed5 add unzip 2026-02-20 07:38:24 -08:00
5dd0ff2193 dont think bun.$ can do env vars 2026-02-20 07:31:57 -08:00
773e8d56a4 ~/.local/bin for bun 2026-02-19 20:15:42 -08:00
75bbe90b5a add bun 2026-02-19 20:11:18 -08:00
fa888a9e38 Add markdown rendering utility for bold, italic, and inline code 2026-02-19 20:09:08 -08:00
1c31d3ed6f Merge branch 'claude-detection-fix' 2026-02-19 20:08:46 -08:00
a6f6d8b067 Use absolute path for sandlot-activity binary in Claude hooks 2026-02-19 19:55:54 -08:00
e048b20e5c Disable plan mode in system prompt when using print option 2026-02-19 19:54:51 -08:00
f9f87862b0 Merge branch 'vm-create-start' 2026-02-19 19:52:21 -08:00
9aac8298c9 add vm create and vm start commands, refactor ensure to delegate to them 2026-02-19 19:51:33 -08:00
9b6245d9c9 Add branch name prefix to spinner output 2026-02-19 19:22:24 -08:00
e23e84655d Simplify activity hook script and remove unused activeWorktrees function 2026-02-19 19:15:28 -08:00
86fd1e6c25 Track Claude activity state via hook-based marker files 2026-02-19 18:46:51 -08:00
0d059b8940 fix: create host path symlinks in container so git worktree absolute paths resolve correctly 2026-02-19 16:03:07 -08:00
fd5a6f8ed7 Merge branch 'grumpy-reviewer' 2026-02-19 13:28:18 -08:00
eb5acc2049 Merge branch 'lets-add' 2026-02-19 13:26:29 -08:00
b9630e12c6 Add ANSI color coding to session list output 2026-02-19 13:26:18 -08:00
afee01815c add --print flag to review command for non-interactive output 2026-02-19 13:24:59 -08:00
47dc4941b1 add review command for interactive grumpy code review of a branch 2026-02-19 13:23:11 -08:00
e860d6ff57 Tighten branch name generation to 2 words with lower token limit and zero temperature 2026-02-19 13:20:41 -08:00
05dd4f1806 Use Claude API to generate branch names from prompts, falling back to a local slugify function 2026-02-19 13:18:53 -08:00
1edc7b92fb Add header and legend to session list output 2026-02-19 13:14:24 -08:00
bf6b9973d5 Merge branch 'for-sandlot'
# Conflicts:
#	src/cli.ts
2026-02-19 13:07:11 -08:00
ff086cd4d2 Enrich session list with prompts from Claude history for sessions missing one 2026-02-19 13:05:12 -08:00
c76340777e add status icons to list command showing session activity state 2026-02-19 12:35:23 -08:00
25d2de5348 Merge branch 'i-should' 2026-02-19 11:52:34 -08:00
997c0967d4 Merge branch 'show' 2026-02-19 11:50:34 -08:00
fd27c93f82 Merge branch 'icons' 2026-02-19 11:50:18 -08:00
1719a71cd9 Merge branch 'no-worktree'
# Conflicts:
#	src/cli.ts
2026-02-19 11:25:43 -08:00
3580df2ba6 Add symbolic status prefixes to CLI output messages 2026-02-19 11:24:55 -08:00
f47dabbabc Add sandlot show command to display prompt and diff for a branch 2026-02-19 11:24:32 -08:00
40b04f159e Truncate prompt column in session list to fit terminal width 2026-02-19 11:23:53 -08:00
84ff27fd8e Remove worktree column from sessions list output 2026-02-19 11:22:48 -08:00
e5085d50ed Merge branch 'add-sandlot' 2026-02-19 11:21:49 -08:00
de0a3487e4 Merge branch 'sandlot-list' 2026-02-19 11:21:24 -08:00
d5bab69367 add dir command to print worktree path for a session 2026-02-19 11:21:03 -08:00
358c66a073 Pass TERM environment variable when launching Claude in container 2026-02-19 11:19:38 -08:00
38c767ef29 Merge branch 'no-save' 2026-02-19 11:19:27 -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
d791fb1866 Add --no-save flag to skip auto-save on new and resume commands 2026-02-19 11:18:28 -08:00
3bcea58729 Consolidate close action logs into a single summary message 2026-02-19 11:17:07 -08:00
8b276036bf Merge branch 'fix-prompt' 2026-02-19 11:15:21 -08:00
4399fdef03 capture and return claude print output instead of writing directly to stdout 2026-02-19 11:15:15 -08:00
c5f376d797 Simplify branch name generation to use first two words instead of truncating at 20 chars 2026-02-19 10:59:07 -08:00
d4a3053bd7 Pipe long diff output through less pager when it exceeds terminal height 2026-02-19 10:57:58 -08:00
9fc126d58f Merge branch 'session-ready' 2026-02-19 10:23:18 -08:00
e4bee9c7c8 fix spinner lifecycle to reuse single spinner instance and suppress "Session ready" in print mode 2026-02-19 10:22:44 -08:00
a640d15a2c Add --color=always to git diff commands 2026-02-19 10:21:57 -08:00
b4b5a11a90 Add newline after Claude output before spinner completion 2026-02-19 10:20:29 -08:00
061e7e30b9 Merge branch 'log' 2026-02-19 10:18:48 -08:00
2a90c59b3b diff: show uncommitted changes or full branch diff vs main when working tree is clean 2026-02-19 10:14:11 -08:00
d4d0010632 add sandlot log command to show branch commits not on main 2026-02-19 10:12:06 -08:00
586e72610a Replace console.log with spinner for prompt progress in CLI 2026-02-19 10:07:31 -08:00
4fefc43eeb Merge branch 'auto-save2' 2026-02-19 10:04:05 -08:00
e96e6878a4 Refactor save logic into shared saveChanges helper and auto-commit after run 2026-02-19 10:04:03 -08:00
7f2119753d Merge branch 'no-branch-p2' 2026-02-19 09:56:07 -08:00
1aaeb53ead Auto-derive branch name from -p prompt when branch arg is omitted 2026-02-19 09:56:04 -08:00
d941af2078 Add prompt and print mode options to the open command 2026-02-19 09:54:21 -08:00
dddd4259f0 Merge branch 'auto-branch'
# Conflicts:
#	src/cli.ts
2026-02-19 09:50:55 -08:00