From 972ad840c6190d404812a6b8fc1afa17e01c5cfc Mon Sep 17 00:00:00 2001 From: minhn4 Date: Thu, 30 Jul 2026 17:22:15 +0700 Subject: [PATCH 1/3] fix: follow the landing-page base-path rename to /codev The CoDev site is moving from /codev-landing-page to /codev (codev-landing-page#35; hub PR #207 is the same change on the hub side). Update every hard-coded URL under that base: the SSO LOGIN_SUCCESS_URL redirect and the browser-opened docs links in the TUI, desktop app, and CLI. DIVERGENCES.md docs-base references updated to match; sso tests reference LOGIN_SUCCESS_URL symbolically and track the new value automatically. Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 11 +++++++++++ DIVERGENCES.md | 4 ++-- .../app/src/components/dialog-custom-provider.tsx | 2 +- packages/app/src/components/settings-general.tsx | 2 +- packages/app/src/components/settings-v2/general.tsx | 2 +- packages/app/src/desktop-menu.ts | 2 +- packages/app/src/pages/home.tsx | 4 ++-- packages/app/src/pages/layout.tsx | 2 +- packages/codev-gateway/src/const.ts | 2 +- packages/opencode/src/cli/cmd/github.handler.ts | 2 +- packages/opencode/src/cli/cmd/providers.ts | 2 +- packages/tui/src/app.tsx | 2 +- 12 files changed, 24 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09e91443de..00eaad125b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ file is the human-readable summary of what changed and why. ## Unreleased +### Links + +- **Docs and login URLs follow the landing page's move to `/codev`** — the + CoDev site is moving from `netmind.viettel.vn/codev-landing-page` to + `netmind.viettel.vn/codev` (codev-landing-page#35, same change as CoDev Hub + PR #207). Every URL this repo hard-codes under that base moved with it: the + SSO login success redirect (`…/codev/oauth/success`) and the docs links the + TUI, desktop app, and CLI open in the browser (`…/codev/en/docs/…`). Must + ship together with the landing-page and reverse-proxy changes — against an + old deployment these URLs 404. + ### TUI - **No more duplicated agent · model line** — the trailer under the last diff --git a/DIVERGENCES.md b/DIVERGENCES.md index ccdfc1e5c6..7d9a0947e5 100644 --- a/DIVERGENCES.md +++ b/DIVERGENCES.md @@ -131,7 +131,7 @@ from the squash message first, or use a plain merge. | `packages/app/src/assets/help/` (introducing-tabs.mp4, placeholder.png, home.png, tabs.png — whole directory) | Deleted | The 13 MB promo video's and the v1.18 home/tabs screenshots' only consumer was the removed `TabsInfoPopup` (row above) and they bloat every clone; `placeholder.png` is referenced by nothing. | Keep deleted (`git rm` the upstream side of modify/delete conflicts); delete new upstream assets under this directory whose only consumer is the removed popup. | | `packages/app/src/desktop-menu.ts`, `packages/app/src/components/windows-app-menu.tsx` | App-menu label "OpenCode" → "CoDev Code"; "OpenCode Documentation" item → "CoDev Code Documentation" (href `opencode.ai/docs` stays — real URL); trigger `aria-label` "OpenCode menu" → "CoDev Code menu" (×2) | Visible menu branding, incl. screen-reader labels. | Keep our labels; take upstream's surrounding menu changes. Rebrand any new "OpenCode" label/aria-label. | | Hardcoded product-string rebrand in TUI + web app: `packages/tui/src/app.tsx`, `packages/tui/src/routes/session/permission.tsx`, `packages/tui/src/attention.ts` (+ `packages/opencode/test/cli/cmd/tui/attention.test.ts`), `packages/app/src/wsl/settings-model.ts` (+ `.test.ts`), `packages/ui/src/components/favicon.tsx` | User-visible "OpenCode" strings outside the i18n dicts → fork brand: update-complete toast "Successfully updated to OpenCode v…" → "CoDev Code"; permission dialog "…until OpenCode is restarted" → "CoDev Code" (the sibling patterns line was already rebranded); OS-notification fallback title `opencode` → `codev` and built-in sound-pack display name "OpenCode Default" → "CoDev Code Default" (pack id `opencode.default` stays — internal identifier; the three default-title expectations in `packages/opencode/test/cli/cmd/tui/attention.test.ts` follow, while its explicit-title pass-through fixture stays `opencode`); WSL settings actions "Install/Update OpenCode" → "…CoDev Code" (+ test expectations/titles; fixture paths `/usr/local/bin/opencode` stay); PWA `apple-mobile-web-app-title` "OpenCode" → "CoDev Code" (matches the rebranded `site.webmanifest`, favicon-assets row) | These render in surfaces the fork ships (TUI + embedded web UI); the i18n-dict strings remain a known gap (UI branding bullet below). | Keep our strings; take upstream's surrounding changes. Rebrand any new hardcoded user-visible "OpenCode" string in these surfaces; leave identifiers, URLs, and fixture paths. | -| Browser-opened docs-site links: `packages/tui/src/app.tsx`, `packages/app/src/desktop-menu.ts`, `packages/app/src/components/{settings-general,settings-v2/general,dialog-custom-provider}.tsx`, `packages/app/src/pages/{home,layout,error}.tsx`, `packages/app/src/i18n/{en,es}.ts`, `packages/opencode/src/cli/cmd/providers.ts` | Links the app opens in the user's browser repointed from `opencode.ai` to the fork's hosted docs, base `https://netmind.viettel.vn/codev-landing-page/en/docs` (no trailing slash on the root; deep links keep their paths): TUI "Open docs" command and app Documentation menu item → docs root; settings theme "Learn more" (v1 + v2) → `…/docs/themes/`; custom-provider dialog link → `…/docs/providers/#custom-provider`; CLI Cloudflare-gateway hint → `…/docs/providers/#cloudflare-ai-gateway`; home/layout sidebar Help buttons `opencode.ai/desktop-feedback` → docs root. The error page's report button `opencode.ai/desktop-feedback` → `github.com/quickbeard/codev-code/issues` instead (it's a report action, not a docs lookup), icon `discord` → `github`, and the en/es `error.page.report.*` strings → "…CoDev Code team" / "on GitHub". Help submenu (rendered by the shipped web UI's Windows app menu too): "Support Forum" (upstream Discord invite) deleted — the fork has no forum; "Share Feedback"/"Report a Bug" → `github.com/quickbeard/codev-code/issues/new?template=feature-request.yml`/`bug-report.yml` (the fork's template names are hyphenated, unlike upstream's underscored ones). | Fork users should land on the fork's docs and report issues to the fork, not upstream's site/Discord. NOT repointed: Zen/Go product URLs (`opencode.ai/zen`, `/go`, `/auth`), `$schema`/theme-schema ids, API/share/changelog endpoints, MCP OAuth `client_uri`, prompt-file mentions. | Keep our URLs, icon, and strings; take upstream's surrounding changes. Repoint any new browser-opened `opencode.ai` docs/help link to the fork docs base; leave the NOT-repointed list. | +| Browser-opened docs-site links: `packages/tui/src/app.tsx`, `packages/app/src/desktop-menu.ts`, `packages/app/src/components/{settings-general,settings-v2/general,dialog-custom-provider}.tsx`, `packages/app/src/pages/{home,layout,error}.tsx`, `packages/app/src/i18n/{en,es}.ts`, `packages/opencode/src/cli/cmd/providers.ts` | Links the app opens in the user's browser repointed from `opencode.ai` to the fork's hosted docs, base `https://netmind.viettel.vn/codev/en/docs` (no trailing slash on the root; deep links keep their paths): TUI "Open docs" command and app Documentation menu item → docs root; settings theme "Learn more" (v1 + v2) → `…/docs/themes/`; custom-provider dialog link → `…/docs/providers/#custom-provider`; CLI Cloudflare-gateway hint → `…/docs/providers/#cloudflare-ai-gateway`; home/layout sidebar Help buttons `opencode.ai/desktop-feedback` → docs root. The error page's report button `opencode.ai/desktop-feedback` → `github.com/quickbeard/codev-code/issues` instead (it's a report action, not a docs lookup), icon `discord` → `github`, and the en/es `error.page.report.*` strings → "…CoDev Code team" / "on GitHub". Help submenu (rendered by the shipped web UI's Windows app menu too): "Support Forum" (upstream Discord invite) deleted — the fork has no forum; "Share Feedback"/"Report a Bug" → `github.com/quickbeard/codev-code/issues/new?template=feature-request.yml`/`bug-report.yml` (the fork's template names are hyphenated, unlike upstream's underscored ones). | Fork users should land on the fork's docs and report issues to the fork, not upstream's site/Discord. NOT repointed: Zen/Go product URLs (`opencode.ai/zen`, `/go`, `/auth`), `$schema`/theme-schema ids, API/share/changelog endpoints, MCP OAuth `client_uri`, prompt-file mentions. | Keep our URLs, icon, and strings; take upstream's surrounding changes. Repoint any new browser-opened `opencode.ai` docs/help link to the fork docs base; leave the NOT-repointed list. | | `packages/desktop/src/main/index.ts`, `packages/desktop/src/main/windows.ts` | APP_NAMES + window title → "CoDev Code" (Dev/Beta variants too) | Desktop app display name. | Keep our names. | | `packages/desktop/electron-builder.config.ts` | `productName` ×3 → "CoDev Code…"; artifactName → `codev-code-desktop-…`; protocol display name | Installer/product branding. appId (`ai.opencode.desktop`) and the `opencode://` deep-link scheme stay upstream — identity plumbing wired into main/index.ts and app deep-links; do not rename casually. | Keep our names; take upstream's other config. | | `packages/ui/src/assets/favicon/` (favicon-v3.svg, site.webmanifest, favicon-96x96-v3.png, apple-touch-icon-v3.png, web-app-manifest-192/512.png) | New codev mark: blocky "C" in #00cdcd on dark; manifest name "CoDev Code"/"codev" | Web/desktop favicon + PWA branding (served via packages/app/public symlinks). | Keep our assets (binary: take ours wholesale). | @@ -181,7 +181,7 @@ from the squash message first, or use a plain merge. `ai.opencode.desktop` appId / `opencode://` scheme (identity plumbing wired into deep-link handling). - **URLs**: links the app opens in the browser point at the fork — docs at - `https://netmind.viettel.vn/codev-landing-page/en/docs` (root takes no trailing slash; + `https://netmind.viettel.vn/codev/en/docs` (root takes no trailing slash; deep links keep their paths) and issue reports at `github.com/quickbeard/codev-code/issues` (see the docs-site links table row). Still upstream, deliberately: Zen/Go product URLs (`opencode.ai/zen`, `/go`, `/auth` — external products), `$schema`/`theme.json`/ diff --git a/packages/app/src/components/dialog-custom-provider.tsx b/packages/app/src/components/dialog-custom-provider.tsx index fabc8491ae..95ba8a5f45 100644 --- a/packages/app/src/components/dialog-custom-provider.tsx +++ b/packages/app/src/components/dialog-custom-provider.tsx @@ -184,7 +184,7 @@ export function CustomProviderForm(props: { autofocus?: boolean } = {}) {

{language.t("provider.custom.description.prefix")} - + {language.t("provider.custom.description.link")} {language.t("provider.custom.description.suffix")} diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx index d557141e35..29e1c8a768 100644 --- a/packages/app/src/components/settings-general.tsx +++ b/packages/app/src/components/settings-general.tsx @@ -479,7 +479,7 @@ export const SettingsGeneral: Component = () => { description={ <> {language.t("settings.general.row.theme.description")}{" "} - {language.t("common.learnMore")} + {language.t("common.learnMore")} } > diff --git a/packages/app/src/components/settings-v2/general.tsx b/packages/app/src/components/settings-v2/general.tsx index 89a8bd445b..403110a7f0 100644 --- a/packages/app/src/components/settings-v2/general.tsx +++ b/packages/app/src/components/settings-v2/general.tsx @@ -438,7 +438,7 @@ export const SettingsGeneralV2: Component<{ description={ <> {language.t("settings.general.row.theme.description")}{" "} - + {language.t("common.learnMore")} diff --git a/packages/app/src/desktop-menu.ts b/packages/app/src/desktop-menu.ts index 50d6919ef3..1709dd88c4 100644 --- a/packages/app/src/desktop-menu.ts +++ b/packages/app/src/desktop-menu.ts @@ -200,7 +200,7 @@ export const DESKTOP_MENU: DesktopMenu[] = [ id: "help", label: "Help", items: [ - { type: "item", label: "CoDev Code Documentation", href: "https://netmind.viettel.vn/codev-landing-page/en/docs" }, + { type: "item", label: "CoDev Code Documentation", href: "https://netmind.viettel.vn/codev/en/docs" }, { type: "item", label: "Export Logs...", command: "logs.export" }, { type: "separator" }, { diff --git a/packages/app/src/pages/home.tsx b/packages/app/src/pages/home.tsx index 811aefb2a3..515d04fe4d 100644 --- a/packages/app/src/pages/home.tsx +++ b/packages/app/src/pages/home.tsx @@ -673,7 +673,7 @@ export function NewHome() { clearNotifications={clearNotifications} unseenCount={unseenCount} openSettings={openSettings} - openHelp={() => platform.openLink("https://netmind.viettel.vn/codev-landing-page/en/docs")} + openHelp={() => platform.openLink("https://netmind.viettel.vn/codev/en/docs")} language={language} onWheel={(event) => { if (sessionViewport) containHomeWheel(event, sessionViewport) @@ -780,7 +780,7 @@ export function NewHome() { platform.openLink("https://netmind.viettel.vn/codev-landing-page/en/docs")} + openHelp={() => platform.openLink("https://netmind.viettel.vn/codev/en/docs")} language={language} /> diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx index 9793749d67..18a97ae3b4 100644 --- a/packages/app/src/pages/layout.tsx +++ b/packages/app/src/pages/layout.tsx @@ -2238,7 +2238,7 @@ export default function LegacyLayout(props: ParentProps) { settingsKeybind={() => command.keybind("settings.open")} onOpenSettings={openSettings} helpLabel={() => language.t("sidebar.help")} - onOpenHelp={() => platform.openLink("https://netmind.viettel.vn/codev-landing-page/en/docs")} + onOpenHelp={() => platform.openLink("https://netmind.viettel.vn/codev/en/docs")} renderPanel={() => mobile ? : } diff --git a/packages/codev-gateway/src/const.ts b/packages/codev-gateway/src/const.ts index 50e990507c..ac634866ce 100644 --- a/packages/codev-gateway/src/const.ts +++ b/packages/codev-gateway/src/const.ts @@ -4,7 +4,7 @@ const BASE_URL = atob("aHR0cHM6Ly9uZXRtaW5kLnZpZXR0ZWwudm4=") export const BACKEND_URL = `${BASE_URL}/codev-backend` export const SSO_URL = `${BASE_URL}/sso-wrapper` -export const LOGIN_SUCCESS_URL = `${BASE_URL}/codev-landing-page/oauth/success` +export const LOGIN_SUCCESS_URL = `${BASE_URL}/codev/oauth/success` export const CLIENT_ID = atob("bGl0ZWxsbS10ZXN0") diff --git a/packages/opencode/src/cli/cmd/github.handler.ts b/packages/opencode/src/cli/cmd/github.handler.ts index 4fe19154e2..3c18363bb5 100644 --- a/packages/opencode/src/cli/cmd/github.handler.ts +++ b/packages/opencode/src/cli/cmd/github.handler.ts @@ -198,7 +198,7 @@ export const githubInstall = Effect.fn("Cli.github.install")(function* () { "", " 3. Go to a GitHub issue and comment `/codev summarize` to see the agent in action", "", - " Learn more about the GitHub agent - https://netmind.viettel.vn/codev-landing-page/en/docs/code/github", + " Learn more about the GitHub agent - https://netmind.viettel.vn/codev/en/docs/code/github", ].join("\n"), ) } diff --git a/packages/opencode/src/cli/cmd/providers.ts b/packages/opencode/src/cli/cmd/providers.ts index 5a24b35b0c..814af8676d 100644 --- a/packages/opencode/src/cli/cmd/providers.ts +++ b/packages/opencode/src/cli/cmd/providers.ts @@ -476,7 +476,7 @@ export const ProvidersLoginCommand = effectCmd({ if (["cloudflare", "cloudflare-ai-gateway"].includes(provider)) { yield* Prompt.log.info( - "Cloudflare AI Gateway can be configured with CLOUDFLARE_GATEWAY_ID, CLOUDFLARE_ACCOUNT_ID, and CLOUDFLARE_API_TOKEN environment variables. Read more: https://netmind.viettel.vn/codev-landing-page/en/docs/providers/#cloudflare-ai-gateway", + "Cloudflare AI Gateway can be configured with CLOUDFLARE_GATEWAY_ID, CLOUDFLARE_ACCOUNT_ID, and CLOUDFLARE_API_TOKEN environment variables. Read more: https://netmind.viettel.vn/codev/en/docs/providers/#cloudflare-ai-gateway", ) } diff --git a/packages/tui/src/app.tsx b/packages/tui/src/app.tsx index f46aea824b..f396ddf744 100644 --- a/packages/tui/src/app.tsx +++ b/packages/tui/src/app.tsx @@ -943,7 +943,7 @@ function App(props: { onSnapshot?: () => Promise; pluginHost: TuiPlugi name: "docs.open", title: "Open docs", run: () => { - open("https://netmind.viettel.vn/codev-landing-page/en/docs").catch(() => {}) + open("https://netmind.viettel.vn/codev/en/docs").catch(() => {}) dialog.clear() }, category: "System", From 20553e3a2ff33a26eaff03a377e9e0fa24b906e7 Mon Sep 17 00:00:00 2001 From: minhn4 Date: Thu, 30 Jul 2026 17:25:32 +0700 Subject: [PATCH 2/3] fix: drop the locale segment from the hosted docs URLs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The docs base is netmind.viettel.vn/codev/docs, not /codev/en/docs — update the browser-opened docs links and the DIVERGENCES/CHANGELOG references recording the base. Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 2 +- DIVERGENCES.md | 6 +++--- packages/app/src/components/dialog-custom-provider.tsx | 2 +- packages/app/src/components/settings-general.tsx | 2 +- packages/app/src/components/settings-v2/general.tsx | 2 +- packages/app/src/desktop-menu.ts | 2 +- packages/app/src/pages/home.tsx | 4 ++-- packages/app/src/pages/layout.tsx | 2 +- packages/opencode/src/cli/cmd/github.handler.ts | 2 +- packages/opencode/src/cli/cmd/providers.ts | 2 +- packages/tui/src/app.tsx | 2 +- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00eaad125b..e800f694de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ file is the human-readable summary of what changed and why. `netmind.viettel.vn/codev` (codev-landing-page#35, same change as CoDev Hub PR #207). Every URL this repo hard-codes under that base moved with it: the SSO login success redirect (`…/codev/oauth/success`) and the docs links the - TUI, desktop app, and CLI open in the browser (`…/codev/en/docs/…`). Must + TUI, desktop app, and CLI open in the browser (`…/codev/docs/…`). Must ship together with the landing-page and reverse-proxy changes — against an old deployment these URLs 404. diff --git a/DIVERGENCES.md b/DIVERGENCES.md index 7d9a0947e5..91fa67e441 100644 --- a/DIVERGENCES.md +++ b/DIVERGENCES.md @@ -131,7 +131,7 @@ from the squash message first, or use a plain merge. | `packages/app/src/assets/help/` (introducing-tabs.mp4, placeholder.png, home.png, tabs.png — whole directory) | Deleted | The 13 MB promo video's and the v1.18 home/tabs screenshots' only consumer was the removed `TabsInfoPopup` (row above) and they bloat every clone; `placeholder.png` is referenced by nothing. | Keep deleted (`git rm` the upstream side of modify/delete conflicts); delete new upstream assets under this directory whose only consumer is the removed popup. | | `packages/app/src/desktop-menu.ts`, `packages/app/src/components/windows-app-menu.tsx` | App-menu label "OpenCode" → "CoDev Code"; "OpenCode Documentation" item → "CoDev Code Documentation" (href `opencode.ai/docs` stays — real URL); trigger `aria-label` "OpenCode menu" → "CoDev Code menu" (×2) | Visible menu branding, incl. screen-reader labels. | Keep our labels; take upstream's surrounding menu changes. Rebrand any new "OpenCode" label/aria-label. | | Hardcoded product-string rebrand in TUI + web app: `packages/tui/src/app.tsx`, `packages/tui/src/routes/session/permission.tsx`, `packages/tui/src/attention.ts` (+ `packages/opencode/test/cli/cmd/tui/attention.test.ts`), `packages/app/src/wsl/settings-model.ts` (+ `.test.ts`), `packages/ui/src/components/favicon.tsx` | User-visible "OpenCode" strings outside the i18n dicts → fork brand: update-complete toast "Successfully updated to OpenCode v…" → "CoDev Code"; permission dialog "…until OpenCode is restarted" → "CoDev Code" (the sibling patterns line was already rebranded); OS-notification fallback title `opencode` → `codev` and built-in sound-pack display name "OpenCode Default" → "CoDev Code Default" (pack id `opencode.default` stays — internal identifier; the three default-title expectations in `packages/opencode/test/cli/cmd/tui/attention.test.ts` follow, while its explicit-title pass-through fixture stays `opencode`); WSL settings actions "Install/Update OpenCode" → "…CoDev Code" (+ test expectations/titles; fixture paths `/usr/local/bin/opencode` stay); PWA `apple-mobile-web-app-title` "OpenCode" → "CoDev Code" (matches the rebranded `site.webmanifest`, favicon-assets row) | These render in surfaces the fork ships (TUI + embedded web UI); the i18n-dict strings remain a known gap (UI branding bullet below). | Keep our strings; take upstream's surrounding changes. Rebrand any new hardcoded user-visible "OpenCode" string in these surfaces; leave identifiers, URLs, and fixture paths. | -| Browser-opened docs-site links: `packages/tui/src/app.tsx`, `packages/app/src/desktop-menu.ts`, `packages/app/src/components/{settings-general,settings-v2/general,dialog-custom-provider}.tsx`, `packages/app/src/pages/{home,layout,error}.tsx`, `packages/app/src/i18n/{en,es}.ts`, `packages/opencode/src/cli/cmd/providers.ts` | Links the app opens in the user's browser repointed from `opencode.ai` to the fork's hosted docs, base `https://netmind.viettel.vn/codev/en/docs` (no trailing slash on the root; deep links keep their paths): TUI "Open docs" command and app Documentation menu item → docs root; settings theme "Learn more" (v1 + v2) → `…/docs/themes/`; custom-provider dialog link → `…/docs/providers/#custom-provider`; CLI Cloudflare-gateway hint → `…/docs/providers/#cloudflare-ai-gateway`; home/layout sidebar Help buttons `opencode.ai/desktop-feedback` → docs root. The error page's report button `opencode.ai/desktop-feedback` → `github.com/quickbeard/codev-code/issues` instead (it's a report action, not a docs lookup), icon `discord` → `github`, and the en/es `error.page.report.*` strings → "…CoDev Code team" / "on GitHub". Help submenu (rendered by the shipped web UI's Windows app menu too): "Support Forum" (upstream Discord invite) deleted — the fork has no forum; "Share Feedback"/"Report a Bug" → `github.com/quickbeard/codev-code/issues/new?template=feature-request.yml`/`bug-report.yml` (the fork's template names are hyphenated, unlike upstream's underscored ones). | Fork users should land on the fork's docs and report issues to the fork, not upstream's site/Discord. NOT repointed: Zen/Go product URLs (`opencode.ai/zen`, `/go`, `/auth`), `$schema`/theme-schema ids, API/share/changelog endpoints, MCP OAuth `client_uri`, prompt-file mentions. | Keep our URLs, icon, and strings; take upstream's surrounding changes. Repoint any new browser-opened `opencode.ai` docs/help link to the fork docs base; leave the NOT-repointed list. | +| Browser-opened docs-site links: `packages/tui/src/app.tsx`, `packages/app/src/desktop-menu.ts`, `packages/app/src/components/{settings-general,settings-v2/general,dialog-custom-provider}.tsx`, `packages/app/src/pages/{home,layout,error}.tsx`, `packages/app/src/i18n/{en,es}.ts`, `packages/opencode/src/cli/cmd/providers.ts` | Links the app opens in the user's browser repointed from `opencode.ai` to the fork's hosted docs, base `https://netmind.viettel.vn/codev/docs` (no trailing slash on the root; deep links keep their paths): TUI "Open docs" command and app Documentation menu item → docs root; settings theme "Learn more" (v1 + v2) → `…/docs/themes/`; custom-provider dialog link → `…/docs/providers/#custom-provider`; CLI Cloudflare-gateway hint → `…/docs/providers/#cloudflare-ai-gateway`; home/layout sidebar Help buttons `opencode.ai/desktop-feedback` → docs root. The error page's report button `opencode.ai/desktop-feedback` → `github.com/quickbeard/codev-code/issues` instead (it's a report action, not a docs lookup), icon `discord` → `github`, and the en/es `error.page.report.*` strings → "…CoDev Code team" / "on GitHub". Help submenu (rendered by the shipped web UI's Windows app menu too): "Support Forum" (upstream Discord invite) deleted — the fork has no forum; "Share Feedback"/"Report a Bug" → `github.com/quickbeard/codev-code/issues/new?template=feature-request.yml`/`bug-report.yml` (the fork's template names are hyphenated, unlike upstream's underscored ones). | Fork users should land on the fork's docs and report issues to the fork, not upstream's site/Discord. NOT repointed: Zen/Go product URLs (`opencode.ai/zen`, `/go`, `/auth`), `$schema`/theme-schema ids, API/share/changelog endpoints, MCP OAuth `client_uri`, prompt-file mentions. | Keep our URLs, icon, and strings; take upstream's surrounding changes. Repoint any new browser-opened `opencode.ai` docs/help link to the fork docs base; leave the NOT-repointed list. | | `packages/desktop/src/main/index.ts`, `packages/desktop/src/main/windows.ts` | APP_NAMES + window title → "CoDev Code" (Dev/Beta variants too) | Desktop app display name. | Keep our names. | | `packages/desktop/electron-builder.config.ts` | `productName` ×3 → "CoDev Code…"; artifactName → `codev-code-desktop-…`; protocol display name | Installer/product branding. appId (`ai.opencode.desktop`) and the `opencode://` deep-link scheme stay upstream — identity plumbing wired into main/index.ts and app deep-links; do not rename casually. | Keep our names; take upstream's other config. | | `packages/ui/src/assets/favicon/` (favicon-v3.svg, site.webmanifest, favicon-96x96-v3.png, apple-touch-icon-v3.png, web-app-manifest-192/512.png) | New codev mark: blocky "C" in #00cdcd on dark; manifest name "CoDev Code"/"codev" | Web/desktop favicon + PWA branding (served via packages/app/public symlinks). | Keep our assets (binary: take ours wholesale). | @@ -146,7 +146,7 @@ from the squash message first, or use a plain merge. | `artifacts/` (whole directory) | Deleted | Upstream's Remotion marketing-video project (`glm52-rise-video`) with rendered MP4/PNG binaries committed; irrelevant to the fork and bloats every clone. | Keep deleted (`git rm` the upstream side of modify/delete conflicts); delete new upstream additions under `artifacts/` too. | | `packages/web/` + `packages/docs/` (whole directories) | Deleted | The Astro/Starlight docs site — which also carried upstream's marketing lander and the `/s/` share viewer, neither deployed by the fork — and an untouched Mintlify starter kit that nothing referenced. The fork's user-facing docs live in the [codev-landing-page](https://github.com/quickbeard/codev-landing-page) repo (`content/docs/code`), which every in-app docs link already points at (see the browser-opened docs-links row). The `sst.cloudflare.x.Astro("Web")` block in `infra/app.ts` was removed with it. | Keep deleted (`git rm` the upstream side of modify/delete conflicts); delete any new upstream files under these directories too. | | `github/` (whole directory) | Deleted — `action.yml` was a composite action living in this repo, so `uses: quickbeard/codev-code/github@main` resolved for nobody outside it; its only job was installing the public `codev-code` npm package and running `codev github run`, which the documented workflow now does inline (see the `github.handler.ts` row). With the action gone the rest of the directory was orphaned: `index.ts` was a standalone duplicate of the `githubRun` logic that `action.yml` never invoked, and the package was not a member of the root `workspaces` list, so nothing built, tested, or imported it. `README.md` content now lives in the fork's docs at `content/docs/code/{en,vi}/github.mdx` in [codev-landing-page](https://github.com/quickbeard/codev-landing-page) | The fork's repo is private and owned by a user account, not an org, so GitHub cannot share an action in it with any other repository — every user who copied the documented workflow hit "repository not found" on their first run. The npm package is public, so inlining the steps is the only distribution path that works, and it leaves the whole directory dead. The fork has no GitHub App and its share service defaults off (config.ts row), so sharing defaults off here too | Keep deleted (`git rm` the upstream side of modify/delete conflicts); delete new upstream additions under `github/` too. If this repo ever goes public and the action is worth restoring, restore `action.yml` only and re-point the docs. | -| `packages/opencode/src/cli/cmd/github.handler.ts` | CLI side of the GitHub integration rebranded to match `github/` (row above). `githubRun`: `MENTIONS` default `/opencode,/oc` → `/codev`, generated branches `opencode/*` → `codev/*`, comment footer `[opencode session]` → `[codev session]`, visible log/prompt strings "opencode" → "codev", and `USE_GITHUB_TOKEN` defaults to **true** when unset (upstream returns false). `githubInstall`: no longer installs upstream's GitHub App (browser flow + `api.opencode.ai` install poll removed); scaffolds `.github/workflows/codev.yml` (was `opencode.yml`) triggering on `/codev` with `contents`/`issues`/`pull-requests: write` permissions, an `npm install -g codev-code` step and a `codev github run` step carrying `GITHUB_TOKEN` and `MODEL` in `env` — no `uses:`, see the `github/` row; next-steps text says `/codev summarize` and links the fork's hosted docs at `/en/docs/code/github` (the `github/` README it used to link is deleted). | The trigger phrase, branches, footer, and scaffolded workflow are user-facing. The fork has no GitHub App to install, so OIDC token exchange can never succeed here: `USE_GITHUB_TOKEN` must default true, or an unset variable sends users down the exchange path and fails asking for `id-token: write`. Upstream's false default was masked while the composite action passed the input explicitly; deleting the action exposed it. NOT renamed: `AGENT_USERNAME` `opencode-agent[bot]` (upstream App bot identity, used for reaction cleanup in the app-token path), `api.opencode.ai` exchange endpoints, the `opencode-github-action` OIDC audience, `opencode.ai` share URLs, and the social-cards URL. | Keep our trigger/branch/footer strings, the app-less install flow, the `USE_GITHUB_TOKEN` true default, and the actionless scaffold; take upstream's surrounding logic changes. If upstream adds new user-facing "opencode" strings or workflow scaffold changes, rebrand them the same way; never let a scaffold change reintroduce `uses: quickbeard/codev-code/github@main`. | +| `packages/opencode/src/cli/cmd/github.handler.ts` | CLI side of the GitHub integration rebranded to match `github/` (row above). `githubRun`: `MENTIONS` default `/opencode,/oc` → `/codev`, generated branches `opencode/*` → `codev/*`, comment footer `[opencode session]` → `[codev session]`, visible log/prompt strings "opencode" → "codev", and `USE_GITHUB_TOKEN` defaults to **true** when unset (upstream returns false). `githubInstall`: no longer installs upstream's GitHub App (browser flow + `api.opencode.ai` install poll removed); scaffolds `.github/workflows/codev.yml` (was `opencode.yml`) triggering on `/codev` with `contents`/`issues`/`pull-requests: write` permissions, an `npm install -g codev-code` step and a `codev github run` step carrying `GITHUB_TOKEN` and `MODEL` in `env` — no `uses:`, see the `github/` row; next-steps text says `/codev summarize` and links the fork's hosted docs at `/docs/code/github` (the `github/` README it used to link is deleted). | The trigger phrase, branches, footer, and scaffolded workflow are user-facing. The fork has no GitHub App to install, so OIDC token exchange can never succeed here: `USE_GITHUB_TOKEN` must default true, or an unset variable sends users down the exchange path and fails asking for `id-token: write`. Upstream's false default was masked while the composite action passed the input explicitly; deleting the action exposed it. NOT renamed: `AGENT_USERNAME` `opencode-agent[bot]` (upstream App bot identity, used for reaction cleanup in the app-token path), `api.opencode.ai` exchange endpoints, the `opencode-github-action` OIDC audience, `opencode.ai` share URLs, and the social-cards URL. | Keep our trigger/branch/footer strings, the app-less install flow, the `USE_GITHUB_TOKEN` true default, and the actionless scaffold; take upstream's surrounding logic changes. If upstream adds new user-facing "opencode" strings or workflow scaffold changes, rebrand them the same way; never let a scaffold change reintroduce `uses: quickbeard/codev-code/github@main`. | | Project-repo links: `packages/tui/src/component/error-component.tsx`, `SECURITY.md` | "This project's repo" links `github.com/anomalyco/opencode` → `github.com/quickbeard/codev-code`: the TUI crash screen's report-bug URL (`issues/new?template=bug-report.yml` — the fork's template keeps upstream's field ids incl. `opencode-version`, so the prefill params still work) and its auto-generated "Reported automatically from the opencode crash screen" prose → "codev"; SECURITY.md's report-a-vulnerability advisories link | Crash reports, vulnerability reports, and contributions belong on the fork's repo, not upstream's. NOT repointed (deliberate upstream references): README attribution + CHANGELOG/DIVERGENCES upstream citations, upstream issue links in code comments (`mcp/index.ts`), model-persona prompt files, test fixtures (`github-remote.test.ts`, `shared.test.ts`), tree-sitter wasm download URLs, the disabled AUR/Homebrew section of `script/publish.ts`, `packages/{cli,ui,http-recorder}` manifest metadata (unpublished by the fork), console/stats/enterprise routes (not deployed by the fork), and desktop `copy-metainfo.ts` (desktop unshipped — revisit with the desktop bucket). | Keep our URLs and crash-screen prose; take upstream's surrounding changes. Repoint any new "report/contribute here" link; leave the NOT-repointed list. | | `.github/TEAM_MEMBERS` | Deleted | Upstream's team roster. The five workflows that read it (pr-standards, pr-management, triage, duplicate-issues, compliance-close) fetch it from a `dev` branch this fork doesn't have, so they are already inert here. | Keep deleted. | | `packages/script/src/index.ts` | Guard the `.github/TEAM_MEMBERS` read: fall back to an empty team list when the file is absent instead of throwing at module load | This module is imported by the publish path (`publish.ts`); the deleted `TEAM_MEMBERS` (row above) made `bun run release` crash with ENOENT. `Script.team` has no consumers in the fork. | Keep our `exists()` guard; take upstream's surrounding changes. | @@ -181,7 +181,7 @@ from the squash message first, or use a plain merge. `ai.opencode.desktop` appId / `opencode://` scheme (identity plumbing wired into deep-link handling). - **URLs**: links the app opens in the browser point at the fork — docs at - `https://netmind.viettel.vn/codev/en/docs` (root takes no trailing slash; + `https://netmind.viettel.vn/codev/docs` (root takes no trailing slash; deep links keep their paths) and issue reports at `github.com/quickbeard/codev-code/issues` (see the docs-site links table row). Still upstream, deliberately: Zen/Go product URLs (`opencode.ai/zen`, `/go`, `/auth` — external products), `$schema`/`theme.json`/ diff --git a/packages/app/src/components/dialog-custom-provider.tsx b/packages/app/src/components/dialog-custom-provider.tsx index 95ba8a5f45..f2159d1aac 100644 --- a/packages/app/src/components/dialog-custom-provider.tsx +++ b/packages/app/src/components/dialog-custom-provider.tsx @@ -184,7 +184,7 @@ export function CustomProviderForm(props: { autofocus?: boolean } = {}) {

{language.t("provider.custom.description.prefix")} - + {language.t("provider.custom.description.link")} {language.t("provider.custom.description.suffix")} diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx index 29e1c8a768..215f1a8518 100644 --- a/packages/app/src/components/settings-general.tsx +++ b/packages/app/src/components/settings-general.tsx @@ -479,7 +479,7 @@ export const SettingsGeneral: Component = () => { description={ <> {language.t("settings.general.row.theme.description")}{" "} - {language.t("common.learnMore")} + {language.t("common.learnMore")} } > diff --git a/packages/app/src/components/settings-v2/general.tsx b/packages/app/src/components/settings-v2/general.tsx index 403110a7f0..4ef5d8282e 100644 --- a/packages/app/src/components/settings-v2/general.tsx +++ b/packages/app/src/components/settings-v2/general.tsx @@ -438,7 +438,7 @@ export const SettingsGeneralV2: Component<{ description={ <> {language.t("settings.general.row.theme.description")}{" "} - + {language.t("common.learnMore")} diff --git a/packages/app/src/desktop-menu.ts b/packages/app/src/desktop-menu.ts index 1709dd88c4..9528359570 100644 --- a/packages/app/src/desktop-menu.ts +++ b/packages/app/src/desktop-menu.ts @@ -200,7 +200,7 @@ export const DESKTOP_MENU: DesktopMenu[] = [ id: "help", label: "Help", items: [ - { type: "item", label: "CoDev Code Documentation", href: "https://netmind.viettel.vn/codev/en/docs" }, + { type: "item", label: "CoDev Code Documentation", href: "https://netmind.viettel.vn/codev/docs" }, { type: "item", label: "Export Logs...", command: "logs.export" }, { type: "separator" }, { diff --git a/packages/app/src/pages/home.tsx b/packages/app/src/pages/home.tsx index 515d04fe4d..4b6b4c0212 100644 --- a/packages/app/src/pages/home.tsx +++ b/packages/app/src/pages/home.tsx @@ -673,7 +673,7 @@ export function NewHome() { clearNotifications={clearNotifications} unseenCount={unseenCount} openSettings={openSettings} - openHelp={() => platform.openLink("https://netmind.viettel.vn/codev/en/docs")} + openHelp={() => platform.openLink("https://netmind.viettel.vn/codev/docs")} language={language} onWheel={(event) => { if (sessionViewport) containHomeWheel(event, sessionViewport) @@ -780,7 +780,7 @@ export function NewHome() { platform.openLink("https://netmind.viettel.vn/codev/en/docs")} + openHelp={() => platform.openLink("https://netmind.viettel.vn/codev/docs")} language={language} /> diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx index 18a97ae3b4..7a200b6c92 100644 --- a/packages/app/src/pages/layout.tsx +++ b/packages/app/src/pages/layout.tsx @@ -2238,7 +2238,7 @@ export default function LegacyLayout(props: ParentProps) { settingsKeybind={() => command.keybind("settings.open")} onOpenSettings={openSettings} helpLabel={() => language.t("sidebar.help")} - onOpenHelp={() => platform.openLink("https://netmind.viettel.vn/codev/en/docs")} + onOpenHelp={() => platform.openLink("https://netmind.viettel.vn/codev/docs")} renderPanel={() => mobile ? : } diff --git a/packages/opencode/src/cli/cmd/github.handler.ts b/packages/opencode/src/cli/cmd/github.handler.ts index 3c18363bb5..a9640ab9b3 100644 --- a/packages/opencode/src/cli/cmd/github.handler.ts +++ b/packages/opencode/src/cli/cmd/github.handler.ts @@ -198,7 +198,7 @@ export const githubInstall = Effect.fn("Cli.github.install")(function* () { "", " 3. Go to a GitHub issue and comment `/codev summarize` to see the agent in action", "", - " Learn more about the GitHub agent - https://netmind.viettel.vn/codev/en/docs/code/github", + " Learn more about the GitHub agent - https://netmind.viettel.vn/codev/docs/code/github", ].join("\n"), ) } diff --git a/packages/opencode/src/cli/cmd/providers.ts b/packages/opencode/src/cli/cmd/providers.ts index 814af8676d..762eb6a188 100644 --- a/packages/opencode/src/cli/cmd/providers.ts +++ b/packages/opencode/src/cli/cmd/providers.ts @@ -476,7 +476,7 @@ export const ProvidersLoginCommand = effectCmd({ if (["cloudflare", "cloudflare-ai-gateway"].includes(provider)) { yield* Prompt.log.info( - "Cloudflare AI Gateway can be configured with CLOUDFLARE_GATEWAY_ID, CLOUDFLARE_ACCOUNT_ID, and CLOUDFLARE_API_TOKEN environment variables. Read more: https://netmind.viettel.vn/codev/en/docs/providers/#cloudflare-ai-gateway", + "Cloudflare AI Gateway can be configured with CLOUDFLARE_GATEWAY_ID, CLOUDFLARE_ACCOUNT_ID, and CLOUDFLARE_API_TOKEN environment variables. Read more: https://netmind.viettel.vn/codev/docs/providers/#cloudflare-ai-gateway", ) } diff --git a/packages/tui/src/app.tsx b/packages/tui/src/app.tsx index f396ddf744..321dd5feb8 100644 --- a/packages/tui/src/app.tsx +++ b/packages/tui/src/app.tsx @@ -943,7 +943,7 @@ function App(props: { onSnapshot?: () => Promise; pluginHost: TuiPlugi name: "docs.open", title: "Open docs", run: () => { - open("https://netmind.viettel.vn/codev/en/docs").catch(() => {}) + open("https://netmind.viettel.vn/codev/docs").catch(() => {}) dialog.clear() }, category: "System", From dad3e34cf375c5dc76b3798460551df162b74ca3 Mon Sep 17 00:00:00 2001 From: minhn4 Date: Thu, 30 Jul 2026 17:26:43 +0700 Subject: [PATCH 3/3] minor changes --- CHANGELOG.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e800f694de..09e91443de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,17 +7,6 @@ file is the human-readable summary of what changed and why. ## Unreleased -### Links - -- **Docs and login URLs follow the landing page's move to `/codev`** — the - CoDev site is moving from `netmind.viettel.vn/codev-landing-page` to - `netmind.viettel.vn/codev` (codev-landing-page#35, same change as CoDev Hub - PR #207). Every URL this repo hard-codes under that base moved with it: the - SSO login success redirect (`…/codev/oauth/success`) and the docs links the - TUI, desktop app, and CLI open in the browser (`…/codev/docs/…`). Must - ship together with the landing-page and reverse-proxy changes — against an - old deployment these URLs 404. - ### TUI - **No more duplicated agent · model line** — the trailer under the last