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
This commit is contained in:
Serhii Dziupin
2026-08-07 00:25:57 +03:00
committed by GitHub
parent 668a6f54fe
commit 834d2edb87
17 changed files with 214 additions and 0 deletions
@@ -445,6 +445,9 @@ export const settingsDict = {
'settings.openchamber.about.title': 'Über OpenChamber',
'settings.openchamber.about.field.version': 'Version',
'settings.openchamber.about.field.openCodeVersion': 'OpenCode-Version',
'settings.openchamber.about.field.instanceUrls': 'Instanz-URLs',
'settings.openchamber.about.field.applicationUrl': 'Anwendung',
'settings.openchamber.about.field.tunnelUrl': 'Tunnel',
'settings.openchamber.about.state.checking': 'Wird geprüft...',
'settings.openchamber.about.state.upToDate': 'Aktuell',
'settings.openchamber.about.state.unknown': 'unbekannt',
@@ -464,6 +464,9 @@ export const settingsDict = {
'settings.openchamber.about.title': 'About OpenChamber',
'settings.openchamber.about.field.version': 'Version',
'settings.openchamber.about.field.openCodeVersion': 'OpenCode version',
'settings.openchamber.about.field.instanceUrls': 'Instance URLs',
'settings.openchamber.about.field.applicationUrl': 'Application',
'settings.openchamber.about.field.tunnelUrl': 'Tunnel',
'settings.openchamber.about.state.checking': 'Checking...',
'settings.openchamber.about.state.upToDate': 'Up to date',
'settings.openchamber.about.state.unknown': 'unknown',
@@ -431,6 +431,9 @@ export const settingsDict = {
"settings.openchamber.about.title": "Acerca de OpenChamber",
"settings.openchamber.about.field.version": "Versión",
"settings.openchamber.about.field.openCodeVersion": "Versión de OpenCode",
"settings.openchamber.about.field.instanceUrls": "URLs de la instancia",
"settings.openchamber.about.field.applicationUrl": "Aplicación",
"settings.openchamber.about.field.tunnelUrl": "Túnel",
"settings.openchamber.about.state.checking": "Comprobando...",
"settings.openchamber.about.state.upToDate": "Actualizado",
"settings.openchamber.about.state.unknown": "desconocido",
@@ -2059,6 +2059,9 @@ export const settingsDict = {
'settings.remoteInstances.relay.toast.offerFailed': 'Échec de la création du lien d’association',
'settings.remoteInstances.relay.toast.linkCopied': 'Lien d’association copié',
'settings.openchamber.about.field.openCodeVersion': 'Version d’OpenCode',
'settings.openchamber.about.field.instanceUrls': 'URLs de l’instance',
'settings.openchamber.about.field.applicationUrl': 'Application',
'settings.openchamber.about.field.tunnelUrl': 'Tunnel',
'settings.openchamber.about.state.unknown': 'inconnue',
'settings.voice.page.field.ttsInputMode': 'Mode d’entrée TTS',
'settings.voice.page.field.ttsInputModeSanitized': 'Nettoyé',
@@ -464,6 +464,9 @@ export const settingsDict = {
'settings.openchamber.about.title': 'OpenChamber について',
'settings.openchamber.about.field.version': 'バージョン',
'settings.openchamber.about.field.openCodeVersion': 'OpenCode バージョン',
'settings.openchamber.about.field.instanceUrls': 'インスタンスのURL',
'settings.openchamber.about.field.applicationUrl': 'アプリケーション',
'settings.openchamber.about.field.tunnelUrl': 'トンネル',
'settings.openchamber.about.state.checking': '確認中...',
'settings.openchamber.about.state.upToDate': '最新です',
'settings.openchamber.about.state.unknown': '不明',
@@ -431,6 +431,9 @@ export const settingsDict = {
'settings.openchamber.about.title': 'OpenChamber 정보',
'settings.openchamber.about.field.version': '버전',
'settings.openchamber.about.field.openCodeVersion': 'OpenCode 버전',
'settings.openchamber.about.field.instanceUrls': '인스턴스 URL',
'settings.openchamber.about.field.applicationUrl': '애플리케이션',
'settings.openchamber.about.field.tunnelUrl': '터널',
'settings.openchamber.about.state.checking': '확인 중...',
'settings.openchamber.about.state.upToDate': '최신 상태',
'settings.openchamber.about.state.unknown': '알 수 없음',
@@ -722,6 +722,9 @@ export const settingsDict = {
'settings.openchamber.about.actions.updateToVersion': 'Aktualizuj do wersji {version}',
'settings.openchamber.about.field.version': 'Wersja',
'settings.openchamber.about.field.openCodeVersion': 'Wersja OpenCode',
'settings.openchamber.about.field.instanceUrls': 'Adresy URL instancji',
'settings.openchamber.about.field.applicationUrl': 'Aplikacja',
'settings.openchamber.about.field.tunnelUrl': 'Tunel',
'settings.openchamber.about.state.checking': 'Sprawdzanie...',
'settings.openchamber.about.state.upToDate': 'Aktualna wersja',
'settings.openchamber.about.state.unknown': 'nieznane',
@@ -431,6 +431,9 @@ export const settingsDict = {
"settings.openchamber.about.title": "Sobre o OpenChamber",
"settings.openchamber.about.field.version": "Versão",
"settings.openchamber.about.field.openCodeVersion": "Versão do OpenCode",
"settings.openchamber.about.field.instanceUrls": "URLs da instância",
"settings.openchamber.about.field.applicationUrl": "Aplicativo",
"settings.openchamber.about.field.tunnelUrl": "Túnel",
"settings.openchamber.about.state.checking": "Verificando...",
"settings.openchamber.about.state.upToDate": "Atualizado",
"settings.openchamber.about.state.unknown": "desconhecido",
@@ -431,6 +431,9 @@ export const settingsDict = {
"settings.openchamber.about.title": "Про OpenChamber",
"settings.openchamber.about.field.version": "Версія",
"settings.openchamber.about.field.openCodeVersion": "Версія OpenCode",
"settings.openchamber.about.field.instanceUrls": "URL-адреси екземпляра",
"settings.openchamber.about.field.applicationUrl": "Застосунок",
"settings.openchamber.about.field.tunnelUrl": "Тунель",
"settings.openchamber.about.state.checking": "Перевірка...",
"settings.openchamber.about.state.upToDate": "В актуальному стані",
"settings.openchamber.about.state.unknown": "невідомо",
@@ -431,6 +431,9 @@ export const settingsDict = {
'settings.openchamber.about.title': '关于 OpenChamber',
'settings.openchamber.about.field.version': '版本',
'settings.openchamber.about.field.openCodeVersion': 'OpenCode 版本',
'settings.openchamber.about.field.instanceUrls': '实例 URL',
'settings.openchamber.about.field.applicationUrl': '应用',
'settings.openchamber.about.field.tunnelUrl': '隧道',
'settings.openchamber.about.state.checking': '检查中...',
'settings.openchamber.about.state.upToDate': '已是最新',
'settings.openchamber.about.state.unknown': '未知',
@@ -428,6 +428,9 @@
'settings.openchamber.about.title': '關於 OpenChamber',
'settings.openchamber.about.field.version': '版本',
'settings.openchamber.about.field.openCodeVersion': 'OpenCode 版本',
'settings.openchamber.about.field.instanceUrls': '執行個體 URL',
'settings.openchamber.about.field.applicationUrl': '應用程式',
'settings.openchamber.about.field.tunnelUrl': '隧道',
'settings.openchamber.about.state.checking': '檢查中...',
'settings.openchamber.about.state.upToDate': '已是最新',
'settings.openchamber.about.state.unknown': '未知',