Skip to content

feat(server): jj-native checkpoints and review diffs - #11382

Draft
THEjacob1000 wants to merge 588 commits into
pingdotgg:t3code/codex-turn-mappingfrom
THEjacob1000:feat/jj-checkpoints
Draft

THEjacob1000 wants to merge 588 commits into
pingdotgg:t3code/codex-turn-mappingfrom
THEjacob1000:feat/jj-checkpoints

Conversation

@THEjacob1000

@THEjacob1000 THEjacob1000 commented Sep 12, 2026 •

Copy link
Copy Markdown

What Changed

Checkpoints and review diffs for jj repos. A checkpoint is the commit id of @ at the end of a turn, pinned under refs/t3/ like git. Restore is jj restore --from, so change ids, bookmarks and other workspaces survive and jj undo takes it back. Review diffs run git plumbing against the colocated store so the diff parsers don't change.

Why

Bookmarks show up in the ref picker, jj commit drops a visible commit in the user's log every turn, and op ids stop resolving once the op log is pruned. A raw ref is durable, invisible and moves nothing. After a prune jj forgets the object but git still has it, so restore imports it back through a temp bookmark.

Stack

  1. feat(vcs): jj driver, detection and process wrapper #11373
  2. This PR
  3. feat(server): route workflow, hosting glue, and discovery by vcs kind #11383
  4. feat(web,mobile): jj terminology and shared vcs action logic #11384

GitHub can't create stacked PRs from a fork, so the diff carries the PRs below. Review the top commit only.

Manual evidence

Manually exercised in the installed Linux desktop app, build 2a249f8e503a (the complete stack), using disposable repositories. These captures verify the integrated stack, not each lower PR in isolation.

Two real agent turns produced distinct file diffs. The baseline and both turn checkpoints retain the same jj change ID; main stays on the original commit. A separate workspace also produced a turn diff. Working-copy and bookmark review were exercised after a selected-file commit.

Restore was rechecked in an isolated dev instance. Reverting the second turn restores the first checkpoint on disk and returns the removed prompt to the composer. Undo, pruned-object recovery, conflicts and large-file cases remain untested.

Two turn diffs, checkpoint identity and restore

First turn creates the greeting

Second turn replaces the greeting

Raw checkpoint contents and stable jj change identity

Restored first checkpoint and recovered composer prompt

restore-verified.mp4

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Evidence captured with Codex; test turns used GPT-6 Astra.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Sep 12, 2026
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch 2 times, most recently from a8cc38b to 834edb9 Compare September 14, 2026 21:15
@THEjacob1000
THEjacob1000 force-pushed the feat/jj-checkpoints branch 2 times, most recently from 94c46a6 to 83185ae Compare September 14, 2026 23:49
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch 4 times, most recently from a5ebe9a to a62d7ad Compare September 15, 2026 17:25
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch 6 times, most recently from 0f32464 to 4ab2efc Compare September 16, 2026 21:15
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch 8 times, most recently from 7e67512 to 48b7f3f Compare September 18, 2026 00:54
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch from 5ff0a93 to fd8ea2f Compare September 19, 2026 04:23

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.