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
The install does: bootstrap, release package and activate, the business file with the mapping, `bean`
and `chet` with their persona vars and files, any specialists she picks, her human id, the token slot
path. It runs as `<user>` through `sudo -u mosaic -H` from `localadmin`, and `mosaic` gets no key. It
The install does: bootstrap, the stack copy (its `npm ci` installs the pinned harness), the business
file with the mapping, `bean` and `chet` with their persona vars and files, any specialists she picks,
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
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
`--profile factory|library`, default `library`, as the precheck does:
- `library` is everything this brief lists.
- `factory` skips the library mapping, the persona files and digests, the token slot, and
`library.sync` and `library.status`.
- `factory` skips the library mapping, the persona files and digests, the token slot, and the
`--library-status` check.
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
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.
### Tests
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
Discord binding. The install's `factory` profile writes no library mapping, persona file or token slot.
persona file at 0644, a digest mismatch, a business file at the wrong mode, a Discord binding, and for
`--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