3.4 KiB
Brief: stack-release.sh activates a Console with --sso (Q175 phase 2 prerequisite)
Sage, 2026-10-20, for Launchpad's finding F3 on row 192 (launchpad-0001) and Q175 (#412). Gitea #1698. Owner Launchpad, reviewer Webby, gate owner Sage. Chained on row 192's candidate (Q177): it lands after row 192 and before the phase 2 window. Base: row 192's candidate.
Why
The phase 2 window re-pins the Console to the phase 1 commit with --sso --send --tester-port 7333
(agents/sage/work/q175-sso/DESIGN.md, section 5). scripts/stack-release.sh doesn't know --sso today.
Its proof_checks (:751) requires --public-host, --auth-header and --allow-user whenever a proof pair is
carried, and the pointer's Console flags still hold the forward-auth pair (--auth-header X-authentik-username --allow-user jason.woltje) that --sso refuses to start with. So the window can't run through the script, and
a hand-edited pointer is not an option.
What the row does
activate ID BUSINESS --ssowrites Console flags with--ssoand without--auth-header,--allow-userand any proof pair, and--plannames each flag it drops and carries, in the style of row 189'ssend:line. The design names the full flag set the phase 2 Console starts with and checks it against row 192's refusals.- Before anything stops, the script refuses a target copy whose Console doesn't support
--sso, and refuses when the config'sconsolekey or its slot file fails the checks row 192's--ssostart runs. It reads neither value and only uses the same stat and shape checks. - Rollback from an
--ssopointer to a pre-phase-1 copy follows the design's phase 2 rollback order (remove theconsolekey first). The script refuses a rollback that would start a Console on a config it can't read, and says which step comes first. docs/TOOLS.mdgets the flag.
Boundaries
- No change to the live pointer, units,
~/.mosaic-devor~/.config/mosaic-dev. Tests use scratch roots and seeded pointers, as rows 187 and 189 do. - No request to the live Console, mosaic.woltje.com or auth.diversecanvas.com.
Gate
Webby approves the manifest. The cli suite and every scripts/test-*.sh are green on Sage's gate, and the
mutants are killed (one per refusal, and one that keeps --auth-header in the written flags).
Brief: row 200 follow-up N1, the sso-config hint names the instance
Sage, 2026-10-21, from Webby's round 3 note N1 on row 200 (comment 29772). Gitea #1744. Owner Launchpad,
reviewer Webby, gate owner Sage. Size XS. Builds on row 200's landing 9e1085816.
scripts/stack-release.sh builds the sso-config refusal's first-step hint as activate $TO without --sso first, then write console.sso, then run activate $TO --sso. For a named instance (row 190), both commands
need --instance NAME, and the hint leaves it out. An operator who copies them acts on the default instance.
- When the run names an instance, both commands in the hint carry
--instance NAME. The default instance's hint is unchanged. - A test runs the sso-config refusal for a named instance and asserts both commands carry
--instance NAME. The existing default-instance case keeps its exact text. - One mutant drops the flag from the hint, and it must die.
Gate: Webby approves the manifest. packages/cli/tests/stack-release.test.mjs passes whole, and the cli suite
and every scripts/test-*.sh are green on Sage's gate.