Skip to content

BuildNot yet confirmed elsewhere1 publisher3 min readPublished

Seven harnesses took the transcript. None of them took the approvals.

A frozen Claude Code session moved cleanly into seven rival agent formats. The approval and audit machinery wrapped around it moved into none of them.

The Engineer · Build desk

How we use AISend a correction

What happened

  • A developer froze one real Claude Code session and pushed it through session-migrate 0.8.0 into seven competing agent formats to see how much survived.
  • The source was 341,646 bytes and 90 records, holding 20 tool-use blocks, 20 tool-result blocks and 11 thinking blocks.
  • Every target lost between 54 and 57 items, and every one of them lost exactly 9 thinking blocks.
  • The repeat casualties were source-side metadata, tool-reference records and private thinking, with Codex also dropping a session title.
  • Slack pitches Slack Code the other way round, as inheriting Slack's existing permissions and admin controls so IT configures and audits nothing new.

Why it matters

  • constraint Portability that stops at the transcript leaves the cost of leaving a vendor dominated by the controls rather than the conversation, because the narrow event timeline has nowhere to put...
  • exposure The command sold as de-risking a migration is also an egress path: session contents that may include production-log fragments and real data samples get written into a second vendor's directory on...
  • decision Anyone accountable for agent-driven changes to payments or production access now has to pick the audit surface first and the harness second, since the harness is the part that ports.

The loss manifest is the part worth reading twice, and not for its size. Across seven separate targets the dropped totals sat in a band three items wide, 54 to 57 [6][18]. If target design governed preservation, picking a better destination would buy something measurable. It buys three records. The author's reading is that the source session's own event vocabulary decides what can enter the intermediate model at all [8], and the documented design agrees: the validated event timeline in the middle is deliberately narrow, wide enough for ordered conversation events and closed to client-resident configuration [9].

That is where the approval story ends. Approval gates and audit settings sit on the client side of that boundary, which is why the transcript arrives and the controls do not [2]. It is not a gap that a later release closes by adding a field.

Private thinking makes the size of the hole legible. The frozen source carried 11 thinking blocks [4], and every one of the seven targets dropped 9 of them [6], roughly 82 percent [17]. Tool-use and tool-result blocks numbered 20 and 20 [4], so the record of what the agent touched survives better than the record of why it decided to. For a developer resuming work, that trade is fine. For the question the author says keeps arriving at engineering leadership, "three months from now, where can we see why this agent made that change" [11], it is close to a total loss.

Note what the manifest itself is: a count of omissions and transformations carrying no content [9]. It can tell you that 57 things did not survive. It cannot tell a reviewer which 57, which makes it a migration receipt rather than an audit record.

The contrast the author draws is with Slack Code, and it is Slack's own account. Slack says a coding-agent mention can create a channel that gathers the relevant people, the diffs and the planning documents, then archives as a searchable record [12], and that important changes can be routed to a person for approval inside that channel [13]. The mechanism, not the product, is the transferable part: the durable record and the approval event live somewhere that already has an administrator, instead of being stood up again inside whichever harness a developer adopts next quarter.

Two caveats on the numbers. Freezing the session was not fastidiousness; the live file kept growing during the first attempt, so each conversion was being measured against a different source [3]. And the run happened in a Python 3.12 environment on macOS while the README claims Python 3.11 or later and Linux [14], so this is one sample, taken outside the stated support boundary. The shape holds even if the decimals do not: seven destinations produced one loss profile, and the thing an auditor would ask for was in none of them.

What to watch

  • Whether the remaining five supported harness formats land in the same 54-to-57 loss band, or one of them carries tool-reference and thinking records across.
  • Whether the migration manifest ever carries evidence a reviewer can use rather than arithmetic about what went missing.
  • Whether approval events created inside Slack Code can be exported or retained outside Slack, or whether that plane becomes its own lock-in.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence58
Adoption20
Hype gap+12
Incentives38
Confidence55
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    The author froze one real Claude Code session, inspected it, and transferred it into seven target formats using session-migrate 0.8.0, to test whether portable coding-agent sessions materially reduce vendor lock-in.

  2. [2]

    The useful conversation and tool context traveled surprisingly well, but the controls that make agent work safe in an organization did not move at all.

  3. [3]

    Freezing the session was essential because a live session file continued to grow during the first attempt, meaning each target conversion was being compared against a different source population.

Sources

1 independent publisher whose own reporting we read for this story.

  1. dev.to

    1 article · August 26, 2026

    I Treated Agent Sessions as Portable Cache and Moved Control to a Policy Plane: Vendor Lock-In Became Manageable

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Topics

Loading related stories