Skip to content

chore(sync): merge upstream v2 through v2.0.20 - #370

Merged
shuv1337 merged 35 commits into
integration-v2from
cursor/sync-upstream-v220-32fb
Sep 30, 2026
Merged

shuv1337 merged 35 commits into
integration-v2from
cursor/sync-upstream-v220-32fb

Conversation

@shuv1337

Copy link
Copy Markdown
Owner

Issue for this PR

N/A. Upstream sync. Do not merge this PR from the agent.

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.20 release-sync commit into the Shuvcode fork and keeps fork identity.

  • Signal tag: v2.0.20 @ 84c9be93a56304a108f1a22df0c5d62c26d5b6ca (release: v2.0.20).
  • Merge source: anomalyco/opencode branch v2, release-sync commit 8d8a7bc844a485eb6c85a220b37f30e9edc41ddf (sync release versions for v2.0.20). Not current v2 HEAD.
  • Merge commit: cb7efec59ca353ac0e7d9f1cce36462905b2dc24 (dde6a8860b + 8d8a7bc844). Follow-up on that merge: 82349b5689 stubs connection.status in fork plugin test fixtures.
  • Fork base was integration-v2 at dde6a8860b (after PR chore(sync): merge upstream v2 through v2.0.19 #369, v2.0.19).
  • CLI stays package/bin shuvcode at 2.0.20-shuv.1. No opencode or opencode2 bin.

Tag relationship (not the v2.0.19 sibling pattern):

For v2.0.19 the tag 1fd016ef32 and the sync commit f02c30eb55 shared parent ca084b2430 and had identical trees. That is not true for v2.0.20.

  • Tag 84c9be93a5 parent is 0f83038253 (fix(core): align ChatGPT token sharing with updated partner guide (#52162)). Tree 548dafe2ee9c92baa0cb55811373396b0e804af5. The tag is not an ancestor of v2.
  • Sync commit 8d8a7bc844 parent is a2fc1968be (fix(stats): match document background to page theme (#52169)). Tree 9a240a8e7270ed71ee7669d2f3ab324eb77c7c01.
  • Merge-base of the tag and the sync commit is the tag's parent 0f83038253. v2 then has three commits the tag does not: 4deda18037 (fix(app): align ChatGPT usage copy and links (#52163)), c2a39ac592 (fix(core): stop promising a ChatGPT usage reset (#52168)), and a2fc1968be. The trees differ in those commits' files (chatgpt-usage-limit.tsx, chatgpt-welcome.tsx, select-dialog.tsx, en.ts, to-session-error.ts, packages/stats/app/src/routes/index.css).
  • Branch v2 HEAD is one commit past the sync: df51166711 (fix(ci): run V2 Discord notification after skipped build jobs (#52012)). This merge stops at the sync commit, so that CI commit is not included. The three commits above are included because they are ancestors of the sync commit.

Conflicts resolved (2):

  • packages/cli/package.json: kept name shuvcode and bin shuvcode (./bin/shuvcode.mjs). Set version 2.0.20-shuv.1.
  • bun.lock: took upstream's lockfile, then regenerated with bun install so the workspace entry is [email protected] and the fork plugin packages stay (@shuvcode/gpt-live-plugin, @shuvcode/quota-plugin, marked). bun install --frozen-lockfile passes.

No workflow files changed. .github/workflows/publish.yml is the fork file, unchanged. Upstream did not touch it between dde6a8860b and the sync commit, so there was no publish.yml conflict.

packages/tui/package.json auto-merged: upstream version 2.0.20, 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; the plugin TUI API still has prompt autocomplete; packages/ai/src/protocols/shared.ts still exports toolErrorContent; messageToText still emits [Tool error] and [Tool error content]; CLI/help tests still assert shuvcode.

Fork-identity edit that was not a conflict: upstream added a pairing error, run \opencode service unset disabled` first. The rest of the fork's service usage text says shuvcode, so this merge rewrites that one new sentence to shuvcode service unset disabled. Conservative fork behavior. No other new user-facing opencode ` strings came in with this sync.

Follow-up required by the merge: upstream added integration.connection.status. Fork fixtures that build a connection object needed a no-op status. Added status: () => Effect.void in packages/claude-plugin/test/hooks.test.ts, packages/claude-plugin/test/plugin.test.ts, and packages/core/test/plugin/provider-antigravity.test.ts. Plugin behavior is unchanged.

Nothing else needs a product decision. Cap merges. 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, mini footer view, and the TUI tests this sync changed (group-view, session-verbosity, session-tabs, stats view): 164 pass, 2 skip
  • packages/server: process pairing test (1 pass)
  • packages/cli: web-ui, server-connection, service, noninteractive run, auth, auth-login choices, mcp-auth choices, session-target (59 pass)
  • packages/ai: cache-policy, executor, provider-error, and the anthropic, bedrock, gemini, mistral, openai-chat, openai-responses, and meta provider tests, including recorded and cache variants this sync touched (741 pass, 1 skip)
  • packages/core: aisdk, aisdk-native, tool-registry, session-compaction, session-compaction-transport, credential, database, generate, mcp, model-resolver, chatgpt, opencode, antigravity, session-error, variant (335 pass)
  • packages/schema session-error (5 pass), packages/claude-plugin hooks and plugin (5 pass), packages/session-ui timeline rows (43 pass), packages/app usage-exceeded dialogs (4 pass, solid condition + happydom), packages/plugin host resolve (9 pass)

Session-ui Playwright component 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 

rekram1-node and others added 30 commits September 28, 2026 23:37
Co-authored-by: rekram1-node <[email protected]>
Co-authored-by: jlongster <[email protected]>
@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/​electron@​44.4.3 ⏵ 44.4.5100100100 +198100
Updatednpm/​@​pierre/​diffs@​1.2.10 ⏵ 1.5.1100 +2010099 +2100 +1100

View full report

@shuv1337
shuv1337 marked this pull request as ready for review September 29, 2026 21:55
@shuv1337
shuv1337 merged commit 2bd1e49 into integration-v2 Sep 30, 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.

9 participants