Signals

2026-10-24 / opencode

OpenCode 2.1 keeps old sessions readable while changing public APIs

Edited by Michael Ruescher

OpenCode 2.1.0's 2026-10-20 release consolidates replay fields under native, moves credential setup answers to metadata and removes session.compacted. Storage decoders retain old shapes without a database migration. Current V2 stable is @opencode/cli 2.1.4; the separate opencode-ai package remains V1 1.19.4. Both provide an opencode executable. Readable stored state does not make an old client or plugin compatible.

What this changes for operators

  • SDK, event-stream and plugin owners: inventory executable ownership and the running client/server pair, then adapt the 2.1 fields before upgrading the server to 2.1.4. Hold V1 deliberately with its own package rather than trusting GitHub’s Latest label to select V2.
  • Exercise a saved session, tool call/result, compaction and provider/model switch against the exact pair. Native compaction replay depends on provider and model; fallback to original history can change context cost. Successful import alone cannot settle integration compatibility.
  • Use recorded API/event results and total migration and review time to decide whether the reusable host replaces custom glue. Independent harnesses supply real operating primitives too; their compatibility bill belongs in the attention calculation, and no matched saving was measured.

Signal metadata

Source findings

Run: 2026-10-24-weekly-digest-2026-10-13_2026-10-24-frontier-v0

Schema: bitter.frontier_signals.v0 / ID: 2026-10-24-opencode-readable-state-changing-public-contracts

Research evidence and publication history are open in the repository.