{ "schemaVersion": 1, "title": "Return to yesterday's Lantern Board conversation", "kind": "fictional fixture inspection plus disposable native continuity lab", "safety": [ "Everything here is fictional. No real OMP session is imported or opened.", "Run the inspection commands from the downloaded examples directory with jq installed. They only read these fixture files.", "The recorded /fictional/lantern-board path and fictional-offline-model are inspection data, not a configured project or usable provider.", "Do not place these files in your real session store. The versioned lab.ts helper copies only these fictional records into a fresh owned temporary lab, records its root, and prints exact isolated-environment native commands. Native OMP startup is not promised network-free." ], "files": ["return-desk/yesterday.jsonl", "return-desk/today.txt", "return-desk/exercise.json", "return-desk/lab.ts"], "runnableReadOnlyCommands": [ "jq -s 'map(select(.type == \"session\") | {id, cwd, title})' return-desk/yesterday.jsonl", "jq -s 'map(select(.type == \"message\" and .message.role == \"user\") | .message.content)' return-desk/yesterday.jsonl", "cat return-desk/today.txt" ], "runnableLabSetupCommands": [ "bun return-desk/lab.ts '{\"version\":1,\"op\":\"discover\"}'", "bun return-desk/lab.ts '{\"version\":1,\"op\":\"act\",\"action\":\"create\"}'" ], "labWorkflow": [ "Keep the create receipt. It contains exact commands with explicit fictional journal, cwd, session directory, and clean environment paths. OMP_BIN must name the intended installed OMP executable.", "The lab has no inherited credentials. If startup stops at model/auth setup, stop there: do not log in, paste keys, or copy credentials; mark native interaction unverified. Reader startup may discover providers or refresh metadata; this is not an offline-startup claim.", "Run the printed resumeExplicitPath command. Do not send a model prompt. Open /resume, inspect the picker, and press Esc to keep the active conversation. Inspect the fictional transcript and current workspace.", "Exit OMP, then run the printed continue command in the SAME actual terminal tab with the same generated environment. OMP prefers stdin's real TTY identity; the helper's TMUX_PANE value is only a synthetic fallback. Check that the intended conversation returned; recent does not necessarily mean the newest file.", "Run the printed resumePicker command and cancel it. Unlike in-session picker cancellation, startup cancellation exits OMP.", "Run the printed unknownIdentity command. It should fail without selecting another session. This manager-level failure is covered by private proof; full reader CLI startup is not claimed verified.", "Only the fresh lab root belongs to this exercise. Do not modify or delete your ordinary profile, journal store, or project." ], "questions": [ "Which value identifies the conversation, which path records its project, and which file shows today's workspace?", "If the conversation still says Ready for pickup while today.txt says Packed and waiting, which one would reopening a session change?", "Why is a status message alone weaker evidence than checking the session identity and cwd?" ], "nativeSyntaxReference": [ {"surface": "inside an interactive OMP session", "syntax": "/resume", "meaning": "Open the current-folder picker. Tab toggles all projects; Enter selects; Esc cancels the picker without leaving the current session."}, {"surface": "inside an interactive OMP session", "syntax": "/resume ", "meaning": "Resolve local-first, then global fallback. This form is not a direct filesystem-path opener."}, {"surface": "terminal", "syntax": "omp --resume", "meaning": "Open the startup picker in current-folder scope. Cancelling this picker exits startup."}, {"surface": "terminal", "syntax": "omp --resume ", "meaning": "Open a native session by identifier or direct JSONL path. An explicit --session-dir confines identifier lookup to that directory."}, {"surface": "terminal", "syntax": "omp --continue", "meaning": "Prefer this terminal's applicable breadcrumb; otherwise use recent history, or create an empty session. There is no /continue slash command."}, {"surface": "terminal", "syntax": "omp --session-dir --resume ", "meaning": "Limit startup identifier lookup to the supplied directory. This is not an isolation or workspace-rollback boundary."}, {"surface": "terminal", "syntax": "omp --no-session --continue", "meaning": "Manager creation uses in-memory state instead of continuing durable history. Startup picker behavior is a separate path; do not infer that --no-session forbids all later resume actions."} ], "missingCwdDecision": { "idLookup": "For --resume resolving a journal whose recorded directory is gone, the startup manager asks whether to move (re-root) it into the launch directory. Yes/default keeps the identity and relocates the journal; No cancels startup; without a TTY, this decision fails with an interactive-use instruction.", "directPath": "--resume bypasses that ID-lookup prompt: SessionManager.open falls back to the current project cwd when the recorded cwd is missing, without relocating the journal.", "interactive": "A runtime session-file switch also keeps the current cwd when the recorded cwd is missing. It is not the startup ID re-root prompt.", "continue": "--continue can automatically re-root a stale breadcrumb from a vanished project if the target has no sessions of its own. This is not the same consent path as --resume ." }, "caveats": [ "An identifier prefix need not be unique: the current resolver takes the first matching record in its local-first listing. Use a full known identity rather than relying on ambiguous short prefixes.", "A fresh breadcrumb whose journal has not materialized deliberately prevents continuation from resurrecting older history.", "A journal path can be assigned before the file exists. A nonempty persisted conversation and an in-memory conversation have different restart availability.", "A hook-cancelled runtime switch can still reach the controller's Resumed session status. Verify state, not that status alone.", "No workbook checkbox or fixture inspection proves anything about a reader's actual OMP session." ] }