plans: row 226 (C2-13b) brief follows design D8: the install makes the stack copy and runs no release package or activate, and the precheck's --library-status reads the bus's recorded sync state after design 10 step 4a (624212842, webby-0085 B1, sage-2189, sage-2195)

This commit is contained in:
jason.woltje committed 2026-10-21 17:36:25 -05:00
1 parent aa772d731d
commit 6ba8a582e8
1 file changed
+14 -8
+14 -8
View File
@@ -1092,9 +1092,11 @@ parts.
### What ships ### What ships
The install does: bootstrap, release package and activate, the business file with the mapping, `bean` The install does: bootstrap, the stack copy (its `npm ci` installs the pinned harness), the business
and `chet` with their persona vars and files, any specialists she picks, her human id, the token slot file with the mapping, `bean` and `chet` with their persona vars and files, any specialists she picks,
path. It runs as `<user>` through `sudo -u mosaic -H` from `localadmin`, and `mosaic` gets no key. It her human id, the token slot path. It runs no `release.sh package` or `activate`. Both need Docker, and
the hub runs no containers (design 10 step 2b, D8, webby-0085 B1, sage-2189). It runs as `<user>`
through `sudo -u mosaic -H` from `localadmin`, and `mosaic` gets no key. It
doesn't create `<user>` and writes no unit file. Root does those in design 10 steps 2a and 2c. Every doesn't create `<user>` and writes no unit file. Root does those in design 10 steps 2a and 2c. Every
host value is an input, so a later host move changes only inputs. host value is an input, so a later host move changes only inputs.
@@ -1102,20 +1104,24 @@ Row 195 runs the install by input for Case 1 on 10.1.1.53 (darkwing to gosalyn,
`agents/darkwing/work/queue-195/DESIGN.md` section 2). It doesn't copy it. So the install takes `agents/darkwing/work/queue-195/DESIGN.md` section 2). It doesn't copy it. So the install takes
`--profile factory|library`, default `library`, as the precheck does: `--profile factory|library`, default `library`, as the precheck does:
- `library` is everything this brief lists. - `library` is everything this brief lists.
- `factory` skips the library mapping, the persona files and digests, the token slot, and - `factory` skips the library mapping, the persona files and digests, the token slot, and the
`library.sync` and `library.status`. `--library-status` check.
The precheck's library profile adds these checks to C2-13a's: The precheck's library profile adds these checks to C2-13a's:
- The business file, `.history`, `changes.jsonl` and persona files have the modes in design 4, and each - The business file, `.history`, `changes.jsonl` and persona files have the modes in design 4, and each
persona digest matches. persona digest matches.
- `library.sync` fetches her repo read-only, and `library.status` lists R-problems. - `--library-status`, run as `<user>` once the bus is up and step 4's token is in place (design 10 step
4a). It reads the bus's recorded sync state only and syncs nothing. It refuses when the mirror is
missing, when `lastError` is set or when `lastFetch` is null. It prints each R-problem as a `problem`
line and then a count, never file text (sage-2189).
- No Discord binding exists. - No Discord binding exists.
### Tests ### Tests
They run against a scratch data root and a local bare repo. Each new precheck refusal has a case: a They run against a scratch data root and a local bare repo. Each new precheck refusal has a case: a
persona file at 0644, a digest mismatch, a business file at the wrong mode, a sync failure and a persona file at 0644, a digest mismatch, a business file at the wrong mode, a Discord binding, and for
Discord binding. The install's `factory` profile writes no library mapping, persona file or token slot. `--library-status` a missing mirror, a mirror never synced and a recorded `lastError`. The install's
`factory` profile writes no library mapping, persona file or token slot.
### Out of scope ### Out of scope