OMP Workbook

Read the source. Follow the evidence.

Review Packet local HTML export

The runnable packet exercise uses only the downloaded Harbor Notes journals. It does not require a running model session.

Milestone: Export the fictional saved history

Need. Noor wants a local review packet containing the saved history.

Obstacle. Exporting from a running session and exporting from a file have different metadata boundaries.

Prerequisites: an already installed OMP compatible with this journal format/export implementation, a disposable extracted examples directory, and jq/shasum for the inspections below. No login or provider request is part of this exercise.

Verify the known input before using it:

Terminal shell — read-only input check, from extracted examples/:

Review Packet local HTML export · source excerpt 1; read surrounding instructions
jq -s 'map(select(.type == "session") | {id,cwd,title})' review-packet/harbor-review.jsonl
shasum -a 256 review-packet/harbor-review.jsonl review-packet/harbor-review/Scout.jsonl review-packet/harbor-review/Scout/Checklist.jsonl

Use a fresh copy of the examples so the output filename does not replace a useful earlier packet.

Terminal shell — supplied native local export recipe:

Review Packet local HTML export · source excerpt 2; read surrounding instructions
omp --export review-packet/harbor-review.jsonl review-packet/harbor-review.html

Expected observation. OMP prints Exported to: review-packet/harbor-review.html and writes that local file.

The source handles terminal export before normal session startup. It opens a manager with breadcrumb suppression, reads the valid journal, gathers adjacent nested transcripts, generates HTML, and exits. It does not construct a running AgentSession.

The file export does not reconstruct a current live system prompt or tool inventory. Saved entries themselves can still contain system, tool, file, or other sensitive data; absence of top-level live fields is not a privacy guarantee.

What changes? A local HTML output is created.

What does not change in the checked valid-input case? The journal remains unchanged; no active conversation is switched.

Repeat the byte inspection:

Terminal shell — read-only post-export comparison:

Review Packet local HTML export · source excerpt 3; read surrounding instructions
shasum -a 256 review-packet/harbor-review.jsonl review-packet/harbor-review/Scout.jsonl review-packet/harbor-review/Scout/Checklist.jsonl

Recorded check. Valid fictional exports retained journal bytes and embedded the expected older and nested history. A real source-CLI export completed successfully, including a filename containing spaces.

Failure and recovery. If writing fails, inspect the target path and output before retrying. Do not assume an automatic retry, a transactional output, or a particular missing-directory creation policy. Never choose a journal or useful workspace file as the output path: the implementation writes to the requested output path.

Self-check. Does creating HTML also publish it through /share?

Answer: No. Local file generation and sharing are separate operations.

Milestone: Keep shell quoting separate from slash parsing

Need. Noor wants a filename containing a space.

Obstacle. Terminal shell quoting and human slash-command parsing are not the same parser.

The supplied terminal recipe preserves the spaced filename as one argument:

Terminal shell — supplied quoted-output recipe, from extracted examples/:

Review Packet local HTML export · source excerpt 4; read surrounding instructions
omp --export review-packet/harbor-review.jsonl 'review-packet/harbor review.html'

Recorded check. The actual source CLI exported successfully to a spaced output filename. This is not a claim that interactive slash quoting works.

The following table is a non-runnable human slash-command reference:

ReferenceCurrent behavior
/export packet.htmlWrite local HTML with current live prompt/tool descriptions and all manager entries; TUI requests OS opening.
/export --themes packet.htmlUse the selected TUI dark/light themes rather than the default web palettes.
/export packet.html --themesThe parser also accepts this ordering.
/export "packet review.html"Rejected as multiple whitespace-delimited path tokens. Quotes do not preserve the space.
/export one.html two.htmlRejected with usage.
/export --copyWarns to use /dump; no HTML export.
/export copy or /export clipboardSame copy-alias warning.

parseExportArgs recognizes --themes, removes that token, and accepts at most one remaining whitespace-delimited path. It does not implement shell expansion, quote interpretation, or general option validation. An unrecognized single token can become a literal filename.

Use a no-space filename for interactive export. Do not assume ~ or shell variables will be expanded there.

Terminal --export instead consumes its input as a flag value and uses the first positional message as output path. It does not use parseExportArgs or expose the slash command’s --themes syntax. Keep the terminal recipe to its documented input and optional output.

What changes? The terminal recipe creates a second local HTML output.

What does not change? Quoting changes argument grouping, not snapshot scope or disclosure policy.

Failure and recovery. For an interactive path error, choose a no-space path. Do not switch to /dump merely because a warning mentions it unless you also want the dump’s broader current-state and sidecar behavior.

Self-check. Why does terminal quoting work while slash quoting fails?

Answer: The shell passes one argv element; the slash parser splits the command text on whitespace.

Persistence and missing-input limits

An in-memory manager without a session file is rejected by HTML export with:

Cannot export in-memory session to HTML

A successful dump is not proof that HTML export is available.

For existing saved inputs, the recorded export path did not mutate the journal. Do not generalize that into “this command can never create or alter an input file under any path condition.”

exportFromFile translates an ENOENT that reaches it into File not found: …. But its delegated SessionManager.open path also has fresh-session behavior for empty/missing explicit files. The supplied reports did not exercise a missing-input terminal export.

Validate the input first. Do not use export as a file-existence test, and do not promise that every missing-input case is a harmless not-found failure.

Source anchors: packages/coding-agent/src/export/html/args.ts — parseExportArgs; packages/coding-agent/src/export/html/index.ts — exportSessionToHtml, exportFromFile, buildSessionData; packages/coding-agent/src/main.ts — runRootCommand export fast-path; packages/coding-agent/src/cli/flag-tables.ts — --export; packages/coding-agent/src/modes/controllers/command-controller.ts — handleExportCommand.

Sessions, resets, and reviewable history · Source chapter: continuity/review-packet-local-html-export. 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.