## Return Desk continuation

“Continue” is convenient when you mean this terminal’s applicable previous conversation\.&#32;It is a poor substitute for an exact identity when several histories are plausible\.

There is&#32;**no interactive&#32;`/continue`&#32;slash command**&#32;in this workflow\.

### Milestone\:&#32;Continue from a deliberately established breadcrumb

**Need\.**&#32;Maya wants to leave yesterday’s conversation and return to it from the same terminal\.

**Obstacle\.**&#32;The session collection also contains a newer unrelated note\,&#32;and earlier startup experiments may have changed bookkeeping\.

Re\-establish yesterday first\:

**Terminal shell — print the known resume command again\:**

~~~sh
jq -r '.commands.resumeExplicitPath' "$RECEIPT"
~~~

Run the complete printed command\.&#32;If it reaches the idle fictional session\,&#32;inspect it and exit normally without prompting\.

Then print and run the continuation command in the&#32;**same actual terminal tab**\:

**Terminal shell — print the generated continuation command\:**

~~~sh
jq -r '.commands.continue' "$RECEIPT"
~~~

After startup\,&#32;inspect again\:

**Human OMP slash commands — inside the resumed lab\,&#32;one at a time\:**

~~~text
/session info
/dirs
~~~

**Expected observation\.**&#32;Yesterday’s intended identity and fictional conversation return\.

**What changes\?**&#32;A new process adopts the selected conversation\.&#32;If continuation finds no usable history—or must honor a fresh empty boundary—it can create a new empty identity instead\.

**What does not change\?**&#32;Continuation does not restore yesterday’s workspace files\.

**Recorded checks\.**

- A controlled manager check made an older breadcrumb beat a newer file\.
- Missing breadcrumbs used most\-recent\-modified history\.
- Stale breadcrumbs pointing at missing files fell back\.
- Fresh\,&#32;unmaterialized boundaries did not resurrect earlier history\.
- Empty history created a new identity\.
- The separate source\-CLI continuation check returned yesterday’s identity and two messages with unchanged workspace bytes\.

The public helper initially gives the unrelated note a newer modification time\.&#32;Native startup and shutdown can add lifecycle records\,&#32;however\,&#32;so the files’ relative modification times may change during practice\.&#32;Seeing yesterday return verifies your selected result\;&#32;it does not by itself reproduce the controlled “older breadcrumb beats newer file” test\.

**Failure and recovery\.**&#32;If another conversation returns\,&#32;do not send work to it\.&#32;Use the exact known resume target\.&#32;If a new empty conversation appears\,&#32;check breadcrumb availability\,&#32;the terminal\,&#32;the generated environment\,&#32;and the session directory before assuming history was deleted\.

**Self\-check\.**&#32;What should you use when you know the exact conversation you need\?

**Answer\:**&#32;An exact known&#32;`--resume`&#32;identity or verified path\,&#32;not a guess based on&#32;`--continue`\.

### How continuation chooses

The current&#32;`SessionManager.continueRecent`&#32;behavior can be understood as this decision sequence\:

1. **Read the terminal\-scoped breadcrumb\.**&#32;A missing or corrupt breadcrumb is not a usable selection\.&#32;A stale breadcrumb whose file is gone is normally ignored\.
2. **Honor a fresh missing\-file boundary\.**&#32;A deliberately new session whose lazy journal never materialized must not cause old history to reappear\.&#32;Continuation starts empty instead\.
3. **Recover an interactive root if necessary\.**&#32;A breadcrumb pointing into nested session artifacts is walked upward toward the top\-level interactive journal\,&#32;with an eight\-level cap\.
4. **Use an applicable same\-cwd breadcrumb\.**&#32;This can win over a more recently modified journal\.
5. **Handle a different recorded project\.**&#32;An existing different project is not simply adopted by continuation\.&#32;Ordinarily OMP falls back to history in the current scope\.&#32;A vanished source project can trigger the relocation case in the next chapter\.
6. **Use recent history when appropriate\.**&#32;“Recent” here is based on modification time of usable session files—not title\,&#32;filename date\,&#32;or your intended topic\.
7. **Create a new session if none is found\.**

The nested\-artifact recovery rule is source\-backed\;&#32;it was not executed in the supplied Return Desk scenarios\.

### Terminal identity matters

`getTerminalId()`&#32;prefers stdin’s real TTY device path\.&#32;Terminal and multiplexer environment variables are fallbacks\.

Consequently\,&#32;the helper’s synthetic pane value does not override a real TTY\.&#32;Using another terminal tab can change which breadcrumb is applicable even when you use the same session directory\.

Breadcrumbs are stored separately from the journal\.&#32;They are navigation bookkeeping\,&#32;not an additional workspace snapshot\.

### Two startup details worth recognizing

- `autoResume`&#32;defaults to false\.&#32;When enabled and no explicit session choice or session directory takes precedence\,&#32;startup uses the continuation behavior and restores prior model\/thinking state when history is found\.
- A compatibility normalization recognizes a full UUID in the supported&#32;`--continue <UUID>`&#32;layout\,&#32;including the sole\-positional\-message case\,&#32;and turns it into resume\.&#32;Prefer explicit&#32;`--resume <id>`&#32;rather than relying on that compatibility rule\.

At the manager\-creation boundary\,&#32;`--no-session`&#32;wins over string resume and continue processing\.&#32;That does&#32;**not**&#32;prove that the separately routed bare startup picker or a later interactive resume can never open a file\.&#32;Do not combine flags and treat the combination as a privacy policy\.

**Source anchors\:**&#32;`packages/coding-agent/src/session/session-manager.ts`&#32;—&#32;`continueRecent`\,&#32;`resolveBreadcrumbToInteractiveRoot`\;&#32;`packages/coding-agent/src/session/session-paths.ts`&#32;—&#32;`writeTerminalBreadcrumb`\,&#32;`readTerminalBreadcrumbEntry`\;&#32;`packages/tui/src/ttyid.ts`&#32;—&#32;`getTerminalId`\;&#32;`packages/coding-agent/src/main.ts`&#32;—&#32;`normalizeContinueSessionArgs`\,&#32;`createSessionManager`\.
