Repository navigation
chore(deps): update dependency @opencode/cli to v2.1.1 - #39
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.0.32→2.1.1Release Notes
anomalyco/opencode (@opencode/cli)
v2.1.1Compare Source
v2.1.0Compare Source
Highlights
{ "experimental": { "todo": true } }to give models thetodowritetool and display their task list in the session and sidebar. (#56947)Breaking changes
Version 2.1 makes intentional changes to public SDK, HTTP message/event, and plugin contracts so provider replay data and compaction use consistent names and shapes. Integrations must adopt the new fields. Existing stored sessions, credentials, and older session imports remain readable through compatibility decoders; no database migration is required. (#57260)
Provider replay data is now
nativeProvider-owned replay data previously used different names on different surfaces. Read and write
nativeinstead; a tool's executionstateand UImetadataare separate and are not renamed.statenativeproviderStatenativesession.tool.calledstatenativesession.step.ended,session.step.failed, andsession.compaction.endedproviderStatenativesession.tool.successandsession.tool.failedresultStatenativeSessionMessage.ProviderStateSessionMessage.NativeSessionCompactionResult.providerStateSessionCompactionResult.nativeTool call and result data share
tool.nativeTool parts no longer have separate
providerStateandproviderResultStatefields:Success and failure events shallow-merge their
nativeinto the call's existingnative. Missing result data preserves call data; result values win on duplicate keys. Provider/protocol implementations must use distinct keys when call and result values differ. There is nostate.native,resultNative, or nested{ call, result }envelope.Replay passes the merged blob to the protocol, which reads the fields it needs. Tool calls receive it only for the same provider and model. Provider-run results receive it for the same provider, including after a model switch. Local results receive it only for the same provider and model when the step did not fail. Legacy stored or imported
providerResultStateis merged intotool.nativewhen read. Execution status and readable output remain intool.state.Key credential setup answers move to
metadataCredential.Key.configurationis removed. Public credential writes must put setup-form answers in the existingmetadatafield:{ type: "key", key: "...", - configuration: { account: "example" } + metadata: { account: "example" } }Existing stored credentials and
opencode auth importstill accept the old shape. Legacyconfigurationis merged intometadata; the legacy configuration value wins when both contain the same key. This compatibility is for storage/import, not a reason to keep sendingconfigurationin public writes.Summary compactions reference kept messages
Compaction messages and
session.compaction.started/session.compaction.endedno longer exposerecent. New summary compactions reference the first message retained verbatim throughmetadata.keepIDinstead of storing a second, flattened copy:History reconstructs the kept text from that message up to the compaction boundary. Forks remap the reference to their copied messages, and compaction hooks can override
keepIDthrough metadata. Kept text from pre-2.1 compactions and V1 imports remains available asmetadata.recent. New compactions store the reference, not the duplicated text.Provider compaction windows move to
native.messagesCompleted compactions and
session.compaction.endedno longer haveproviderContext. The replacement message window now lives innative.messages:Native compaction replay now matches the compaction's provider ID and model ID, rather than route/protocol/endpoint provenance. If they do not match, history uses the original messages. Endpoint changes alone no longer block replay, and request hooks that rewrite the base URL no longer block native compaction or replay.
Summary compactions no longer save the summary call's unused provider data in
native. A compaction hook'sresult.nativeis still stored; if it containsmessages, that window is replayed instead of the summary. OldproviderContextrows and events are converted when read, including the media format used before 2.0.15.Remove the unused
session.compactedeventThe transitional
session.compactedevent is removed from the public event surface. Update event subscriptions and schema imports to use the current compaction lifecycle events, includingsession.compaction.startedandsession.compaction.ended.Core
Improvements
todowritetool behind{ "experimental": { "todo": true } }; it accepts the complete list as{ todos: [{ content, status }] }. (#56947)streamUsagemodel compatibility option for providers that rejectstream_options. (#57255)Bug fixes
run, andminirequests from hitting Bun’s default fetch deadline. Thanks @Finn763. (#55149)storefield to OpenAI, Azure, and providers that explicitly opt in. (#57239)script/directory in Nix CLI builds. (#55494)TUI
Improvements
/modelsnow opens on the current model and preserves the server’s preferred model order. (#57151)Shift+Tabnavigation to export options. (#57154)Bug fixes
session.waitafter transport interruptions inmini. (#57062)Desktop
Bug fixes
SDK
Improvements
client.voice.session(...), with Gemini Live support forgemini-3.8-live*models over WebSocket. The server uses a stored Google key orGEMINI_API_KEY,GOOGLE_GENERATIVE_AI_API_KEY, orGOOGLE_API_KEY. (#56888)client.permission.saved.update(...)for changing a saved permission’s action or resource. (#56659)client.session.list(...)and archive updates toclient.session.update(...). (#53759)idleto the supportedclient.message.list(...)type filter. (#56504)Extensions
Improvements
ctx.session.list(...)to both Effect and Promise plugin APIs. (#56264)Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.