Skip to content

Correct three false harness claims, and record ten more - #15

Merged
UnbreakableMJ merged 1 commit into
mainfrom
correct-harness-table
Aug 25, 2026
Merged

Correct three false harness claims, and record ten more#15
UnbreakableMJ merged 1 commit into
mainfrom
correct-harness-table

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

The harness table's failure mode is not omission but false confidence. Three entries told users a thing was impossible when it was not — and nobody re-checks a documented impossibility.

Harness Claimed Verified
Antigravity "protocol buffers … no line-oriented transcript to read" writes plain JSONL at brain/<uuid>/.system_generated/logs/transcript.jsonl54 of them here
Copilot CLI "SQLite database with an undocumented schema" turns(session_id, turn_index, user_message, assistant_response, timestamp) + UNIQUE(session_id, turn_index), joined to sessions(cwd, repository, branch)
Kimi "a hash with no published mapping back to a working directory" reversible three ways

All three become NotImplemented, not Unsupported — which is exactly the distinction that was being got wrong. NotImplemented = readable, reader not written. Unsupported = no line-oriented transcript exists at all.

How the Antigravity claim survived

$ fd -t f 'transcript.jsonl' ~/.gemini/antigravity-cli/brain | wc -l
0
$ fd -H -t f 'transcript.jsonl' ~/.gemini/antigravity-cli/brain | wc -l
54

.system_generated is a dot-directory, and fd hides those by default. One missing flag turned "54 readable transcripts" into "impossible".

Kimi, verified

session_index.jsonl → {"sessionId":"ses_a353…","workDir":"/spacecraft-software/bwtui"}
state.json          → "workDir": "/spacecraft-software/achernar"
md5(/spacecraft-software/aetheric) = 4fc317f4f72ae8e2320cbafe5c552978  ← matches the dir

Ten more harnesses, recorded not built

An absent entry is indistinguishable from an unexamined one. Each new entry states only what was probed.

Sizes turned out to be no evidence whatsoever — kilo (174 MB), mimocode (135 MB) and warp (235 MB) look like large session stores and are almost entirely binary, with no conversation store in their config roots at all.

Three findings worth having:

  • Grok's cwd mapping is reversible.grok/sessions/%2Fspacecraft-software%2Fbravais is the percent-encoded absolute path, so a reader would not need the cwd supplied. (Unlike Claude Code's mangling, which is forward-only by construction.)
  • A layout resembling Claude Code's is not Claude Code's. deepcode writes projects/<mangled-cwd>/<uuid>.jsonl, but its records carry none of the keys (type, uuid, cwd) the reader dispatches on. The resemblance is the directory naming only.
  • ZCode is an opencode fork — same session/message/part schema — so one reader would serve both, exactly as claude_code already serves OpenClaude.

Grok keeps its no-command-surface entry for the reason established in #11: it scans ~/.claude/commands itself, so a second copy would be shadowed. Having a table entry is not the same as writing to it.

export_command — the answer to a missing reader

A harness engram cannot read is not a dead end when it exports its own conversation and engram import reads the file. But that only helps if the user is told at the moment they hit the wall:

$ engram ingest --harness goose
… has not been surveyed. Export it from the harness and import the file:
`goose session export --format markdown -o FILE`, then `engram import <file>`.

$ engram ingest --harness vscode
… not a per-session transcript file. Use the notes path instead: call
`remember` during the session, then `engram save-chat --scope <id>`.

The existing test asserted the notes-path wording, so it had to widen — it would otherwise have forbidden the better hint.

Gates

fmt · clippy -D warnings · 278 tests · REUSE 3.3 · makeinfo clean

🤖 Generated with Claude Code

https://claude.ai/code/session_016i16R4GhdSffsboRYq97Fs

The harness table's failure mode is not omission but false confidence. Three
entries told users a thing was impossible when it was not, and nobody re-checks
a documented impossibility.

Antigravity was "protocol buffers ... there is no line-oriented transcript to
read". It writes a plain JSONL transcript at brain/<uuid>/.system_generated/
logs/transcript.jsonl, 54 of them on this machine. The count reads as 0 under
`fd` because .system_generated is a dot-directory and -H was not passed, which
is presumably how the original claim survived.

Copilot CLI was "a SQLite database with an undocumented schema". Its turns
table is turns(session_id, turn_index, user_message, assistant_response,
timestamp) with UNIQUE(session_id, turn_index), joined to sessions(cwd,
repository, branch) — a flat, pre-paired transcript, and about the easiest
reader on the list.

