From 9f60021a005991230210a3068031740633311746 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Sat, 24 Oct 2026 23:31:22 -0500 Subject: [PATCH] launchpad: row 255 design, R2 marked rejected per sage-4401 (R1 chosen, M2 dropped) --- agents/launchpad/work/queue-255/DESIGN.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/agents/launchpad/work/queue-255/DESIGN.md b/agents/launchpad/work/queue-255/DESIGN.md index b04a6c47d..6c0d905e8 100644 --- a/agents/launchpad/work/queue-255/DESIGN.md +++ b/agents/launchpad/work/queue-255/DESIGN.md @@ -245,10 +245,9 @@ to respect that; I recommend the first: The user pastes it into config.json, as with Q175 step 4. Rerunning `scripts/bootstrap.sh` (or `--instance NAME`) then validates it through the loader, including the section 1 cross-check, and writes nothing. Nothing changes in invariant 2. -- **R2.** `enroll --write-config` writes those two keys itself, with a backup of config.json first, and - refuses if `console` or `components` is already present. That would be the first tool to modify an - existing config.json. **M2 (to Mos, only if R2 is wanted): R2 changes canon invariant 2's - "never overwritten" practice.** +- **R2 (rejected, Sage sage-4401: R1 chosen).** `enroll --write-config` would write those two keys itself, with a backup of config.json first, and + refuse if `console` or `components` were already present. That would be the first tool to modify an + existing config.json, against canon invariant 2's "never overwritten" practice. Not built. Whose subject. Enroll creates one person, the one running it, and only that subject goes in the entry. On Jason's instances, only his subject goes into `console.sso` (mos-1197). Further people are added with @@ -366,7 +365,7 @@ runs on .53, .54 or dragon-lin, and none installs Pocket ID on any host. 3. **P3, unit.** The unit template, `render|install|status|remove|purge`, and the encryption key slot. Gate: the render and remove tests, and the sandbox bind test. 4. **P4, enroll.** The namespaced bootstrap, the client, the subject, `relink`, and printing the entry (R1), - or R2 if Mos rules for it. Gate: the enroll tests in section 9, and a secret-leak grep over every test log. + (R2 rejected). Gate: the enroll tests in section 9, and a secret-leak grep over every test log. 5. **P5, Console against the fake Pocket ID.** The section 9 fake-OP start tests, and the `NODE_EXTRA_CA_CERTS` render flag for the Console unit. Gate: the webui suite, with no change to `sso.mjs` checks (a diff of `sso.mjs` and `sso-config.mjs` against the base shows none). @@ -377,7 +376,7 @@ runs on .53, .54 or dragon-lin, and none installs Pocket ID on any host. ## Open items for review - **M1 (Mos):** the new top-level `components` key in config.json (section 1). -- **M2 (Mos, only if R2):** a tool writing config.json (section 5). R1 needs no ruling. +- M2 dropped: Sage chose R1 and rejected R2 (sage-4401). - **Q1 (Webby):** the private network namespace for enroll (section 4). The other option is to start the real unit and race `/setup`, which I think is unsafe while agents share the host network. - **Q2 (Webby):** one-providers-entry for the bundled choice (section 1). REQ-INST-2's wording reads that