You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
bcode
committed
f7: deeper phone-home / branding sweep
Catches user-visible OpenCode brand strings, OpenCode-product upsells,
and one real phone-home leak that the medium pass deferred.
Per the zone matrix:
- OpenCode -> BrowserCode in user-visible strings only. Internal
identifiers (env vars, Effect service IDs, x-opencode-* headers,
third-party provider User-Agents, OpenCodeHttpApi Effect class,
`opencode` as wire-protocol service name in HttpApi.make) untouched.
- opencode -> bcode in CLI invocations shown to users (tips, toasts,
ACP terminal-auth, MCP auth toast, MCP Client.name).
What changed:
* System prompts: codex / kimi / gpt / beast / copilot-gpt-5 / gemini /
trinity now identify as BrowserCode (was "You are OpenCode"). Same
wording previously applied to anthropic.txt / default.txt: name
BrowserCode first, acknowledge OpenCode lineage, point at the
BrowserCode repo for fork-specific features. anthropic.txt's
objectivity section also reflows from OpenCode -> BrowserCode.
* OpenAPI route descriptions (config, experimental, global, instance,
project, pty, session): 20 sites of "the OpenCode X" -> "the
BrowserCode X". Visible at `GET /doc` and in SDK type descriptions.
* TUI sidebar/footer wordmark: "Open|Code" two-tone branding watermark
-> "Browser|Code". The "Getting started" panel rewritten away from
"OpenCode includes free models".
* TUI tips-view: 14 random-tip strings updated. Renamed `opencode` CLI
invocations to `bcode`, replaced upstream config-path examples
(`~/.config/opencode/tui.json`, `opencode.json`) with bcode-flavored
paths. Removed: tips advertising `docker run ghcr.io/anomalyco/opencode`,
`/opencode` GitHub commands, and the "/connect with OpenCode Zen"
recommendation (we don't earn upsells from OpenCode and shouldn't
steer users to them by default).
* TUI permission dialogs (both TUI and non-TUI `bcode run` paths):
"until OpenCode is restarted" -> "until BrowserCode is restarted";
"Tell OpenCode what to do differently" -> "BrowserCode".
* OAuth callback HTML pages (mcp/oauth-callback.ts + plugin/codex.ts):
titles + body text say BrowserCode. Visible in the user's browser
after an MCP-server or Codex provider auth flow.
* MCP wire identity: Client({ name: "opencode" }) -> "bcode" (3 sites
in mcp/index.ts) so MCP servers see us as bcode in client-handshake
logs; client_name: "OpenCode" -> "BrowserCode" in oauth-provider.ts
(visible on third-party OAuth consent screens); toast "Run: opencode
mcp auth ..." -> `bcode mcp auth`; the `cmd === "opencode"` BUN_BE_BUN
check now matches both "bcode" and "opencode" so user MCP configs
invoking either binary work.
* ACP agent identity (acp/agent.ts): agentInfo.name and terminal-auth
command/label updated. ACP clients like Zed display the BrowserCode
name and invoke `bcode auth login` for terminal auth.
* TUI app.tsx "Successfully updated to OpenCode v..." -> "BrowserCode
v...". Visible after `bcode upgrade`.
* `bcode models` provider sort: removed the `a.startsWith("opencode")`
boost that put OpenCode's providers first. Now plain alphabetical.
* `bcode providers login` (= `bcode auth login`): dropped the
`opencode: 0` priority bias and the `opencode: "recommended"` hint
in the provider picker. "Configure it in opencode.json" prose in two
amazon-bedrock / generic-credential prompt blocks -> "bcode.json".
Positional-arg description "opencode auth provider" -> "well-known
auth provider URL".
* Phone-home removed: server/shared/ui.ts previously fell back to
proxying every web UI request to https://app.opencode.ai when the
embedded UI bundle was missing (dev or OPENCODE_DISABLE_EMBEDDED_WEB_UI).
BrowserCode now 404s in that case. Removed: UI_UPSTREAM, upstreamURL,
requestBody, proxyResponseHeaders, and the HTTP proxy code path.
`services.client` is kept in the function signature so the router
call-site doesn't need to change on every sync.
* repo_clone tool description + /init command template now say
BrowserCode; agent.ts reference-scout prompt's "OpenCode materializes
this configured repository" -> "BrowserCode".
* session/retry.ts: the FreeUsageLimitError upsell message stops saying
"Subscribe to OpenCode Go ... $5/month"; replaced with a neutral
"Free usage limit reached on this provider." sentinel. GO_UPSELL_URL
stays empty so the TUI DialogRetryAction GO-treatment path stays dark
(unchanged behavior, just wording).
* PWA manifest (ui/src/assets/favicon/site.webmanifest, symlinked from
app/public/site.webmanifest): name + short_name -> BrowserCode.
Picked up when the web UI is rebuilt (we don't currently rebuild;
this is for the eventual upstream-side rebuild).
* config.ts deprecation log "tui keys in opencode config are deprecated"
-> "in bcode config". "Server configuration for opencode serve" ->
"bcode serve".
Deliberately NOT changed:
* @opencode-ai/* workspace package names — Red zone.
* @opencode/... Effect service IDs — Red zone.
* x-opencode-* HTTP headers — Red zone (wire protocol).
* OPENCODE_* env vars — Red zone (user-configurable interface).
* --user-agent=opencode/... for third-party provider compat — Red.
* HttpApi.make("opencode") service name + OpenCodeHttpApi Effect class
— wire-protocol service name registered on the router; renaming
would fork the entire HTTP API namespace.
* .well-known/opencode remote-config-server endpoint — wire protocol;
third-party servers serve config at this conventionally-named path.
Renaming would break interop with anyone running OpenCode-style
remote-config servers.
* opencode.ai/zen, opencode.ai/go upsell URLs inside dialog-provider
Zen/Go connect dialogs — only shown when user explicitly picks
OpenCode as a provider; in that path they need the URL to get a key.
* dialog-retry-action.tsx GO_URL constant — already neutralized at the
message level via empty GO_UPSELL_URL; dead code.
* acp/README.md, control-plane/dev/README.md — dev docs, not bundled.
* Renaming default theme opencode.json -> bcode.json and channel-DB
filename opencode-{channel}.db -> bcode-{channel}.db — deferred.
Theme rename cascades through ~6 theme.tsx sites and breaks users'
`tui.json` `"theme": "opencode"`; channel db only fires for
non-`latest` channels we don't ship. Both increase sync conflict
surface for little user-facing payoff.
Verification:
* `bun run typecheck` 6/6 clean (16.3s).
* Single-platform build at OPENCODE_VERSION=0.1.3-f7-deeper-dryrun
succeeds; `./bcode --help` boots, renders BrowserCode banner, lists
commands as `bcode <cmd>`.
`OpenCode materializes this configured repository before use. Do not call repo_clone for this reference.`,
351
+
`BrowserCode materializes this configured repository before use. Do not call repo_clone for this reference.`,
352
352
`Inspect the cached directory as the primary reference source. Prefer repo_overview with path ${JSON.stringify(reference.path)} before broader searches, then use Glob, Grep, and Read inside that directory. Do not edit files.`,
353
353
`Return exact absolute file paths for findings whenever possible.`,
0 commit comments