Skip to content

chore: sync upstream opencode and keep only the macOS release workflow - #12

Merged
hsandhu merged 6317 commits into
devfrom
sync-upstream
Nov 5, 2026
Merged

hsandhu merged 6317 commits into
devfrom
sync-upstream

Conversation

@hsandhu

@hsandhu hsandhu commented Nov 5, 2026

Copy link
Copy Markdown
Owner

Merges a month of upstream opencode dev (6,311 commits) into MobileCode, ports the device preview feature onto upstream's restructured code, and removes every GitHub Actions workflow except Release macOS.

What changed

  • Merge: resolves ~196 conflicts from upstream's restructure (@opencode/* scope, gui-plugins, rewritten desktop main process, removal of packages/opencode). MobileCode branding is kept.
  • Desktop identity: app IDs and names, the mobilecode:// scheme, desktop data kept under the app's own userData (separate from any OpenCode install), and the updater gated behind MOBILECODE_UPDATER_ENABLED. App and GUI-plugin strings are rebranded, keeping OpenCode service names (Zen, Go, Console).
  • Device preview backend: imports moved to the @opencode scope and new http-api; device_run is now a built-in tool plugin; the client and OpenAPI document are regenerated.
  • Device pane UI: rebuilt as the device GUI plugin in packages/gui-plugins/src/device/ (tab, run controls, Metro row, log, toggle command, auto-open). The old toggle keybind is migrated.
  • Workflows: only release-macos.yml remains, rebuilt on upstream's CLI → desktop build. Before packaging the DMG it runs the desktop tests, desktop typecheck and the device-preview tests.

Differences from the fork's previous behaviour

  • The Metro row shows the path from the session folder (e.g. DeviceControls/apps/mobile, full path on hover) instead of ~/....
  • The toggle command switches to the device tab when it's open behind another tab, instead of closing it.
  • The CLI's own rebrand (binary name, upgrade URLs) didn't carry over because upstream rewrote the CLI. The CLI bundled in the app keeps the internal name opencode-cli.

Verification

  • bun run check (repo-wide lint and typecheck): passes.
  • Tests: core device tests 45/45, device pane 20/20, server 124/124, client 259/259, desktop 567/567.
  • Not yet run: the app itself, the device-controls Playwright spec, release-macos.yml and bun run build:macos. Five core tests fail locally on Node 20 (node:sqlite, a preload env check and some shell tests); none touch device code.

🤖 Generated with Claude Code

rekram1-node and others added 30 commits November 4, 2026 10:01
Co-authored-by: Hona <10430890+Hona@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
Co-authored-by: exe.dev user <exedev@anton.exe.xyz>
Hona and others added 25 commits November 5, 2026 09:48
…unch onboarding through state machines (#62115)
…on lists and picker cache explicit machines (#62103)
… mount and compaction entrance explicit (#62112)
Resolves conflicts from upstream's package restructure (@OpenCode scope, gui-plugins,
desktop main rewrite, packages/opencode removal) and re-applies the MobileCode branding
on top. Device preview code is ported to the new APIs in follow-up commits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…modules

Rebrand the relocated app and gui-plugin strings, register the mobilecode:// scheme,
keep desktop data under the app's userData, and gate the updater behind
MOBILECODE_UPDATER_ENABLED.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Register device_run as a built-in tool plugin, move imports to the @OpenCode scope,
drop the removed PtyEnvironment from the handler, and regenerate the client.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Remove upstream's CI, release, deploy, bot and triage workflows with their helper
scripts, and rebuild release-macos on the new CLI and desktop build pipeline. It now
runs the desktop and device preview tests before packaging the DMG.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Rebuild the device tab, run controls, Metro row and auto-open as the device GUI
plugin, migrate the old toggle keybind, and update the device controls e2e spec.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

This PR doesn't fully meet our contributing guidelines and PR template.

What needs to be fixed:

  • PR description is missing required template sections. Please use the PR template.

Please edit this PR description to address the above within 72 hours, or it will be automatically closed.

If you believe this was flagged incorrectly, please let a maintainer know.

@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@hsandhu
hsandhu merged commit a709e89 into dev Nov 5, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.