Skip to content

chore(sync): merge upstream v2 through v2.0.21 - #371

Merged
shuv1337 merged 26 commits into
integration-v2from
cursor/sync-upstream-v221-e344
Oct 1, 2026
Merged

shuv1337 merged 26 commits into
integration-v2from
cursor/sync-upstream-v221-e344

Conversation

@shuv1337

@shuv1337 shuv1337 commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

Issue for this PR

N/A. Upstream sync. Do not merge this PR.

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

Upstream sync of anomalyco/opencode branch v2 into integration-v2.

What does this PR do?

Merges anomalyco/opencode branch v2 through the v2.0.21 release-sync commit into the Shuvcode fork and keeps fork identity.

  • Signal tag: v2.0.21 @ 8a8bd622a3d7dc29ccf30ec17f84e363ed95ed72 (release: v2.0.21).
  • Merge source: anomalyco/opencode branch v2, release-sync commit dd2af0e5fccd4014ed2ab938f369f01817935211 (sync release versions for v2.0.21). Not current v2 HEAD.
  • Merge commit: 210c16a571629692027ed60dcf393c72ae4bf49a (2bd1e49d3c + dd2af0e5fc).
  • Fork base was integration-v2 at 2bd1e49d3c (after PR chore(sync): merge upstream v2 through v2.0.20 #370, v2.0.20).
  • CLI stays package/bin shuvcode at 2.0.21-shuv.1. No opencode or opencode2 bin.

Tag relationship (same shape as v2.0.20, not the v2.0.19 sibling pattern):

For v2.0.19 the tag and the sync commit shared a parent and had identical trees. v2.0.21 does not.

  • The tag is not on v2. It is not an ancestor of upstream/v2. upstream/v2..v2.0.21 is exactly the tag commit.
  • Tag 8a8bd622a3 parent: f46fa72a92 (fix(core): add namespaced session identity headers (#52368)). Tree d551f447236479f665d8324b1c4439a0ce5f6e63.
  • Sync commit dd2af0e5fc parent: a923596ee7 (feat(plugin): expose session removal (#52387)). Tree 1a4dfdc6c89b605970461048a86acf843ec16bcd.
  • Trees do not match.
  • Merge-base of the tag and the sync commit is the tag's parent f46fa72a92.
  • Commits on the v2 side that the tag lacks (3):
    • 91b9bc52a4 fix(ai): make model capability defaults forward-compatible (#52388)
    • a923596ee7 feat(plugin): expose session removal (#52387)
    • dd2af0e5fc sync release versions for v2.0.21
  • Commits the tag has that v2 lacks (1): 8a8bd622a3 release: v2.0.21.
  • The release commit and the sync commit touch the same version files. The tree difference is the two feature commits above.
  • v2 HEAD 5556ad563d is two commits past the sync. Those are not in this merge:
    • 629e7aaa31 fix(session-ui): increase markdown bold weight (#52389)
    • 5556ad563d fix(ai): stop retrying Z.ai Responses model and permission rejections (#52135)

What's new upstream (8d8a7bc844 .. dd2af0e5fc, 25 commits):

Conflicts (4):

  • packages/cli/package.json: kept name shuvcode and bin shuvcode (./bin/shuvcode.mjs). Set version 2.0.21-shuv.1.
  • bun.lock: took upstream's lockfile, then regenerated with bun install so the workspace entry is shuvcode at 2.0.21-shuv.1 and the fork plugin packages stay (@shuvcode/gpt-live-plugin, @shuvcode/quota-plugin, marked). bun install --frozen-lockfile passes.
  • packages/ai/src/protocols/openai-chat.ts: upstream moved chat cache breakpoints onto text content parts (toolMessage). The fork still lowers rich tool failures through ProviderShared.toolErrorContent, including the error text plus content parts. Both are kept: rich errors go through toolMessage, so cache control stays on the text part.
  • .github/workflows/publish.yml: kept the fork file unchanged. Upstream's only edit was the Discord job if: guard from fix(ci): run V2 Discord notification after skipped build jobs anomalyco/opencode#52012 (fix(ci): run V2 Discord notification after skipped build jobs). No workflow files changed in this PR.

packages/tui/package.json auto-merged: upstream version 2.0.21, plus the fork marked catalog dependency and @shuvcode/gpt-live-plugin / @shuvcode/quota-plugin workspace dependencies.

These fork pieces did not conflict and are unchanged: dialog-pair.tsx still says shuvcode service set hostname; pairing still errors with shuvcode service unset disabled; the plugin TUI API still has prompt autocomplete; packages/ai/src/protocols/shared.ts still exports toolErrorContent; compaction still emits [Tool error] and [Tool error content]; integration.connection.status stubs remain; CLI/help tests still assert shuvcode.

Rebrand: no new opencode <cmd> string landed in source the fork has already rebranded. packages/cli/src/acp/service.ts auto-merged and kept shuvcode auth login, terminal-auth command shuvcode, label Shuvcode Login, and agent name Shuvcode. The new wire test packages/cli/test/acp/session.test.ts asserted the upstream wording, so those expectations were updated to match the fork source:

  • description Run \opencode auth login`→Run `shuvcode auth login``
  • terminal-auth command opencode → shuvcode
  • label OpenCode Login → Shuvcode Login
  • agentInfo.name OpenCode → Shuvcode

The method id opencode-login and the method name Login with opencode are unchanged, matching the existing fork source.

Judgment calls:

  • HTTP headers x-opencode-session-id and x-opencode-parent-session-id (fix(core): add namespaced session identity headers anomalyco/opencode#52368) stay as upstream wrote them. They are wire identity headers next to the existing X-Session-Id / x-parent-session-id headers, not CLI hints.
  • Merge stops at the sync commit. The two commits on v2 after it are not included.
  • Did not run bun run generate. Upstream already updated the generated client for the form-cancel query, and typecheck passed.
  • #52012 is an ancestor of the sync commit, but its workflow edit was dropped with the fork publish.yml.

Nothing else needs a product decision. Do not merge this PR.

How did you verify your code works?

Local only. GitHub Actions were not triggered.

  • bun install and bun install --frozen-lockfile (bun 1.4.2)
  • bun run check from the repo root, including the pre-push hook: oxlint clean (0 warnings, 0 errors), turbo typecheck 40/40
  • packages/tui: dialog-pair, plugin-model, plugin-autocomplete, mini footer, and group-view: 116 pass, 2 skip
  • packages/server: process pairing and fetch: 13 pass
  • packages/cli: web-ui, server-connection, service, noninteractive run, auth, auth-login choices, mcp-auth choices, session-target, and the ACP wire/subprocess tests this sync changed (catalog, session, permission, prompt, replay, turn, config-options, lifecycle): 126 pass, 4 todo
  • packages/ai: cache-policy, executor, provider-error, effort-updates, provider-package, and the anthropic, bedrock, gemini, mistral, openai-chat, openai-responses, meta, cloudflare, zai, and openrouter provider tests, including the recorded cases this sync touched: 726 pass, 24 skip
  • packages/core: aisdk, aisdk-native, tool-registry, session-compaction, session-compaction-transport, plugin session-remove, form, session-title, session-runner: 375 pass
  • packages/plugin host resolve: 9 pass
  • packages/claude-plugin: 21 pass
  • packages/plugin-browser rpc: 37 pass
  • packages/desktop browser-errors: 5 pass
  • packages/session-ui: timeline rows, projection, and markdown session links: 66 pass
  • packages/app (solid condition + happydom): composer schema/request, comment-note, browser connection, notification alert, new-session project selector: 37 pass

Session-ui and app Playwright component/e2e specs were not run here.

Screenshots / recordings

N/A. No fork UI layout change.

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR
Open in Web Open in Cursor 

opencode-agent Bot and others added 26 commits September 29, 2026 16:22
Merge anomalyco/opencode v2 at dd2af0e (sync release versions for v2.0.21). Keep the shuvcode package identity, fork workflow, and rich tool-error lowering.
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​@​opentui/​core@​0.5.12 ⏵ 0.5.1498 +110094 +198 +2100
Updatednpm/​@​opentui/​keymap@​0.5.12 ⏵ 0.5.14100 +11009998 +1100
Updatednpm/​@​opentui/​solid@​0.5.12 ⏵ 0.5.14100 +110099 +198 +2100

View full report

@shuv1337
shuv1337 merged commit 62d4e02 into integration-v2 Oct 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants