From 4d0c0d68d3cdc4650b4578561d70bea2df04536a Mon Sep 17 00:00:00 2001 From: Code UX Date: Thu, 9 Jul 2026 04:22:30 +0000 Subject: [PATCH] feat(task T03): implement via codex --- docs-web/content/docs/user-installation.mdx | 6 ++++-- docs-web/user/installation.md | 6 ++++-- docs/operations/runbook.md | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs-web/content/docs/user-installation.mdx b/docs-web/content/docs/user-installation.mdx index cf4c69cf4f..5b527bc4fe 100644 --- a/docs-web/content/docs/user-installation.mdx +++ b/docs-web/content/docs/user-installation.mdx @@ -232,8 +232,10 @@ pnpm run build # download and run the latest installer from GitHub Releases ``` -In the desktop app, the title-bar **Update** action opens the latest GitHub Releases page in your -default browser. It is a download shortcut, not an automatic background or in-app update flow. +In the desktop app, the title-bar **Update** action appears only when the dashboard detects an +available update. When a latest version is known, the button remains version-aware, and it opens the +latest GitHub Releases page in your default browser. It is a download shortcut, not an automatic +background or in-app update flow. ## Uninstall diff --git a/docs-web/user/installation.md b/docs-web/user/installation.md index c23be7a80a..3fab1412d8 100644 --- a/docs-web/user/installation.md +++ b/docs-web/user/installation.md @@ -232,8 +232,10 @@ pnpm run build # download and run the latest installer from GitHub Releases ``` -In the desktop app, the title-bar **Update** action opens the latest GitHub Releases page in your -default browser. It is a download shortcut, not an automatic background or in-app update flow. +In the desktop app, the title-bar **Update** action appears only when the dashboard detects an +available update. When a latest version is known, the button remains version-aware, and it opens the +latest GitHub Releases page in your default browser. It is a download shortcut, not an automatic +background or in-app update flow. ## Uninstall diff --git a/docs/operations/runbook.md b/docs/operations/runbook.md index 15f59bac70..500c751299 100644 --- a/docs/operations/runbook.md +++ b/docs/operations/runbook.md @@ -108,7 +108,7 @@ Checks: - Live activity warnings include structured fields such as `sessionName`, `failureCause`, `errorName`, `cacheFallbackState`, `cachedActivityCount`, and `timeoutMs` when applicable. They should not include provider output bodies; inspect provider session logs separately if the cause needs deeper diagnosis. - To validate this surface after cache or timeout changes, run `pnpm run test:backend -- tests/backend/server/activity-cache-service.test.ts`, then `pnpm run test:backend:coverage` to confirm `src/server/activity-cache-service.ts` remains above its 80% line threshold. - `/api/system/update-status` reports the running Code UX version plus the latest published npm version. It caches the npm lookup briefly, so repeated dashboard refreshes should not hammer the registry, and the dashboard logs a single startup notice when a newer release is available. The response keeps the legacy `releaseUrl` field and also includes typed `downloadTargets.npm` and `downloadTargets.electron` entries so consumers can route npm installs to `npmjs.com` and desktop updates to the official `github.com/codeux-ai/codeux` release tag. Registry failures return `latestVersion: null`, the repository releases fallback URL, and stable official fallback download targets. -- The Electron dashboard title bar shows the running version plus an always-present "Update" button whenever `window.codeUxDesktop.window` is available. The button calls the fixed preload `openUpdates()` bridge and does not depend on `/api/system/update-status`; if the bar or button is missing in desktop mode, inspect preload bridge initialization and renderer access to `window.codeUxDesktop.window`. +- The Electron dashboard title bar shows the running version when `window.codeUxDesktop.window` is available. The update affordance is driven by `useUpdateStatus()` and appears only when `/api/system/update-status` reports `updateAvailable === true`; when `latestVersion` is known, the button remains version-aware in its accessible label. The visible action still calls the fixed preload `openUpdates()` bridge. If the bar is missing in desktop mode, inspect preload bridge initialization and renderer access to `window.codeUxDesktop.window`; if the update button is missing, inspect the update-status response first. - If the dashboard still degrades under load, inspect `runtime.debugLogFileLevel`; file logging defaults to `error` and uses async streams, but sustained log volume is still a useful signal that a hot loop is too noisy. ### 2. No PR/CI data in remote mode