OpenCode 2 v2.1.0: session archiving returns, editable saved permissions#
Published by Alex Sorokoletov
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#
- 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