Fork tasks from snapshots; snapshot only when text follows tool calls

This commit is contained in:
Ian Gulliver
2026-10-15 11:36:51 -07:00
parent 3fe0374ac5
commit 0000db1f86
25 changed files with 893 additions and 421 deletions
+2 -1
View File
@@ -12,11 +12,12 @@ claude --output-format stream-json --input-format stream-json --verbose \
--permission-mode bypassPermissions --allow-dangerously-skip-permissions \
--settings '{"attribution":{"commit":"","pr":""}}' \
--mcp-config '{"mcpServers":{"byre":{"type":"sdk","name":"byre"}}}' \
[--model M] [--resume=SESSION_ID] [--fork-session]
[--model M] [--session-id=ID] [--resume=SESSION_ID] [--resume-session-at=UUID] [--fork-session]
```
- No `--print`; stream-json input implies non-interactive.
- `--resume=` uses the equals form so a dash-leading value can't be parsed as a flag.
- `--resume-session-at` is hidden from `--help`. With `--resume` it keeps the conversation only up to and including the entry with that uuid, the `uuid` of an `assistant` or `user` stream-json line. With `--fork-session` and `--session-id` too, the result is a new session with that id, and the original is untouched. Resuming by id works from any working directory, so a fork can run in another worktree.
- Environment: `CLAUDECODE` is removed so the child doesn't think it is nested; `GIT_AUTHOR_*`/`GIT_COMMITTER_*` set the commit identity; `attribution` set to empty strings removes the co-author trailer.
## Framing