OpenCode 2 v2.1.0: session archiving returns, editable saved permissions#

Published by

Part of the OpenCode 2 Version Tracker series. | OpenCode on GitHub | OpenCode 2 docs

OpenCode 2 v2.1.0 follows v2.0.32. Session archiving returns (#53759), saved permissions can be edited after they are granted (#56659), and the model list shows free models next to their paid twins by default (#55712), alongside streaming and retry fixes across the core and AI layers.

Sessions: archiving, paging, and a plugin list#

OpenCode 2 restores session archiving (#53759). Session listing also moves underneath: the list cursor is now part of the schema (#56205), core pages session lists (#56243), and the plugin API exposes the session list (#56264). A plugin can read sessions a page at a time.

Saved permissions can be edited#

Saved approvals are durable, project-scoped allow rules that OpenCode creates when you choose "Allow always" on a permission prompt.[1] v2.1.0 adds editing for a saved permission (#56659).

Free models appear next to paid twins#

The model list shows free models alongside their paid twins by default (#55712).

Streaming and retry resilience#

A cluster of core and AI fixes makes generation and transport more tolerant of partial or unexpected data:

  • The AI layer tolerates unknown and untyped stream events (#56286).
  • Null fields in a Responses stream are treated as absent (#56669).
  • Buffered generations retry under a shared policy (#56497).
  • Broken-pipe transport failures are retried (#56307).
  • The shell tool reports a command's exit only after its output is captured (#56321).
  • Skill discovery and its watches are bounded (#55597).
  • Startup tolerates sandboxed filesystem denials while booting the location (#55817).
  • The message-type filter accepts idle (#56504).
  • Providers removed by policy are logged (#56905).

In the terminal, a dialog shares one width calculation across its rows instead of attaching a resize listener to each one (#56234).

Docs and site#

The documentation adds harness setup guides (#56364), the v2 docs are added to the sitemap (#56534), and /llms.txt redirects to the docs index (#56594).

Sessions and permissions you can revisit#

Session listing is now a paged operation with its cursor in the shared schema and the list exposed through the plugin API, so a plugin can walk a user's sessions page by page. Archiving and editable saved permissions share that shape: the state that accumulates while you work, past sessions and the approvals you have granted, becomes something a user or a plugin can reach back into and change.

The AI and transport fixes point at the data coming in. Tolerating unknown stream events and null Responses fields keeps a generation going when a provider returns a shape OpenCode does not recognize, and a shared retry policy puts buffered generations and broken-pipe transport failures under one recovery path.

All trademarks and software referenced belong to their respective owners.


Sources#

  1. Saved approvals: OpenCode 2 docs, permissions.

Previous OpenCode 2 analysis: v2.0.32 (October 17, 2026)

All 16 OpenCode 2 analyses: OpenCode 2 Version Tracker · Official OpenCode 2 changelog