Skip to content

feat(sandbox): resume JJ sandboxes at persisted WIP revisions - #84

Draft
MingweiSamuel wants to merge 1 commit into
mainfrom
sandbox-1e0800f7-f9f8-4200-a376-b5b86fb9bdba
Draft

feat(sandbox): resume JJ sandboxes at persisted WIP revisions#84
MingweiSamuel wants to merge 1 commit into
mainfrom
sandbox-1e0800f7-f9f8-4200-a376-b5b86fb9bdba

Conversation

@MingweiSamuel

Copy link
Copy Markdown
Member

Persist the absolute JJ working-copy change ID after successful sandbox pushes and use it to initialize a replacement workspace after suspension, rather than recreating from immutable starting provenance or depending on the sandbox bookmark. The existing starting_revision remains the fallback for legacy state without a resume revision.

Add an end-to-end local JJ restart test: it moves the actual temporary workspace with jj split, deletes that workspace and the visible bookmark, gracefully shuts down the RAP server, then starts a fresh server and verifies it restores both the WIP file and exact change ID. Add shutdown-capable test-server support so the test proves restoration is not served from an in-memory backend cache. Update provider/backend push interfaces to return an optional durable WIP revision; Git retains its current behavior and does not yet record one.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploying infinity with  Cloudflare Pages  Cloudflare Pages

Latest commit: 0ee7ec4
Status: ✅  Deploy successful!
Preview URL: https://5a76829e.infinity-dc7.pages.dev
Branch Preview URL: https://sandbox-1e0800f7-f9f8-4200-a.infinity-dc7.pages.dev

View logs

MingweiSamuel added a commit that referenced this pull request Jul 24, 2026
Persist the absolute JJ working-copy change ID after successful sandbox pushes and use it to initialize a replacement workspace after suspension, rather than recreating from immutable starting provenance or depending on the sandbox bookmark. The existing `starting_revision` remains the fallback for legacy state without a resume revision.

Add an end-to-end local JJ restart test: it moves the actual temporary workspace with `jj split`, deletes that workspace and the visible bookmark, gracefully shuts down the RAP server, then starts a fresh server and verifies it restores both the WIP file and exact change ID. Add shutdown-capable test-server support so the test proves restoration is not served from an in-memory backend cache. Update provider/backend push interfaces to return an optional durable WIP revision; Git retains its current behavior and does not yet record one.

Co-authored-by: Infinity 🤖 <infinity@hydro.run>
PR: #84
@MingweiSamuel
MingweiSamuel force-pushed the sandbox-1e0800f7-f9f8-4200-a376-b5b86fb9bdba branch from daf84af to 1db59a3 Compare July 24, 2026 22:51
Persist the absolute JJ working-copy change ID after successful sandbox pushes and use it to initialize a replacement workspace after suspension, rather than recreating from immutable starting provenance or depending on the sandbox bookmark. The existing `starting_revision` remains the fallback for legacy state without a resume revision.

Add an end-to-end local JJ restart test: it moves the actual temporary workspace with `jj split`, deletes that workspace and the visible bookmark, gracefully shuts down the RAP server, then starts a fresh server and verifies it restores both the WIP file and exact change ID. Add shutdown-capable test-server support so the test proves restoration is not served from an in-memory backend cache. Update provider/backend push interfaces to return an optional durable WIP revision; Git retains its current behavior and does not yet record one.

Co-authored-by: Infinity 🤖 <infinity@hydro.run>
PR: #84
@MingweiSamuel
MingweiSamuel force-pushed the sandbox-1e0800f7-f9f8-4200-a376-b5b86fb9bdba branch from 1db59a3 to 0ee7ec4 Compare July 24, 2026 22:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant