Repository navigation
0.9.0-preview.13
Pre-release
Pre-release
The SDK speaks opencode 2.0.32. The pinned server moves from 2.0.29 to 2.0.32. The upgrade
brings an experimental voice session, typed reasoning and temperature capabilities on models, and
a background service whose saved env wins after startup. On Linux and macOS, StopAsync now
returns only once the stopped daemon has been reaped. IntelliSense reaches the members that
implement a documented interface. The guides gain a recipe for answering permission asks and
question forms, plus the notes that isolating and cleaning up a background service needs.
✨ Added
- The SDK speaks opencode 2.0.32.
ExperimentalClient.CreateVoiceSessionAsyncopens an
experimental voice session over WebRTC or WebSocket.ConfigModelCapabilities.Reasoningtells a
model that does not reason (ConfigModelReasoningUnsupported) from one that does
(ConfigModelReasoningSupported, with its toggle, efforts andConfigModelReasoningBudget);
ConfigModelCapabilities.TemperatureandModelCapabilities.Temperaturesay whether a model
takes a temperature, andConfigModel.ReleaseDatecarries its release date.
🔧 Changes
- A spawned background service's saved
envwins after startup.
OpenCodeServerEnsureOptions.Environmententries still win over the channel's service-config
envat spawn, but a 2.0.32 service re-applies its savedenvwhen it starts, so a key set in
both takes the saved value for everything the service reads after startup.
🐛 Fixes
- Stopping a background service waits for its child process to be reaped. On Linux and macOS,
OpenCodeServer.StopAsyncno longer returns while the daemon it stopped is still an unreaped
zombie of the calling process. - IntelliSense reaches implementing members and restores declared halves. Properties that
implement a documented interface member (durable envelopes'SeqandVersion, the MCP
timeouts andCodemode, inbox and compactionCreatedtimes) show that member's documentation,
and 26 summaries that preview.12 dropped as partly implementation-only return with the part
upstream declares. SDK types and runtime behavior are unchanged.
📚 Documentation
- Isolating a background service needs separate state and config roots. The connection-modes
guide now says to giveXDG_STATE_HOMEandXDG_CONFIG_HOMEdifferent directories: the
registration and the CLI's service configuration are both namedservice.json, so one folder for
both makes them the same file, andEnsureAsyncthen fails now and then on Windows withEPERM. - A stopped service's files unlock a moment after
StopAsyncon Windows. The connection-modes
guide now says that the daemon'sopencode.db-shmand-walstay locked for a few tens of
milliseconds after the call returns, so deleting an isolated data directory right away can fail. - The streaming guide answers permission asks and question forms. One recipe covers explicit
tool-action rules, one-time approval or rejection, and field-keyed text answers with nullable
union-member handling; the requests guide links to it from session permissions.