From 834d2edb879e3bddf8ed0a7a4360ec9c4634872c Mon Sep 17 00:00:00 2001 From: Serhii Dziupin Date: Fri, 7 Aug 2026 00:25:57 +0300 Subject: [PATCH] feat(ui,server): surface active instance service URLs in About settings (#2669) Show the running instance's local server URL and tunnel URL (when a tunnel is active) as labeled, click-to-open buttons on the About page. /api/system/info now reports the instance port and tunnel URL, resolved lazily from the tunnel runtime so each Git-worktree instance identifies itself in the UI without parsing terminal output. Refs OPE-194 --- .../sections/openchamber/AboutSettings.tsx | 7 ++ .../openchamber/InstanceServiceUrls.tsx | 106 ++++++++++++++++++ .../ui/src/lib/i18n/messages/de.settings.ts | 3 + .../ui/src/lib/i18n/messages/en.settings.ts | 3 + .../ui/src/lib/i18n/messages/es.settings.ts | 3 + .../ui/src/lib/i18n/messages/fr.settings.ts | 3 + .../ui/src/lib/i18n/messages/ja.settings.ts | 3 + .../ui/src/lib/i18n/messages/ko.settings.ts | 3 + .../ui/src/lib/i18n/messages/pl.settings.ts | 3 + .../src/lib/i18n/messages/pt-BR.settings.ts | 3 + .../ui/src/lib/i18n/messages/uk.settings.ts | 3 + .../src/lib/i18n/messages/zh-CN.settings.ts | 3 + .../src/lib/i18n/messages/zh-TW.settings.ts | 3 + packages/web/server/index.js | 14 +++ .../server/lib/opencode/bootstrap-runtime.js | 4 + .../web/server/lib/opencode/core-routes.js | 8 ++ .../server/lib/opencode/core-routes.test.js | 42 +++++++ 17 files changed, 214 insertions(+) create mode 100644 packages/ui/src/components/sections/openchamber/InstanceServiceUrls.tsx diff --git a/packages/ui/src/components/sections/openchamber/AboutSettings.tsx b/packages/ui/src/components/sections/openchamber/AboutSettings.tsx index 6bffa19c..95488727 100644 --- a/packages/ui/src/components/sections/openchamber/AboutSettings.tsx +++ b/packages/ui/src/components/sections/openchamber/AboutSettings.tsx @@ -9,6 +9,7 @@ import { Icon } from "@/components/icon/Icon"; import { OpenChamberLogo } from '@/components/ui/OpenChamberLogo'; import { useI18n } from '@/lib/i18n'; import { runtimeFetch } from '@/lib/runtime-fetch'; +import { InstanceServiceUrls } from './InstanceServiceUrls'; import { SettingsSection, SETTINGS_BRAND_TITLE_CLASS, @@ -135,6 +136,7 @@ export const AboutSettings: React.FC = ({ initialUpdateDialo

{t('aboutDialog.openChamberVersionLabel', { version: currentVersion })}

{t('aboutDialog.openCodeVersionLabel', { version: openCodeVersion || t('settings.openchamber.about.state.unknown') })}

+
@@ -278,6 +280,11 @@ export const AboutSettings: React.FC = ({ initialUpdateDialo
)} +
+ {t('settings.openchamber.about.field.instanceUrls')} + +
+