From 0e6b8a986914016b33524350deecc528c059984e Mon Sep 17 00:00:00 2001 From: Dongni Yang Date: Tue, 1 Sep 2026 10:50:32 +0800 Subject: [PATCH 1/2] fix(advisories): keep the headless remote hint platform-neutral The headless_remote_hint advisory said "Headless Linux hosts" but its predicate reads no platform term, so a failed preflight on macOS printed Linux-only prose. On macOS the predicate collapses to "TERM_PROGRAM is unset", which is true over SSH, under launchd, under cron and in CI. The remediation the advisory carries, CHAT_UI_URL, is platform-neutral, and the repository treats isHeadlessLikely as a valid macOS signal: the Docker Desktop credential-store advisory uses it on its non-WSL branch. Every other host advisory that names an OS carries a matching platform predicate. Rewording removes the false OS claim and keeps the hint for headless macOS hosts, where it applies unchanged; gating to Linux would have removed a correct hint to fix a wording defect. Signed-off-by: Dongni Yang --- .../advisories/checks/host/toolchain.test.ts | 18 ++++++++++++++++++ src/lib/advisories/checks/host/toolchain.ts | 3 +-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/lib/advisories/checks/host/toolchain.test.ts b/src/lib/advisories/checks/host/toolchain.test.ts index 9354d5f0943..f0348cbffd0 100644 --- a/src/lib/advisories/checks/host/toolchain.test.ts +++ b/src/lib/advisories/checks/host/toolchain.test.ts @@ -47,6 +47,24 @@ describe("host toolchain advisories (#3213)", () => { ]); }); + it("keeps the headless remote hint platform-neutral on macOS (#10734)", () => { + const result = runAdvisories( + TOOLCHAIN_HOST_ADVISORY_CHECKS, + { + ...BASE_HOST, + platform: "darwin", + runtime: "docker-desktop", + isHeadlessLikely: true, + }, + { phase: "preflight.host" }, + ); + + const hint = result.advisories.find(({ id }) => id === "headless_remote_hint"); + expect(hint?.reason).toBe( + "Headless hosts often need explicit remote UI handling if you want browser access.", + ); + }); + it("preserves the WSL Docker short-circuit", () => { const result = runAdvisories( TOOLCHAIN_HOST_ADVISORY_CHECKS, diff --git a/src/lib/advisories/checks/host/toolchain.ts b/src/lib/advisories/checks/host/toolchain.ts index 87d80d49bba..28eb6763664 100644 --- a/src/lib/advisories/checks/host/toolchain.ts +++ b/src/lib/advisories/checks/host/toolchain.ts @@ -51,8 +51,7 @@ export const reviewHeadlessUiSettings: AdvisoryCheck = { return hostAdvisory(reviewHeadlessUiSettings, { title: "Review remote/headless UI settings", kind: "info", - reason: - "Headless Linux hosts often need explicit remote UI handling if you want browser access.", + reason: "Headless hosts often need explicit remote UI handling if you want browser access.", commands: ["Set `CHAT_UI_URL` when remote browser access matters."], }); }, From 5afff36634821c2894f8ee4b97bdac97f2a1a59d Mon Sep 17 00:00:00 2001 From: Prekshi Vyas Date: Tue, 1 Sep 2026 12:09:22 -0700 Subject: [PATCH 2/2] fix(advisories): clarify headless access guidance Signed-off-by: Prekshi Vyas --- src/lib/advisories/checks/host/toolchain.test.ts | 9 ++++++--- src/lib/advisories/checks/host/toolchain.ts | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/lib/advisories/checks/host/toolchain.test.ts b/src/lib/advisories/checks/host/toolchain.test.ts index f0348cbffd0..0cb469e7137 100644 --- a/src/lib/advisories/checks/host/toolchain.test.ts +++ b/src/lib/advisories/checks/host/toolchain.test.ts @@ -60,9 +60,12 @@ describe("host toolchain advisories (#3213)", () => { ); const hint = result.advisories.find(({ id }) => id === "headless_remote_hint"); - expect(hint?.reason).toBe( - "Headless hosts often need explicit remote UI handling if you want browser access.", - ); + expect(hint).toMatchObject({ + reason: "Headless hosts often need explicit remote UI handling if you want browser access.", + commands: [ + "Prefer SSH port forwarding for remote browser access. If the dashboard needs an external origin, set `CHAT_UI_URL` to its HTTPS URL before onboarding.", + ], + }); }); it("preserves the WSL Docker short-circuit", () => { diff --git a/src/lib/advisories/checks/host/toolchain.ts b/src/lib/advisories/checks/host/toolchain.ts index 28eb6763664..e73c85bfb7d 100644 --- a/src/lib/advisories/checks/host/toolchain.ts +++ b/src/lib/advisories/checks/host/toolchain.ts @@ -52,7 +52,9 @@ export const reviewHeadlessUiSettings: AdvisoryCheck = { title: "Review remote/headless UI settings", kind: "info", reason: "Headless hosts often need explicit remote UI handling if you want browser access.", - commands: ["Set `CHAT_UI_URL` when remote browser access matters."], + commands: [ + "Prefer SSH port forwarding for remote browser access. If the dashboard needs an external origin, set `CHAT_UI_URL` to its HTTPS URL before onboarding.", + ], }); }, };