OMP Workbook

Read the source. Follow the evidence.

Return Desk continuation

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

There is no interactive /continue slash command in this workflow.

Milestone: Continue from a deliberately established breadcrumb

Need. Maya wants to leave yesterday’s conversation and return to it from the same terminal.

Obstacle. The session collection also contains a newer unrelated note, and earlier startup experiments may have changed bookkeeping.

Re-establish yesterday first:

Terminal shell — print the known resume command again:

Return Desk continuation · source excerpt 1; read surrounding instructions
jq -r '.commands.resumeExplicitPath' "$RECEIPT"

Run the complete printed command. If it reaches the idle fictional session, inspect it and exit normally without prompting.

Then print and run the continuation command in the same actual terminal tab:

Terminal shell — print the generated continuation command:

Return Desk continuation · source excerpt 2; read surrounding instructions
jq -r '.commands.continue' "$RECEIPT"

After startup, inspect again:

Human OMP slash commands — inside the resumed lab, one at a time:

Return Desk continuation · source excerpt 3; read surrounding instructions
/session info
/dirs

Expected observation. Yesterday’s intended identity and fictional conversation return.

What changes? A new process adopts the selected conversation. 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? 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, 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. Native startup and shutdown can add lifecycle records, however, so the files’ relative modification times may change during practice. Seeing yesterday return verifies your selected result; it does not by itself reproduce the controlled “older breadcrumb beats newer file” test.

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

Self-check. What should you use when you know the exact conversation you need?

Answer: An exact known --resume identity or verified path, not a guess based on --continue.

How continuation chooses

The current SessionManager.continueRecent behavior can be understood as this decision sequence:

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

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

Terminal identity matters

getTerminalId() prefers stdin’s real TTY device path. Terminal and multiplexer environment variables are fallbacks.

Consequently, the helper’s synthetic pane value does not override a real TTY. 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. They are navigation bookkeeping, not an additional workspace snapshot.

Two startup details worth recognizing

  • autoResume defaults to false. When enabled and no explicit session choice or session directory takes precedence, 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 --continue <UUID> layout, including the sole-positional-message case, and turns it into resume. Prefer explicit --resume <id> rather than relying on that compatibility rule.

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

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

Sessions, resets, and reviewable history · Source chapter: continuity/return-desk-continuation. Original evidence remains scoped to its recorded snapshot.

Read this chapter as Markdown

Your lesson ticks

A self-reported reading checklist, not proof of real OMP behavior. Only these ticks are saved in this browser. Reading a milestone does not resume, fork, reset or export a session.

Chapters I have worked through
Start here 1
Sessions, resets, and reviewable history 19
Memory and reusable knowledge 14
Tangent work and live control 17
Tool permissions and approvals 15
Extensions inside those boundaries 23
Connections and next steps 8
0 of 97 checked

Checklist saving needs JavaScript and available browser storage.