Repository navigation
refactor(desktop): rebrand user-facing text and identifiers to codev - #171
Merged
Merged
Conversation
Every user-visible "OpenCode" the desktop app renders becomes "CoDev Code": crash and unresponsive dialogs, the window title, the updater and CLI-installed i18n strings (en + es, with the CLI-command hint 'opencode' -> 'codev'), the unpackaged app-name fallback, the AppStream metainfo Linux software centres show, the OS deep-link handler name, the README, and package.json identity (upstream homepage/author dropped, as packages/opencode and packages/app carry neither). Codebase identifiers are renamed Opencode -> Codev across the WSL CLI-check code and the deep-link surfaces it shares with packages/app, together with the internal wire values whose producer and consumer both ship from this repo: the virtual:opencode-server module id, the vite plugin names, the wsl-servers-install-opencode IPC channel, the install-opencode job kind, the __OPENCODE__ deep-link bridge global, the opencode:deep-link renderer event, the onboarding temp dir, and the wsl.onboarding.installOpencode* i18n keys. Also fixes a real bug: the debug-log export read server logs from <xdgData>/opencode/log, but the fork CLI writes to <xdgData>/codev/log (core/global.ts app = "codev"), so the export silently collected none. Deliberately preserved: @opencode-ai/* package ids, the ai.opencode.desktop appIds and opencode:// scheme, the publish targets and legacy launcher, the persisted on-disk store names, the basic-auth username (must match the server default), and the ../opencode/dist build paths. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
quickbeard
force-pushed
the
desktop-rebrand-text
branch
from
August 9, 2026 03:02
8fafbf7 to
4089cf0
Compare
The desktop app embeds the packages/app web UI, whose en/es i18n dicts still rendered "OpenCode" in settings descriptions, update toasts, the WSL onboarding flow, the server-switcher dialog, the MCP error, the getting-started sidebar, the provider-connect prompts, and the desktop app name. Rebrand all 28 app-self-reference strings per locale; the i18n keys are untouched (they carry Opencode/opencode, which never match the exact-case OpenCode in the values). Also renames the deep-link bridge window type OpenCodeWindow -> CodevWindow, matching the __CODEV__ global it describes. Deliberately preserved: the hosted-service names "OpenCode Zen" / "OpenCode Go" and the Zen free-models title, plus every opencode.ai URL — the fork routes to those real services, so the text must match where users land. The built-in "OpenCode" theme name is also kept: it names a specific palette and the fork ships its own codev theme alongside it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
quickbeard
force-pushed
the
desktop-rebrand-text
branch
from
August 9, 2026 03:31
751d562 to
65c9092
Compare
quickbeard
added a commit
that referenced
this pull request
Aug 11, 2026
#171 deleted `homepage` and `author` from packages/desktop/package.json as part of the rebrand — correctly, since they pointed at opencode.ai and hello@opencode.ai, and shipping a CoDev package that names upstream as its maintainer would be wrong. Removing them outright broke `deb` and `rpm` packaging, though: electron-builder derives the Debian Maintainer field from `author.email` and refuses to build any fpm target without `homepage`, so `bun run package:linux` has failed since 2026-08-08 with Please specify project homepage It is required to set Linux .deb package maintainer. They are back, carrying fork values rather than upstream ones. Both match what scripts/copy-metainfo.ts already writes into the AppStream metainfo, so the deb and the metainfo now agree instead of one naming a developer the other does not: homepage https://github.com/quickbeard/codev-code (= <url type="homepage">) author CoDev <minhnh49@viettel.com.vn> (= <developer><name>) Nothing else consumes these fields — the app id, product name and artifact names all come from electron-builder.config.ts. Verified by building the deb from this tree with no CLI overrides: exit 0, and `dpkg-deb -f` reports Package codev-code, Maintainer CoDev <minhnh49@viettel.com.vn>, Homepage https://github.com/quickbeard/codev-code. AppImage and the Windows nsis target were never affected — they do not use fpm. The rpm target now gets past metadata and stops on a missing `rpmbuild`, which is a host dependency (apt-get install rpm), not a repo one. Co-authored-by: Quickbeard <quickbeard@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue for this PR
Closes #
Type of change
What does this PR do?
Rebrands the remaining "opencode" in the desktop app (scope limited to
packages/desktopand the WSL/deep-link surfaces it shares withpackages/app), in two passes.User-facing text → "CoDev Code": the window
<title>, the crash / failed-to-load / unresponsive dialogs, the updater and CLI-installed messages in bothenandes(the CLI-command hint now tells users to runcodev, matching the fork's renamed binary), the unpackaged app-name fallback (APP_NAMESwas already branded — only the fallback was missed), the AppStream metainfo that Linux software centres display, the OS deep-link handler name, the README, andpackage.json. Forpackage.jsonI dropped upstream'shomepage/authorrather than inventing fork contact details, becausepackages/opencodeandpackages/appdeclare neither. In the metainfo I dropped thedeveloper id="ly.anoma"attribution and upstream's lander screenshot (it would show opencode branding in the very listing being rebranded), and repointed its three URLs to the fork repo.Codebase identifiers and comments →
Opencode/opencoderenamed toCodev/codev: the WSL CLI-check code (WslOpencodeCheck,resolveWslOpencode,installWslOpencode,checkOpencode,opencodeChecks,wslOpencodeAction, …) and the internal wire values whose producer and consumer both ship from this repo — thevirtual:opencode-servermodule id, the vite plugin names, thewsl-servers-install-opencodeIPC channel, theinstall-opencodejob kind, the__OPENCODE__deep-link bridge global, theopencode:deep-linkrenderer event, the onboarding temp-dir prefix, and thewsl.onboarding.installOpencode*i18n keys. Each wire value was renamed on both sides in the same pass. Two locals named after the product (opencodeholding a resolved CLI path / a list of checked distros) are renamed to what they actually hold.One real bug fixed along the way: the debug-log export collected server logs from
<xdgData>/opencode/log, but the fork CLI writes to<xdgData>/codev/log(packages/core/src/global.ts,app = "codev"), so that directory was always empty and the CLI's logs never made it into the exported archive.Deliberately preserved (identity plumbing / persisted / wire-format that must match a peer): the
@opencode-ai/*package ids, theai.opencode.desktop*appIds and theopencode://scheme +schemes:["opencode"], theowner:"anomalyco"/repo:"opencode"/packageName:"opencode"publish targets and theopencode-desktop.desktoplegacy launcher, the persisted on-disk store names (opencode.settings,opencode.{draft,workspace,global,…}.dat), the basic-auth username"opencode"(it must equal the server's default inpackages/server/src/auth.ts, else auth breaks), and the../opencode/distbuild paths. Comments that quote those identifiers are left intact so they stay accurate.Not touched (out of scope — functional, not branding): the WSL install still curls
https://opencode.ai/installand resolves$HOME/.opencode/bin/opencode. Rebranding those would change behavior, not text; worth a separate look at whether WSL install should target the fork's CLI.DIVERGENCES.mdgets a row covering the rebrand and the full preserved-list;CHANGELOG.mdgets an Unreleased entry.How did you verify your code works?
bun testinpackages/desktop— 63 pass, 0 fail;bun run test:unitinpackages/app— 624 pass, 0 fail. The test that asserts the WSL update-failure message was updated to the rebranded string.bun typecheckclean inpackages/desktopandpackages/app(also the full-workspace typecheck the pre-push hook runs).bun run buildinpackages/desktopsucceeds — this is the real check that the renamedvirtual:opencode-server→virtual:codev-servermodule still resolves through the vite plugin (a typecheck can't catch a module-id mismatch); the 31 MB server chunk is bundled, not stubbed.oxlinton the changed files reports the same 34 warnings as the pre-change baseline (0 introduced);prettier --checkpasses.Screenshots / recordings
No visual change to the running UI in this PR — the rebranded strings are dialogs, the window title, updater/CLI toasts, and the Linux store listing.
Checklist
🤖 Generated with Claude Code