Repository navigation
Refresh the upstream pin to v2.1.4 #528
Copy link
Copy link
Closed
1 / 21 of 2 issues completedLabels
dependenciesPull requests that update a dependency filePull requests that update a dependency file
Milestone
Description
Move the SDK's OpenAPI pin from opencode v2.0.32 to v2.1.4 (68bc26b7da1990ce10ffecfbc1e09eb13aa5d824), following spec/SNAPSHOT.md's refresh procedure. On the day the PR goes to review, the newest 2.1.x tag that has stood for 24 hours is prepared again. The PR moves to that tag if its receipt adds nothing new.
Why now: 0.9.0-preview.13 (pinned 2.0.32) breaks against a 2.1.x server. 2.1.x removed the required recent member from compaction messages and events. Observed with preview.13 against a 2.1.4 server:
- a message list that contains a compaction message fails with
OpenCodeTransportException("malformed success body"; the innerJsonExceptionnames the missingrecent); - each compaction event fails to decode, so the event stream reconnects and loses it. The turn's
session.execution.succeeded, published inside that reconnect gap, was lost too, so code waiting for the turn to end hangs.
npm i -g @opencode/cli installs 2.1.4 today. 0.9.0-preview.14 ships on the refreshed pin.
What moves at v2.1.4
- Operations: 143 → 149, none removed. The additions:
debug.heapDump;experimental.mcp.clientandexperimental.mcp.client.token;experimental.voice.instructionsandexperimental.voice.models;permission.saved.update.
- The Restore patch
001-restore-sse-payloadsneeds a rebase: the context drifted. The defect it repairs (openapi.jsonno longer documents SSE payloads (V2Event/SessionLogItem) after the effect beta.107 regen anomalyco/opencode#44911) is still present at v2.1.4. - Watched sources: 27 of 84 hashes move, and 3 anchors are lost: the authorization middleware's ticket bypass, the
@opencode-ai/ptypin (0.2.0 → 0.3.1, daemon protocol still 7), and the session-list query. - Schema, breaking for the generated models:
providerState,stateandproviderResultStatebecomenativeacross assistant messages, their parts, and the step, text, reasoning and tool events;recentis removed from compaction;Session.ProviderContextis removed;Credential.Key.configurationis removed;- the session-import
messagesbecome untyped.
- Schema, additive:
session.archivedandsession.unarchivedevents, andarchivedon the session list and update;streamUsage,retryAfterMs;- the experimental config's
todo,background_compactionandlocation_idle_timeout; - the voice models.
- Windows: the default service port becomes 28894 (
0x70DE), to stay clear of the port block that WSL mirrored networking reserves. - Bun: upstream's
packageManagerbecomesbun@1.4.4.
Scope
- The refresh PR (feat!: refresh the upstream pin to v2.1.4 #532; one PR, and the one test-oracle row the new pin needs rides in it):
- prepare, the patch rebase, the anchor rewrites, a reviewed receipt, then
--apply; - curation:
- the admitted operations:
UpdateSavedAsync,ListVoiceModelsAsyncandSetVoiceSessionInstructionsAsync(Experimental), andWriteHeapSnapshotAsync; - the description rows re-cited at the new pin;
- the
Staterow moved toNative;
- the admitted operations:
- the client-MCP pair (
experimental.mcp.client,experimental.mcp.client.token) is deferred with reason rows: its hand-written door, where the SDK is the MCP server, is built before 1.0 in Client-hosted MCP servers: attach the app's own tools over the experimental client-MCP WebSocket #529; - regeneration and the public API baselines;
- the test harness's real-daemon port guard covers 28894 as well as 45278 and 49374; the pinned Bun moves to 1.4.4;
- a CHANGELOG
[Unreleased]entry that lists each breaking change of the generated models and the new Windows default port.
- prepare, the patch rebase, the anchor rewrites, a reviewed receipt, then
- The keep-alive tripwire against the new pin: it passed in feat!: refresh the upstream pin to v2.1.4 #532's CI on Windows (net10.0, net11.0, net472) and Linux.
- After the merge: the distributed-build consumer leg on the merge commit
b6559cb3(spec/SNAPSHOT.mdstep 5): run 39971275497 is green against@opencode/cli@2.1.4, with 3032/3032 tests on Linux and on Windows. - Persistent PTYs on Windows: feat!: refresh the upstream pin to v2.1.4 #532 flipped the test gate, rewrote the terminals guide's note, and its CI proved the daemon-present round trip on Windows on every target framework.
- Follow-up: retire the WSL2-hosted persistent-PTY test path, which Windows no longer needs (Retire the WSL2 path for persistent PTY live legs on Windows #537).
- Follow-up: retiring the Bun-mismatch switch (Bun mismatch switch: drop it from local gates once the pin's packageManager names the machines' Bun #450), whose trigger is met once the pin names the machines' Bun.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
dependenciesPull requests that update a dependency filePull requests that update a dependency file
Activity
Blind-Striker commentedon Oct 26, 2026
Closed by the second 1.0 triage (2026-10-26, maintainer-approved): every scope box is done. Of the two follow-ups, #450 is closed and #537 is tracked on its own in milestone 1.1.