#869 Point-1 install-guard follow-ups (Windows .ps1 / --sync-only bypass / finalize.ts opt-out-warn) #882
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Non-blocking follow-ups surfaced by the C2 (#879, install-ordering guard) independent review. Track before closing the #869 umbrella. Two are Point-2 (web1 activation-release) preconditions per Mos.
(a) mosaic-link-runtime-assets.ps1 (Windows) is NOT guarded — settings.json (with the enforcement hooks baked in) is still copied unconditionally on Windows, so the wired-but-inactive brick risk that C2 closes on POSIX remains on Windows hosts. C2 was POSIX/TS-only (parallels the PR-B PowerShell-parity deferral). MATERIALITY: if ANY fleet host is Windows this MUST be closed before Point-2 activation; if the fleet is POSIX-only (web1 is Linux) it is a lower-priority coverage card, still tracked. [Point-2 precondition if Windows]
(b) 'mosaic update --sync-only' (MOSAIC_SYNC_ONLY=1) early-exits before the post-install step that runs the guard, so the guard never re-evaluates settings.json in sync-only mode — a real bypass that could re-introduce the wired-but-inactive state the guard exists to prevent. Pre-existing behavior, not a C2 regression. MATERIALITY: Point-2 IS an update path, so this must be RESOLVED or explicitly risk-accepted before Point-2. [Point-2 precondition]
(c) finalize.ts surfaces the guard's stderr only on non-zero exit, so the opt-out WARNING (--allow-inactive-enforcement, which exits 0 with a console.warn) would be silently dropped IF that flag is ever threaded through the wizard. Currently UNREACHABLE (finalize.ts never passes the flag). Low priority — track and note; add stderr-on-logged-output surfacing to finalize.ts if the wizard ever exposes the opt-out. [low]
Part of #869 (Point-1). Owner: MS-LEAD; Point-2 gating decided by Mos with Jason.
DISPOSITION (Mos, 2026-07-23, fleet-composition confirmed): the mosaic agent fleet is POSIX-only — web1 is Linux; agents + the sb-it installer/field-agent run Linux/Mac bash; NO Windows host runs mosaic install.
mosaic update --sync-onlybypass → REAL Point-2 (web1 activation-release) PRECONDITION — must be RESOLVED or explicit-risk-accepted before Point-2 activation, since Point-2 IS an update path. Mos weighs this with Jason at the Point-2 gate.Net: Point-2 preconditions from this issue = (b) resolved-or-accepted; (a) N/A while fleet is POSIX-only.