/simplify: tidy rewrite (resolveAuthor, thread refName, sparse tasks graft)

Commit

Soph2mo ago
  • Collapse the fallback name/email into a commitAuthor and extract resolveAuthor, shrinking rewriteCheckpoint's parameter list and de-duplicating the per-session and tasks-graft author fallback.
  • Compute the ref name once in the walk and thread it through rewriteCheckpoint and graftTasksSubtree instead of recomputing RefName three times per checkpoint.
  • Graft tasks with a single UpdateSubtree(MergeKeepExisting) call — splicing the tasks/ entry into the root tree so sibling session subtrees keep their hashes — instead of flattening and rebuilding the whole tree.
  • Reset the ref only under --force (the non-force existing-ref case is already skipped by the caller), dropping a redundant check.
  • Add a graft test covering the tasks splice (tasks/ added, existing entries preserved, checkpoint still reads back).

Skipped as out of scope for hidden test tooling: adding a tasks WriteRequest type / AuthorReader.GetSessionAuthor, and dropping the deliberate metadata forwarding.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com Entire-Checkpoint: 48ce721ba1a2

Checkpoints

Build Checkpoints Store Based on Design

Claude CodeOpus 4.8
View session
Checkpoint 1