Kimi was "a hash with no published mapping back to a working directory". The
mapping is recoverable three ways: session_index.jsonl maps session to workDir,
each session's state.json carries workDir, and the legacy hash is the MD5 of
the absolute path — verified against two directories here.

All three become NotImplemented rather than Unsupported, which is the
distinction that was being got wrong: NotImplemented means readable with no
reader written, Unsupported means no line-oriented transcript exists at all.

Ten more installed harnesses are recorded rather than left absent, because an
absent entry is indistinguishable from an unexamined one. Each states only what
was probed. Sizes turned out to be no evidence at all: kilo, mimocode and warp
looked like large session stores and are almost entirely binary, with no
conversation store in their config roots. Grok's cwd mapping is percent-encoded
and therefore reversible, unlike Claude Code's. Deepcode's layout resembles
Claude Code's but its records carry none of the keys the reader dispatches on.
ZCode is an opencode fork, so one reader would serve both.

Grok keeps its no-command-surface entry, for the reason it already had: it
scans ~/.claude/commands itself, so a second copy would be shadowed. Having a
table entry is not the same as writing to it.

Finally, export_command. A harness engram cannot read is not a dead end when it
exports its own conversation and `engram import` reads the file — but only if
the user is told which command to run at the moment they hit the wall. The
readerless hint now names it. The test that asserted the notes-path wording had
to widen: it would otherwise have forbidden the better hint.

Gates: fmt, clippy -D warnings, 278 tests, REUSE 3.3, makeinfo clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016i16R4GhdSffsboRYq97Fs
@UnbreakableMJ
UnbreakableMJ merged commit 0c8e349 into main Aug 25, 2026
5 checks passed
@UnbreakableMJ
UnbreakableMJ deleted the correct-harness-table branch August 25, 2026 20:44

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ecbaf0753b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/harness.rs
command_surface: CommandSurface::Skill {
dir: ".kimi-code/skills",
},
export_command: Some("kimi export [session] -o out.zip"),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid advertising a ZIP as directly importable

When a Kimi user follows the new ingest --harness kimi fallback, this command writes out.zip, but import::read_file reads the supplied path with std::fs::read_to_string and only parses Texinfo, Opencode Markdown, or Claude scrollback. Consequently, engram import out.zip skips the archive instead of importing the conversation. Either add ZIP handling, identify the supported file to extract from the archive, or do not present this as a directly importable export.

AGENTS.md reference: AGENTS.md:L282-L282

Useful? React with 👍 / 👎.

Comment thread src/harness.rs
name: "poe-code",
probe: &[".poe-code"],
sessions_dir: None,
transcript: TranscriptSupport::NotImplemented {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not classify unprobed transcripts as readable

For engram ingest --harness poe-code, this entry labels the harness NotImplemented even though its detail says Poe Code wraps another agent and has no conversation store of its own. The same unsupported assertion is made for several following entries where no store was found, despite NotImplemented being reserved for a transcript verified as readable. Add an unknown/unsurveyed state or use Unsupported where the absence was actually verified, rather than making future consumers treat these harnesses as reader-ready.

AGENTS.md reference: AGENTS.md:L280-L280

Useful? React with 👍 / 👎.

Comment thread AGENTS.md

So: a `TranscriptSupport` detail states only what was *probed*, and `NotImplemented` means "readable, reader not written" while `Unsupported` means "no line-oriented transcript exists at all". Getting that distinction wrong is what produced the table above. Sizes are not evidence either — `kilo` (174 MB), `mimocode` (135 MB) and `warp` (235 MB) look like large session stores and are almost entirely *binary*.

- **`export_command` is the answer to a missing reader, not trivia.** When `ingest` refuses a readerless harness, the hint now names that harness's own export command and points at `engram import`, instead of sending the user to re-run the work through `remember`. Goose (`goose session export --format markdown -o FILE`), Opencode, Kimi and Copilot CLI have one; Codex, Qwen, Cursor and ZCode have none.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reconcile the obsolete no-reader guidance

This new export fallback leaves the earlier transcript guidance self-contradictory: it still classifies Antigravity and Copilot CLI as Unsupported and says every readerless harness receives the remember/save-chat hint, while this commit reclassifies both and substitutes export/import hints for several harnesses. Agents load this file as project policy, so the stale paragraph can cause them to rely on the old behavior; update or remove it alongside this new contract.

AGENTS.md reference: AGENTS.md:L266-L266

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant