Skip to content

feat: port Forge to OpenCode v2.2.5 - #61

Merged
divyanshusingh2903 merged 5981 commits into
mainfrom
v2-port
Nov 4, 2026
Merged

divyanshusingh2903 merged 5981 commits into
mainfrom
v2-port

Conversation

@divyanshusingh2903

@divyanshusingh2903 divyanshusingh2903 commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

Issue for this PR

Part of #60

Type of change

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

What does this PR do?

Moves Forge from the OpenCode v1 line (last synced at v1.19.0) to OpenCode v2.2.5. v2 removed packages/opencode and split it into core, server, protocol, client and cli, so a rebase wasn't possible. v2-port is a fresh branch from the v2.2.5 tag with Forge's changes ported on top. The last v1 release is tagged forge-v1-final.

What's on the branch, beyond upstream v2.2.5:

  • Rebrand: names, app IDs, forge://, icons, accent colour, wordmark and README. The Forge name replaces OpenCode in the UI strings, while OpenCode's own services keep their names.
  • Release setup: the manual forge-release workflow, plus Linux window controls.
  • Projects sidebar, mode picker (Manual, Accept edits, Auto, Plan) and Plan mode with a plan file, review tab and plan dock.
  • Permissions follow the session mode on the server. Shell commands, file edits and browser actions ask by default, as in v1. The old client-side auto-approver is gone; the setting now only picks the mode new sessions start in.
  • Memory, the git panel, MCP settings, web search cards, the tool response viewer and readable browser calls in the timeline, including screenshot thumbnails.
  • Updater: v2's updater plugin reads Forge's GitHub releases. macOS builds without a Developer ID open the release page instead of auto-installing.
  • Docs: MAINTAINING, AGENTS and CONTRIBUTING updated for the v2 layout.

Existing v1 sessions don't carry over (no DB migration), as decided in #60.

Still open, tracked in #60: terminal on the v2 pty, chapters, background tasks, instance registry and crash recovery, and UI polish. The Codex websocket pool moved to post-port.

Merging: this branch shared no history with main past upstream 055d95bb7e, and a normal merge conflicted in 732 files. main is now merged into this branch with -s ours, which keeps v1's history but takes the v2 tree, so the PR merges cleanly. CI now runs on GitHub-hosted runners for main, with macOS added to the unit and build jobs.

How did you verify your code works?

  • bun run check (typecheck for every package) passes on push.
  • Unit tests pass for the packages touched in the latest fixes (app, session-ui, plugin-browser, gui-plugins updater, core mode plugin). The full core suite has 27 failures that also fail without these changes.
  • Ran the desktop app from source on Linux: browser calls, permission prompts in Manual, the plan flow, notifications and loading states.
  • Not verified: the forge-release workflow (it has never run), and a real update on macOS or Windows. The rewritten auto-approve e2e spec wasn't run, because Playwright browsers aren't installed locally.

Screenshots / recordings

Covered in #60.

Checklist

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

rekram1-node and others added 30 commits October 29, 2026 10:40
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: LukeParkerDev <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aiden Cline <[email protected]>
@divyanshusingh2903
divyanshusingh2903 merged commit d2708fd into main Nov 4, 2026
84 of 85 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.