Skip to content

The read matrix: what a session can and cannot read, measured — and the four gaps #372

Description

@bdelanghe

Why this issue exists

#337 measured what a session can do (the posture matrix). Nothing measured what a session can read, and the question keeps recurring — it is the one this whole arc started from: "can we read our own Claude mobile chat sessions through any api or mcp?"

Every row below is a real call made on 2026-09-03 from this session, after #343 closed. This is the index; the gaps have their own issues.

The matrix

what route result
own session, latest turns mcp__bounded-verbs__read_session (no args) ✅ turns 703–705 of 705
own session, from turn 1 read_session session_id=… offset=0
own session, Graph JSON read_session mode=graph #371 — 8MB for a 2-turn window; offset/limit ignored
inside a subagent, no args read_session ⚠️→✅ returns the PARENT's transcript and now says so#343 fix 2 verified from a child
inside a subagent, explicit id read_session session_id=… ✅ clean label
another Claude Code session, transcript read_session session_id=<remote> not found on this machine — correct by design; the verb is local-disk only
another Claude Code session, metadata CCR get_session ✅ title, status, model, cost, task summary
shared chat, live read_chat ✅ 112 turns, paginated, offset=-3 works
shared chat, unshared/revoked read_chat ✅ relay returns a clean 404 "not (or no longer) shared" — a real vendor answer, not a transport failure
own artifact Artifact read ✅ 30.9KB, saved to disk
own artifacts, enumerate Artifact list
artifact comments Artifact comments ✅ (none posted yet)
unshared mobile chat the original question. No route exists.
artifact shared with you Artifact read ◻️ untested — none exist to test against

The four gaps, each findable

  1. read_session graph mode returns 8MB for a 2-turn window — offset/limit are ignored #371read_session mode=graph ignores offset/limit and returns the whole session.
  2. Unshared chats have no route. Not a bug and not fixable by us: the relay reads only public shares and holds no vendor credential. This is the standing answer, and Vendor ask: is there a supported programmatic read of a Claude Code session transcript? #348 is the vendor ask that would change it.
  3. Remote session transcripts. CCR gives metadata; read_session gives turns but only for this disk. Nothing gives another machine's turns. Whether that should exist is a design question — the door model says a session reading another session's transcript is a capability someone must grant.
  4. Artifacts shared with you are untested because none exist. Worth a probe the next time one does, rather than assuming the documented summary mode works.

The direction, recorded

The maintainer's stated intent (2026-09-03) is that this all moves onto toolpath and pathbase — the read verbs become Graph producers, and the door is how a session reaches them. read_session mode=graph is already that shape, which is why #371 matters more than its size suggests: it is the seam where the transcript stops being prose and starts being data another room can consume.

Related: #325, #326, #337, #343, #348, .github-private#514.

Not claimed.

Activity

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

Metadata

Metadata

Assignees

Labels

claimedHeld by an agent or human — see the claim comment. Remove to release.

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions