Skip to content

0.9.0-preview.13

Pre-release
Pre-release

Choose a tag to compare

@Blind-Striker Blind-Striker released this 18 Oct 16:10
a024408

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.CreateVoiceSessionAsync opens an
    experimental voice session over WebRTC or WebSocket. ConfigModelCapabilities.Reasoning tells a
    model that does not reason (ConfigModelReasoningUnsupported) from one that does
    (ConfigModelReasoningSupported, with its toggle, efforts and ConfigModelReasoningBudget);
    ConfigModelCapabilities.Temperature and ModelCapabilities.Temperature say whether a model
    takes a temperature, and ConfigModel.ReleaseDate carries its release date.

🔧 Changes

  • A spawned background service's saved env wins after startup.
    OpenCodeServerEnsureOptions.Environment entries still win over the channel's service-config
    env at spawn, but a 2.0.32 service re-applies its saved env when 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.StopAsync no 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' Seq and Version, the MCP
    timeouts and Codemode, inbox and compaction Created times) 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 give XDG_STATE_HOME and XDG_CONFIG_HOME different directories: the
    registration and the CLI's service configuration are both named service.json, so one folder for
    both makes them the same file, and EnsureAsync then fails now and then on Windows with EPERM.
  • A stopped service's files unlock a moment after StopAsync on Windows. The connection-modes
    guide now says that the daemon's opencode.db-shm and -wal stay 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.