trail: add resume command - #1511
Conversation
Entire-Checkpoint: 1cf96d1dbe7e
Entire-Checkpoint: 79bf8e72decd
# Conflicts: # .gitignore
Add trail resume with checkpoint-session discovery, interactive session selection, agent resume launching, and integration coverage for restoring sessions when local state is missing. Entire-Checkpoint: 33d13fdff5ab
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 894aa84. Configure here.
There was a problem hiding this comment.
Pull request overview
Adds a new entire trail resume command that can show trail context plus checkpoint-backed session listings, then restore and (optionally) launch an agent-native resume flow. This builds on the existing resume/restore machinery by reusing checkpoint restore logic and enhancing restored session metadata (prompt/kind/review prompt) to improve selection and display.
Changes:
- Introduces
entire trail resumewith context output, interactive picker/default behavior, and--session/--checkpointtargeting. - Reuses/refactors resume restore internals to return restored session slices and includes review metadata for better prompt previews.
- Adds agent “resume launchers” (subprocess-spawnable resume) plus unit/integration tests covering missing-local-state behavior.
Reviewed changes
Copilot reviewed 22 out of 23 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| t1.txt | Adds a new text file (appears unrelated to this feature). |
| cmd/entire/cli/trail_resume_cmd.go | Implements entire trail resume command, context rendering, selection, restore, and optional agent launch. |
| cmd/entire/cli/trail_resume_cmd_test.go | Unit tests for option validation, context rendering/JSON encoding, and restored-session choice behavior. |
| cmd/entire/cli/trail_cmd.go | Registers the new trail resume subcommand. |
| cmd/entire/cli/strategy/strategy.go | Extends RestoredSession to carry kind/review prompt metadata. |
| cmd/entire/cli/strategy/rewind_test.go | Adds tests for restored prompt preview fallback; updates test agent to satisfy prompt extraction needs. |
| cmd/entire/cli/strategy/manual_commit_rewind.go | Improves restored prompt preview derivation (sidecar → review prompt → transcript-derived prompts). |
| cmd/entire/cli/resume.go | Refactors restore paths to return restored sessions so callers (like trail resume) can decide how to display/launch. |
| cmd/entire/cli/resume_picker.go | Adds shared unknownAgentLabel constant for consistent UI strings. |
| cmd/entire/cli/integration_test/trail_resume_test.go | Integration test ensuring checkpoint sessions are used when local session state is missing. |
| cmd/entire/cli/agent/registry.go | Adds ResumeLauncherFor to resolve agents that can be subprocess-launched for resume. |
| cmd/entire/cli/agent/registry_test.go | Tests ResumeLauncherFor. |
| cmd/entire/cli/agent/pi/pi.go | Adds LaunchResumeCmd for Pi agent. |
| cmd/entire/cli/agent/opencode/opencode.go | Adds LaunchResumeCmd for OpenCode agent. |
| cmd/entire/cli/agent/geminicli/gemini.go | Adds LaunchResumeCmd for Gemini CLI agent. |
| cmd/entire/cli/agent/factoryaidroid/factoryaidroid.go | Adds LaunchResumeCmd for Factory AI Droid agent. |
| cmd/entire/cli/agent/copilotcli/copilotcli.go | Adds LaunchResumeCmd for Copilot CLI agent. |
| cmd/entire/cli/agent/codex/codex.go | Adds LaunchResumeCmd for Codex agent. |
| cmd/entire/cli/agent/codex/codex_test.go | Adds a LaunchResumeCmd shape test (skips if binary missing). |
| cmd/entire/cli/agent/claudecode/claude.go | Adds LaunchResumeCmd for Claude Code agent. |
| cmd/entire/cli/agent/agent.go | Introduces the ResumeLauncher interface. |
| cmd/entire/cli/agent/foreground.go | Adds helper to build foreground-wired subprocess commands (NewForegroundCommand). |
| .gitignore | Ignores a few additional local artifact directories. |
Resolve .gitignore by keeping /skills/, remove stray t1.txt, and preserve restored sessions from resume fallback paths so trail resume can launch agents after restore. Entire-Checkpoint: 1cfc6d5a6270
# Conflicts: # cmd/entire/cli/resume.go
Entire-Checkpoint: 032d11e360b1
Entire-Checkpoint: 98c72f60a218
Entire-Checkpoint: edbbfc484319
Entire-Checkpoint: d9163150e6c7
Entire-Checkpoint: d5ecffddba59
Entire-Checkpoint: 8a18ef79cd93
Entire-Checkpoint: 161f0e9d0a7a
Entire-Checkpoint: 1b6b555d42cd
Entire-Checkpoint: e1d941a3cd43
Entire-Checkpoint: 132301f4f85c
Entire-Checkpoint: 8badb87d4a67
Encode trail resume session last_active through a pointer-backed JSON shape so unset timestamps are omitted instead of serialized as year 0001. Also remove the unused agentimport.Get helper that blocked the full lint check after merging main. Entire-Checkpoint: c40acde9e205
Entire-Checkpoint: 17545bac9274
Entire-Checkpoint: 5823005e35aa
Entire-Checkpoint: f68a8bbbdf1d
Entire-Checkpoint: 40f9656787a9
Entire-Checkpoint: ab9a991ab515
Entire-Checkpoint: ce73f53d18de
computermode
left a comment
There was a problem hiding this comment.
Latest changes since last approval look good, carrying forward that review 👍🏻
Review feedback on the dead-code sweep: two deletions took the only tests of live logic with them. - factoryaidroid: the six subagent-aggregation tests only exercised the dead path-based twins, but the logic lives on in CalculateTotalTokenUsageFromBytes/ExtractAllModifiedFilesFromBytes — the production path via lifecycle.go, and Droid isn't in the CI canary. Retarget them at the FromBytes entry points: per-checkpoint offset math, the APICallCount>0 subagent gate, cross-agent file dedup, and missing-transcript tolerance are asserted again. - explain: the three default-view tests only drove the deleted runExplainDefault wrappers, leaving runExplainBranchWithFilter — the real branch soph/deslop checkpoints 114 ● f06be81196bf "<task-notification>\n<task-id>b53nll3s4</task-id>\n<tool-us..." 07-02 18:12 (ca82a6a) cli: drop types and test helper orphaned by the dead-code sweep ● 7307caae423f "<task-notification>\n<task-id>b53nll3s4</task-id>\n<tool-us..." 07-02 18:12 (350f6ff) cli subpackages: delete dead code and its dedicated tests ● 7c22eaba7124 "<task-notification>\n<task-id>b53nll3s4</task-id>\n<tool-us..." 07-02 18:12 (13b0ab1) cli: dedupe tmp-state cleanup and rewind preview warnings ● 8a9c75ea075f "<task-notification>\n<task-id>b53nll3s4</task-id>\n<tool-us..." 07-02 18:12 (a2c89a2) cli: delete dead root-package code and its dedicated tests ● ab0d1ee8ae62 e2e: share the run-capture/deadline-wrap block across age... 07-02 18:12 (c7443f4) e2e: share the run-capture/deadline-wrap block across agent runners ● 5eec000c7982 agent/geminicli: drop trailing blank line left by parser ... 07-02 18:12 (3ea3351) agent/geminicli: drop trailing blank line left by parser fold ● e64c28c66fb4 strategy, trailers, clusterdiscovery: delete dead code an... 07-02 18:12 (10892ce) strategy, trailers, clusterdiscovery: delete dead code and its tests ● 351ee2316125 cli: standardize on printJSON for indented JSON output 07-02 18:12 (7f9b918) cli: standardize on printJSON for indented JSON output ● 5c2527f62f77 cli: share the stop-sessions confirmation prompt 07-02 18:12 (62ea674) cli: share the stop-sessions confirmation prompt ● 76f119a87828 cli: dedupe agent display-name and hook-agent-option buil... 07-02 18:12 (a0ab634) cli: dedupe agent display-name and hook-agent-option building in setup ● 65cfea8234e1 agent/vogon: reuse one parser for the sessionInfoRaw hooks 07-02 18:12 (ff99145) agent/vogon: reuse one parser for the sessionInfoRaw hooks ● 4bfedc11ca7f review: dedupe config filtering and picker multiselect co... 07-02 18:12 (02a59b9) review: dedupe config filtering and picker multiselect construction ● 11253d4586b3 agent: dedupe transcript scanning in opencode and copilot... 07-02 18:12 (3aada34) agent: dedupe transcript scanning in opencode and copilot-cli ● 7b73bd925300 "/goal simplify this repo, make sure to de-slop it continu..." 07-02 18:11 (1b1e8b5) agent: collapse capability As* helpers onto two generic gates ● cafa646983ad [imported] "can you review #1462" 07-01 13:59 (cafa646) can you review #1462 ● 5bc51efe5634 [imported] "could we also add \"PR #1237\" or \"T #123\" (for trail) so m..." 07-01 13:39 (5bc51ef) could we also add "PR #1237" or "T #123" (for trail) so m... ● 1686873c82fe [imported] "test" 07-01 13:33 (1686873) test ● 424e70130be4 [imported] "can you review again, did it change?" 07-01 13:19 (424e701) can you review again, did it change? ● 88b96bfc1a5c [imported] "check" 07-01 13:18 (88b96bf) check ● 67b0ce56bd73 [imported] "one" 07-01 13:18 (67b0ce5) one ● 39348f4dc708 [imported] "can you post it as finding to the trail?" 07-01 13:11 (39348f4) can you post it as finding to the trail? ● 37c58b1285cc [imported] "so it worked a few times, but now it doesn't..." 07-01 13:07 (37c58b1) so it worked a few times, but now it doesn't... ● 738da64b0dfb [imported] "can you review #1573" 07-01 13:02 (738da64) can you review #1573 ● 42a4208d02fc [imported] "just testing if it updates now if I really type something" 07-01 12:15 (42a4208) just testing if it updates now if I really type something ● 3be2e037f80a [imported] "yes, revert" 07-01 10:46 (3be2e03) yes, revert ● 3b397151d6f6 [imported] "can you look at this comment: https://github.com/anthropi..." 07-01 10:38 (3b39715) can you look at this comment: https://github.com/anthropi... ● 4555162959cd [imported] "I think it worked when I left the focus for the window an..." 07-01 10:37 (4555162) I think it worked when I left the focus for the window an... ● 76eb3d2b9d98 [imported] "ok" 07-01 10:34 (76eb3d2) ok ● 2124a6f6a229 [imported] "test" 07-01 10:34 (2124a6f) test ● 4330123cdcf9 [imported] "it does not work :(" 06-30 16:20 (4330123) it does not work :( ● 4d9c7190f539 [imported] "ok, restarted, let's try again" 06-30 16:19 (4d9c719) ok, restarted, let's try again ● aaabdc00513b [imported] "I changed it, is this auto picked up or needs a restart?" 06-30 16:18 (aaabdc0) I changed it, is this auto picked up or needs a restart? ● 06862b0f6354 [imported] "Help me fix the issues reported by /doctor below.\n\nFor ea..." 06-30 16:16 (06862b0) Help me fix the issues reported by /doctor below. For ea... ● 8e56c6a6b74f [imported] "I put the line into the settings.json since I briefly saw..." 06-30 16:11 (8e56c6a) I put the line into the settings.json since I briefly saw... ● 5f4910a121d0 [imported] "no" 06-30 16:07 (5f4910a) no ● 4a0d45bf06c5 [imported] "it does not, but maybe I have not title set to \"\"" 06-30 16:05 (4a0d45b) it does not, but maybe I have not title set to "" ● a03587b3282a [imported] "works now, test" 06-30 16:04 (a03587b) works now, test ● 17e892e14dd0 [imported] "⏺ Ran 2 stop hooks\n ⎿ \u00a0Stop hook error: Failed with non-..." 06-30 16:00 (17e892e) ⏺ Ran 2 stop hooks ⎿ Stop hook error: Failed with non-... ● 9299dcc26c8e [imported] "hello" 06-30 15:59 (9299dcc) hello ● 3d591b1340c3 [imported] "Help me fix the issues reported by /doctor below.\n\nFor ea..." 06-30 15:58 (3d591b1) Help me fix the issues reported by /doctor below. For ea... ● 32197462b83a [imported] "yeah let's try wiring the stop hook in my settings.json, ..." 06-30 15:55 (3219746) yeah let's try wiring the stop hook in my settings.json, ... ● 08301e76c817 [imported] "but it would not work with claude being in the window and..." 06-30 15:52 (08301e7) but it would not work with claude being in the window and... ● 80b129a53f56 [imported] "I'd like to show when the last \"change\" in a ghostty tab ..." 06-30 15:49 (80b129a) I'd like to show when the last "change" in a ghostty tab ... ● 9454bdd3f330 [imported] "this has no a conflict with the base branch" 06-30 15:01 (9454bdd) this has no a conflict with the base branch ● 0652f4abbdbb [imported] "can you look at the pr comments, and also if the correspo..." 06-30 14:29 (0652f4a) can you look at the pr comments, and also if the correspo... ● f842b0ae13c4 [imported] "yes, do that" 06-30 14:07 (f842b0a) yes, do that ● aff3a8f7636f [imported] "did we open a PR yet?" 06-30 14:06 (aff3a8f) did we open a PR yet? ● 642544e41c50 [imported] "- cmd/entire/cli/paths/paths.go:32 still says transcript...." 06-30 12:28 (642544e) - cmd/entire/cli/paths/paths.go:32 still says transcript.... ● 03570057e87a [imported] "- P2 cmd/entire/cli/transcript/compact/compact.go:158: Fu..." 06-30 11:42 (0357005) - P2 cmd/entire/cli/transcript/compact/compact.go:158: Fu... ● d0b9faddc75d [imported] "<task-notification>\n<task-id>a0b8ca16f3d36a411</task-id>\n..." 06-30 11:15 (d0b9fad) <task-notification> <task-id>a0b8ca16f3d36a411</task-id> ... ● 9b2eb8b87c47 [imported] "<task-notification>\n<task-id>a78ca6485d1be4ff7</task-id>\n..." 06-30 11:14 (9b2eb8b) <task-notification> <task-id>a78ca6485d1be4ff7</task-id> ... ● 9c84afa51639 [imported] "<task-notification>\n<task-id>a457acc7c9d47e06e</task-id>\n..." 06-30 11:14 (9c84afa) <task-notification> <task-id>a457acc7c9d47e06e</task-id> ... ● 76b715ce095f [imported] "`/simplify → 4 cleanup agents in parallel → apply the fix..." 06-30 11:12 (76b715c) `/simplify → 4 cleanup agents in parallel → apply the fix... ● 4877690ab239 [imported] "how could 2 even work, we don't write the checkpoints at ..." 06-30 09:23 (4877690) how could 2 even work, we don't write the checkpoints at ... ● 2bc7d831d62e [imported] "can we start working on this?" 06-30 09:09 (2bc7d83) can we start working on this? ● d2b6c31a4e9b [imported] "Yeah but the issue is as soon as a checkpoint / commit in..." 06-30 08:57 (d2b6c31) Yeah but the issue is as soon as a checkpoint / commit in... ● def9943b30f0 [imported] "if we would want to store the transcript.jsonl as full we..." 06-30 08:46 (def9943) if we would want to store the transcript.jsonl as full we... ● 058751630ccb [imported] "<task-notification>\n<task-id>a676a8185d76c1abe</task-id>\n..." 06-30 08:42 (0587516) <task-notification> <task-id>a676a8185d76c1abe</task-id> ... ● 66311ee49b8c [imported] "can you give me a summary how we store session logs right..." 06-30 08:40 (66311ee) can you give me a summary how we store session logs right... ● e698e190b41c [imported] "can you also post the findings on 1472" 06-29 16:23 (e698e19) can you also post the findings on 1472 ● acd45beca109 [imported] "can you post those as findings on the trail using the cli..." 06-29 15:34 (acd45be) can you post those as findings on the trail using the cli... ● 4ffd98acbcbe [imported] "can you review #1313" 06-29 15:25 (4ffd98a) can you review #1313 ● e16e3aaaac83 [imported] "can you review #1472" 06-29 13:34 (e16e3aa) can you review #1472 ● 1b18c7ec130e [imported] "can you review again, I rebased" 06-29 13:12 (1b18c7e) can you review again, I rebased ● 9ad2a22d8dfc [imported] "can you review #1549 ..." 06-29 12:22 (9ad2a22) can you review #1549 ... ● 06efd7549b2f [imported] "I also not sure I like the design choice of just \"public\"..." 06-29 11:52 (06efd75) I also not sure I like the design choice of just "public"... ● a090f0dc130b [imported] "can you review #1531 ..." 06-29 11:26 (a090f0d) can you review #1531 ... ● 9a01b7c38400 [imported] "ok, now update the other place for the brew docs :)" 06-29 10:08 (9a01b7c) ok, now update the other place for the brew docs :) ● c7139bb53c2b [imported] "can you first review 1529 again" 06-29 10:03 (c7139bb) can you first review 1529 again ● 6a72ca55142f [imported] "back to 1534: can you check there are not other places wh..." 06-29 09:59 (6a72ca5) back to 1534: can you check there are not other places wh... ● 9d5af71d1933 [imported] "can you now review #1529" 06-29 09:50 (9d5af71) can you now review #1529 ● 474fa98bdd8d [imported] "can you look at #1534..." 06-29 09:45 (474fa98) can you look at #1534... ● 4f8c1a05c7b7 [imported] "can you post the findings to the trail" 06-26 10:51 (4f8c1a0) can you post the findings to the trail ● a30148800f79 [imported] "<task-notification>\n<task-id>acb9f26eddbbec259</task-id>\n..." 06-26 09:49 (a301488) <task-notification> <task-id>acb9f26eddbbec259</task-id> ... ● 52143da192be [imported] "<task-notification>\n<task-id>a8ef47f97666c7ec7</task-id>\n..." 06-26 09:47 (52143da) <task-notification> <task-id>a8ef47f97666c7ec7</task-id> ... ● cb6566b53cf4 [imported] "<task-notification>\n<task-id>ab560e36ee1d3b4fe</task-id>\n..." 06-26 09:46 (cb6566b) <task-notification> <task-id>ab560e36ee1d3b4fe</task-id> ... ● 0b6374e0727b [imported] "can you now review https://entire.io/gh/entireio/cli/trai..." 06-26 09:34 (0b6374e) can you now review https://entire.io/gh/entireio/cli/trai... ● 3780222c8dca [imported] "can you post the two findings on the corespoding trail?" 06-26 09:33 (3780222) can you post the two findings on the corespoding trail? ● 17a5bc98ead8 [imported] "<task-notification>\n<task-id>ab980f2b645d399d7</task-id>\n..." 06-26 09:05 (17a5bc9) <task-notification> <task-id>ab980f2b645d399d7</task-id> ... ● e3746a86fc59 [imported] "can you review https://entire.io/gh/entireio/cli/trails/6..." 06-26 08:55 (e3746a8) can you review https://entire.io/gh/entireio/cli/trails/6... ● da9f546ca0b2 [imported] "can you review #1511 ..." 06-26 07:15 (da9f546) can you review #1511 ... ● d7db80fe900d [imported] "How can we figure out the checkpoint version before talki..." 06-25 17:45 (d7db80f) How can we figure out the checkpoint version before talki... ● 60a30c517d1d [imported] "can you check #1507 i..." 06-25 17:28 (60a30c5) can you check #1507 i... ● 4de09c8dbe06 [imported] "are you sure the other code isn't generated too?" 06-25 13:46 (4de09c8) are you sure the other code isn't generated too? ● a7f2ccdfdae6 [imported] "<task-notification>\n<task-id>a5eabac878feb054a</task-id>\n..." 06-25 12:47 (a7f2ccd) <task-notification> <task-id>a5eabac878feb054a</task-id> ... ● ae405e941044 [imported] "<task-notification>\n<task-id>a81ae07c29c11807f</task-id>\n..." 06-25 12:46 (ae405e9) <task-notification> <task-id>a81ae07c29c11807f</task-id> ... ● 074a9669b87b [imported] "can you review #1518 ..." 06-25 12:41 (074a966) can you review #1518 ... ● aac680e5d19a [imported] "can you review https://entire.io/gh/entireio/cli/trails/661" 06-25 11:35 (aac680e) can you review https://entire.io/gh/entireio/cli/trails/661 ● d7f57fda979d [imported] "can you review https://entire.io/gh/entireio/cli/trails/652/" 06-25 10:29 (d7f57fd) can you review https://entire.io/gh/entireio/cli/trails/652/ ● a0dc8c4fe795 [imported] "can you review #1499 ..." 06-25 10:05 (a0dc8c4) can you review #1499 ... ● 4991964f4c59 [imported] "Add debug" 06-25 09:13 (4991964) Add debug ● 3889f0ebbc6a [imported] "Ok. Sounds good. The only thing I‘m now still wondering: ..." 06-25 09:11 (3889f0e) Ok. Sounds good. The only thing I‘m now still wondering: ... ● 908a3544dda7 [imported] "can you explain to me when resume will now directly launc..." 06-25 06:45 (908a354) can you explain to me when resume will now directly launc... ● b257152616fa [imported] "can you check again, there were some new commits" 06-25 06:29 (b257152) can you check again, there were some new commits ● d1772ae84a2c [imported] "The issue is: we are writing the placeholders - but they ..." 06-25 06:26 (d1772ae) The issue is: we are writing the placeholders - but they ... ● 5fd4acd71e1f [imported] "Hmm. It has none merged. The prior try failed because no ..." 06-24 16:19 (5fd4acd) Hmm. It has none merged. The prior try failed because no ... ● f2b9c1baea12 [imported] "Hmm. It has none merged. The prior try failed because no ..." 06-24 14:53 (f2b9c1b) Hmm. It has none merged. The prior try failed because no ... ● 15cbecef4326 [imported] "Question: but the skipping sounds as if no new prompts we..." 06-24 14:50 (15cbece) Question: but the skipping sounds as if no new prompts we... ● a5355b1b65c9 [imported] "[Request interrupted by user for tool use]" 06-24 14:50 (a5355b1) [Request interrupted by user for tool use] ● b99b7a61ff82 [imported] "Question: but the skipping sounds as if no new prompts we..." 06-24 14:33 (b99b7a6) Question: but the skipping sounds as if no new prompts we... ● 9e3847afcfc2 [imported] "can you take a look at this, I did run it in ../git-sync:..." 06-24 14:16 (9e3847a) can you take a look at this, I did run it in ../git-sync:... ● caabf544820c [imported] "<task-notification>\n<task-id>a3074a8a47b891551</task-id>\n..." 06-24 14:03 (caabf54) <task-notification> <task-id>a3074a8a47b891551</task-id> ... ● 6c110eac3ed6 [imported] "<task-notification>\n<task-id>a13dc9fa412edcc6e</task-id>\n..." 06-24 14:03 (6c110ea) <task-notification> <task-id>a13dc9fa412edcc6e</task-id> ... ● 75f953bc7f73 [imported] "<task-notification>\n<task-id>ad20ef831ab9e65ac</task-id>\n..." 06-24 14:02 (75f953b) <task-notification> <task-id>ad20ef831ab9e65ac</task-id> ... ● 6a06d3d60b75 [imported] "<task-notification>\n<task-id>ab0dd083f555810c5</task-id>\n..." 06-24 14:02 (6a06d3d) <task-notification> <task-id>ab0dd083f555810c5</task-id> ... ● 9919dc6061ec [imported] "`/simplify → 4 cleanup agents in parallel → apply the fix..." 06-24 13:58 (9919dc6) `/simplify → 4 cleanup agents in parallel → apply the fix... ● 87e140dbb789 [imported] "<task-notification>\n<task-id>a574469aa1c7a2156</task-id>\n..." 06-24 13:47 (87e140d) <task-notification> <task-id>a574469aa1c7a2156</task-id> ... ● d88c60c7e9d5 [imported] "<task-notification>\n<task-id>abcc3502034cdc607</task-id>\n..." 06-24 13:43 (d88c60c) <task-notification> <task-id>abcc3502034cdc607</task-id> ... ● 3513316e30da [imported] "hmm, they are embedded with the long prompts we have on m..." 06-24 13:38 (3513316) hmm, they are embedded with the long prompts we have on m... ● d60960deb068 [imported] "can you review #1511 ..." 06-24 13:33 (d60960d) can you review #1511 ... ● d30159d49f5f [imported] "can you add both as findings to the trail" 06-24 13:22 (d30159d) can you add both as findings to the trail ● 9c5d56031982 [imported] "<task-notification>\n<task-id>ab0220103d4f0fce1</task-id>\n..." 06-24 13:20 (9c5d560) <task-notification> <task-id>ab0220103d4f0fce1</task-id> ... ● 97e388529f33 [imported] "can you also look at https://entire.io/gh/entireio/cli/tr..." 06-24 13:15 (97e3885) can you also look at https://entire.io/gh/entireio/cli/tr... ● 61404c98152c [imported] "ok, I think we need to change the onboarding idea a bit. ..." 06-24 13:04 (61404c9) ok, I think we need to change the onboarding idea a bit. ... path — unasserted. Retarget them (branch view, zero-checkpoint hint, detached-HEAD labeling) with the wrapper's implied no-filter arguments, sharing one setup helper instead of the original copy-pasted scaffolding. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Entire-Checkpoint: 93a786da9959

