Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
726ae6f
chore: configure alerting and monitoring (#25857)
vimtor May 5, 2026
fdb4b7c
chore: update nix node_modules hashes
opencode-agent[bot] May 5, 2026
576480b
fix: ensure mistral medium 3.5 has variants properly setup (#25887)
rekram1-node May 5, 2026
25ecf0a
fix: retry server_is_overloaded errors (#25888)
rekram1-node May 5, 2026
8a797ed
fix(TUI): update agent create target path from "/agent" to "/agents" …
OpeOginni May 5, 2026
8e182c7
fix(core): better state handling of editor context (#25911)
jlongster May 5, 2026
12f3d1f
fix(core): use current workspace with /new; fix warping into local pr…
jlongster May 5, 2026
25547e9
chore: generate
opencode-agent[bot] May 5, 2026
ca77b8f
fix(cf-ai-gateway): route provider options through openaiCompatible k…
NathanDrake2406 May 5, 2026
837cc92
chore: generate
opencode-agent[bot] May 5, 2026
6409ace
fix: sanitize surrogates (#25934)
rekram1-node May 5, 2026
1fbc13a
chore: generate
opencode-agent[bot] May 5, 2026
e117397
fix(server): restore web terminal CSP allowances (#25937)
Hona May 5, 2026
f5c3d35
fix(app): require query functions for sync queries (#25939)
Hona May 6, 2026
8555de8
Type session not-found errors (#25818)
kitlangton May 6, 2026
6e7c9eb
chore: generate
opencode-agent[bot] May 6, 2026
5013e8a
docs: update desktop app references from Tauri to Electron (#25965)
imduchuyyy May 6, 2026
2f05676
chore: generate
opencode-agent[bot] May 6, 2026
efd8024
feat(desktop): add OPENCODE_TEST_ONBOARDING env (#25968)
Brendonovich May 6, 2026
b4c60e1
chore: generate
opencode-agent[bot] May 6, 2026
89afac3
go: restore Kimi K2.6 limits (#25969)
MrMushrooooom May 6, 2026
7c8cf6c
fix(desktop): suppress browser API Sentry errors in prod (#25972)
Brendonovich May 6, 2026
9d178e0
sync
fwang May 6, 2026
acca2e9
fix(desktop): disable auto install on app quit (#25976)
Brendonovich May 6, 2026
754a1fb
fix(desktop): suppress EPIPE errors in console transport (#25980)
Brendonovich May 6, 2026
c235ba1
docs: fix CLI attach section order (#25749)
kill74 May 6, 2026
518503b
fix(ui): preserve SVG tags in DOMPurify config for KaTeX math renderi…
zharinov May 6, 2026
901d117
chore(desktop): add @parcel/watcher platform packages to optionalDepe…
Brendonovich May 6, 2026
043a5c7
feat(desktop): implement clipboard write permission handling (#25998)
Brendonovich May 6, 2026
d49d217
fix(tui): preserve selected model on refresh (#25993)
nexxeln May 6, 2026
aa3c99a
chore: update nix node_modules hashes
opencode-agent[bot] May 6, 2026
2abc450
fix(tui): filter only connected workspaces in dialog; add warp synthe…
jlongster May 6, 2026
889f979
chore: fix model alerts (#25990)
vimtor May 6, 2026
63a175b
fix(cli): avoid AppRuntime re-entry for network options (#26052)
kitlangton May 6, 2026
d9c1838
feat(config): support well-known remote_config (#26054)
thdxr May 6, 2026
b9b854b
chore: generate
opencode-agent[bot] May 6, 2026
344ccc6
ignore: vimtor to team members list
rekram1-node May 6, 2026
38b0cdc
go: deprecate old models
fwang May 6, 2026
bf97941
chore: change alert type for honeycomb triggers
vimtor May 6, 2026
e41843e
sync
fwang May 6, 2026
a4ab140
zen: update rate limiter
fwang May 6, 2026
2dffdff
fix(server): apply cors before legacy auth (#26092)
Hona May 6, 2026
233fc5b
fix(provider): preserve assistant message content when reasoning bloc…
edevil May 6, 2026
b2e3dc8
feat: Update ACP support, modernize and fix misc issues (#25663)
rekram1-node May 7, 2026
dcfe4b0
sync release versions for v1.14.40
May 7, 2026
3480cef
chore: update nix node_modules hashes
opencode-agent[bot] May 7, 2026
0b70270
zen: nano not used for title gen
fwang May 7, 2026
72ec05d
go: rate limit metadata
fwang May 7, 2026
ba1ec62
docs: add opencode-jfrog-plugin to ecosystem list for JFrog integrati…
carmithersh May 7, 2026
9b30ee2
fix(desktop): add macOS settings menu entry (#26081)
jessedi0n May 7, 2026
54a78c9
feat(desktop): move server to utilityProcess (#25962)
Brendonovich May 7, 2026
293bb42
fix(format): restore stdout/stderr ignore for formatter processes (#2…
ferdinandyb May 7, 2026
f8aa4a3
chore: simplify honeycomb alerts (#26142)
vimtor May 7, 2026
1ea01fd
chore: update nix node_modules hashes
opencode-agent[bot] May 7, 2026
0b2e65f
chore: reactivate alerts
vimtor May 7, 2026
b2cc40f
chore: first provider alert version
vimtor May 7, 2026
1219691
docs(desktop): update README from Tauri to Electron (#26146)
Brendonovich May 7, 2026
cee04f2
chore: make provider down queries live
vimtor May 7, 2026
193c169
chore: improve provider down query
vimtor May 7, 2026
30c4fcb
chore: fix honeycomb query frequency
vimtor May 7, 2026
fea9a0b
fix: guard undefined contents in diff renderer to fix share viewer SS…
YGoetschel May 7, 2026
95280eb
fix(tui): restore custom provider in /connect (#26168)
nexxeln May 7, 2026
fbb7b5b
chore: add free tier usage alert
vimtor May 7, 2026
844fb71
chore: generate
opencode-agent[bot] May 7, 2026
d6e06c8
chore: fix free tier query
vimtor May 7, 2026
9c9bc09
chore: fix free tier query
vimtor May 7, 2026
b6ff1b1
chore: activate free tier requests query
vimtor May 7, 2026
3c4b4d5
feat(core): copy file changes when warping (#26190)
jlongster May 7, 2026
98e0917
chore: generate
opencode-agent[bot] May 7, 2026
fe59469
sync release versions for v1.14.41
May 7, 2026
1e190f4
Merge commit 'fe594693a' into sync/upstream-v1.14.41
May 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/TEAM_MEMBERS
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ R44VC0RP
rekram1-node
thdxr
simonklee
vimtor
24 changes: 6 additions & 18 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ Replace `<platform>` with your platform (e.g., `darwin-arm64`, `linux-x64`).
- `packages/opencode`: OpenCode core business logic & server.
- `packages/opencode/src/cli/cmd/tui/`: The TUI code, written in SolidJS with [opentui](https://github.com/sst/opentui)
- `packages/app`: The shared web UI components, written in SolidJS
- `packages/desktop`: The native desktop app, built with Tauri (wraps `packages/app`)
- `packages/desktop`: The native desktop app, built with Electron (wraps `packages/app`)
- `packages/plugin`: Source for `@opencode-ai/plugin`

### Understanding bun dev vs opencode
Expand Down Expand Up @@ -123,33 +123,21 @@ This starts a local dev server at http://localhost:5173 (or similar port shown i

### Running the Desktop App

The desktop app is a native Tauri application that wraps the web UI.
The desktop app is an Electron application that wraps the web UI.

To run the native desktop app:

```bash
bun run --cwd packages/desktop tauri dev
```

This starts the web dev server on http://localhost:1420 and opens the native window.

If you only want the web dev server (no native shell):
To run the desktop app in development:

```bash
bun run --cwd packages/desktop dev
```

To create a production `dist/` and build the native app bundle:
To create a production build and package the app:

```bash
bun run --cwd packages/desktop tauri build
bun run --cwd packages/desktop build
bun run --cwd packages/desktop package
```

This runs `bun run --cwd packages/desktop build` automatically via Tauri’s `beforeBuildCommand`.

> [!NOTE]
> Running the desktop app requires additional Tauri dependencies (Rust toolchain, platform-specific libraries). See the [Tauri prerequisites](https://v2.tauri.app/start/prerequisites/) for setup instructions.

> [!NOTE]
> If you make changes to the API or SDK (e.g. `packages/opencode/src/server/server.ts`), run `./script/generate.ts` to regenerate the SDK and related files.

Expand Down
2 changes: 2 additions & 0 deletions UPSTREAM.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ Each upstream has its own append-only table. Add a row every time you pull.
| 2026-05-01 | `af3998c8a` | `21f8027ef` | bcode | Merged upstream release point for v1.14.31 (`sync release versions for v1.14.31` on `dev`). 212 upstream commits across v1.14.27–v1.14.31. Conflicts: `.github/workflows/{deploy,publish}.yml` (kept our deletions per PR #14), `bun.lock` (regenerated), `packages/opencode/package.json` (kept name, bumped to 1.14.31), `packages/opencode/src/agent/agent.ts` (kept browser-sessions whitelist + took upstream's new `Global.Path.tmp` whitelist addition — both go in the same `whitelistedDirs` array), `packages/opencode/src/config/config.ts` (kept `bcode.json/bcode.jsonc` filenames + `bcode.sh` config schema URL; adopted upstream's `mergeConfig` helper pattern, retiring `mergeDeep(pipe(...))` chain), `packages/opencode/src/session/session.ts` (kept `.bcode/plans` rename; adopted upstream's new `(input, instance: InstanceContext)` signature using `instance.project`/`instance.worktree`), `packages/opencode/src/installation/index.ts` (substantial restructure — upstream switched from explicit `Service.of({...})` to `result: Interface = {...}` pattern with self-referential method calls; took upstream verbatim as the base, then re-applied 5 BrowserCode divergences: USER_AGENT prefix, `https://bcode.sh/install` URL, `.bcode/bin` execPath check, BCODE_UPGRADE_DISABLED const, early-return guards in `latest`/`upgrade`/`info`). Yellow-zone audit (7 files: `cli/cmd/tui/app.tsx`, `agent.ts`, `config.ts`, `installation/index.ts`, `session.ts`, `index.ts`, `core/src/global.ts`): customizations preserved (`scriptName("bcode")`, banner, USER_AGENT, `bcode.sh`, `.bcode` paths, `app = "bcode"`). Filtered typecheck: 5/5 passed. PR #29 (v1.14.25) supersedes — close in favor of this PR which covers the same window plus three additional release points. |
| 2026-05-06 | `21f8027ef` | `773078e81` | bcode | Merged upstream release point for v1.14.39 (`sync release versions for v1.14.39` on `dev`). 178 upstream commits across v1.14.32–v1.14.39. **Notable upstream change pulled in:** PR #20039 — `tool/bash.{ts,txt}` renamed to `tool/shell.{ts,txt}` with sub-folder `tool/shell/{id,prompt}.ts`; `Match` predicate switched from string literal `"bash"` to `ShellID.ToolID`. Auto-merge handled the rename inside our session/index.tsx; only the import block needed manual resolution (kept our `BrowserExecuteTool` import, took upstream's `ShellTool` + `ShellID` imports). **CLI Effect-ification:** `cli/cmd/{run,serve,web,agent}.ts` switched from `async (args) => {...}` handlers to `Effect.fn("Cli.<name>")(function* (args) {...})` form (also adds new `instance: false` and `directory: ...` fields to delegate context loading to the framework). Resolved by adopting upstream handler shape verbatim and re-applying our `bcode` brand strings in `describe:` fields. `cli/cmd/agent.ts` also dropped a level of indentation (legacy nested-effect block) and switched from `Instance.worktree`/`AppRuntime.runPromise(Agent.Service.use(...))` to `ctx.worktree`/`Effect.runPromise(agentSvc.generate(...))`; took upstream wholesale, flipped post-merge `.opencode` → `.bcode` (one site). Conflicts: `.github/workflows/publish.yml` (re-deleted per PR #14), `bun.lock` (regenerated), `README.md` (kept our concise replacement, dropped upstream's reintroduced FAQ/Discord block), `packages/opencode/package.json` (kept name, bumped to 1.14.39), `cli/cmd/{agent,run,serve,web}.ts` (Effect-ification + brand strings), `cli/cmd/tui/routes/session/index.tsx` (Bash→Shell import block). Yellow-zone audit (9 files touched upstream: `core/src/global.ts`, `script/build.ts`, `cli/cmd/tui/app.tsx`, `cli/cmd/tui/routes/session/index.tsx`, `config/config.ts`, `plugin/index.ts`, `provider/provider.ts`, `session/session.ts`, `storage/db.ts`): customizations preserved (`app = "bcode"`, banner+title BrowserCode, BC-prefixed session title, `bcode.json/bcode.jsonc/.bcode/`, `bcode.sh` schema URLs, `bcode.db`, `.bcode/plans`, `bcode-<target>` asset name, BrowserExecute renderer, attribution headers `https://bcode.sh/`/`X-Title: bcode`). Filtered typecheck: 5/5 passed in 13.8s. |

| 2026-05-11 | `773078e81` | `fe594693a` | bcode | Merged upstream release point for v1.14.41 (`sync release versions for v1.14.41` on `dev`). 70 upstream commits across v1.14.40–v1.14.41. **Targeted v1.14.41 instead of latest (v1.14.48, 289 commits)** because v1.14.42 lands three sweeping refactors that warrant separate review: PR #24712 native LLM core foundation, PR #24149 scout agent for repo research, OPENCODE_EXPERIMENTAL_WORKSPACES routing changes (workspace fence headers, fixed-id routing, claim detached sessions). Splitting keeps each sync mechanical. **Notable upstream change pulled in:** PR #26054 `well-known/opencode` remote config now supports an external `remote_config` URL with substitution + headers, fetched and merged via the new `substituteWellKnownRemoteConfig` + `mergeConfig` helpers in `config/config.ts`; adopted upstream's new fetch-and-merge body verbatim, kept our `bcode.sh/config.json` default `$schema`. **Agent dir rename `agent/` → `agents/`:** upstream renamed `.opencode/agent/` to `.opencode/agents/` (PR #14427); adopted as `.bcode/agents/` for consistency. Updated `cli/cmd/agent.ts` create-target path and `feature-plugins/home/tips-view.tsx` agent-tip string. Note: `config/agent.ts:129` already accepted both `agent/` and `agents/` glob patterns, so existing `.bcode/agent/` setups keep working. Conflicts: 22 README translation files (`README.{ar,bn,br,bs,da,de,es,fr,gr,it,ja,ko,no,pl,ru,th,tr,uk,vi,zh,zht}.md`) modified by upstream + deleted by us — re-deleted, all 21 README translations purged at fork rebrand stay purged. `.github/workflows/deploy.yml` (re-deleted per PR #14). `bun.lock` (regenerated). `README.md` (kept our concise BrowserCode replacement, dropped upstream's reintroduced desktop-download table — we don't ship a desktop). `packages/opencode/package.json` (kept name, bumped to 1.14.41). `cli/cmd/agent.ts` (took upstream's `.opencode/agents` rename, flipped to `.bcode/agents`). `config/config.ts` (adopted new remote_config logic, kept `bcode.sh` schema URL). Yellow-zone audit (11 files touched upstream: `core/src/global.ts`, `agent.ts`, `cli/cmd/{agent,run,serve,web}.ts`, `cli/cmd/tui/{app.tsx,routes/session/index.tsx}`, `config/config.ts`, `provider/provider.ts`, `session/session.ts`): customizations preserved (`app = "bcode"`, banner+title BC, BrowserCode GitHub link, `bcode.sh` HTTP-Referer/X-Title/X-Source across 8 providers, Cerebras `X-Cerebras-3rd-Party-Integration: bcode`, `.bcode/plans`, `Skills` import, BrowserExecute renderer). Filtered typecheck: 6/6 passed in 8.7s. |

### browser-use/browser-harness → `packages/bcode-browser/harness/`

**Upstream:** https://github.com/browser-use/browser-harness
Expand Down
Loading
Loading