https://entire.io/gh/entireio/cli/trails/650
Summary
entire trail resumewith trail context, checkpoint session listing, picker/default resume behavior, and--session/--checkpointtargetingVerification
mise run checkgo test ./cmd/entire/cli/integration_test -tags=integration -run TestTrailResume_UsesCheckpointSessionsWhenLocalStateIsMissing -count=1Note
Medium Risk
Touches git checkpoint restore, branch checkout/worktree clashes, and foreground subprocess launches of external agent binaries; behavior is mostly delegated to existing resume strategy but the new trail/API path increases user-facing surface area.
Overview
Adds
entire trail resumeto resolve a trail (API), show trail/findings/checkpoint-session context, restore transcripts from the trail branch’s latest checkpoint metadata (even when local session state is gone), and either print resume commands or spawn the agent via new resume launchers.Checkpoint resume plumbing is refactored so restore returns
[]strategy.RestoredSession(restoreByCheckpointID,restoreFromCurrentBranch,restoreResumeSessions) while display/launch stay separate—trail resume reuses the same restore path asentire resume. Branch checkpoint discovery can anchor on a named branch ref (local ororigin/), not only HEAD.Agents gain a
ResumeLauncherinterface, sharedNewForegroundCommand,ResumeLauncherForin the registry, andLaunchResumeCmdfor Claude, Codex, Copilot, Droid, Gemini, OpenCode, and Pi. Restored sessions now carry kind/review prompt metadata, with richer prompt previews (sidecar → review prompt → transcript extraction, skipping injected instructions). Interactive trail flows prefer work sessions over review/investigation when choosing what to continue.Coverage includes unit tests for trail resume UX/validation, an integration test for multi-session checkpoint listing and
--sessionrestore after clearing local state, and minor.gitignoreentries.Reviewed by Cursor Bugbot for commit 894aa84. Configure here.