| 1 | # Census overlay claim-empty-cohort-fix1 (fix round 1 for claim-empty-cohort-done: Astra's F1 and F2 as ruled by platform-1e), loaded LAST, after claim-step8-readiness. RULED (platform-1e, 2026-10-20): accepted as proposed; the proposal is docs/superpowers/notes/census-proposal-claim-step8-readiness.md, section "Fix round 1". |
| 2 | # Existing units keep their class and task exactly; their bases add what changed. F1: Backfill.Done lists the records again immediately before its If-Match write and a third time after the readback (through the new doneRecords, which has no root read site of its own). F2: rootMigration.run calls the new prepareFloors hook under its lock and quiesce, before guardReady; migrateRootClaimAuthority wires it to prepareRootFloorDirs; repairRootFloorDir is new. It adds no accepted-legacy row, so the seal stands. After merging main cd2dd6e1 (#315, #316), the internal/host envelope is re-pinned here (no unit change). |
| 3 | @coverage internal/host c98b17fc2e78324ae8b967c5e5b2617bb52f1ca0664a00e3fd3653f80b64ff4d |
| 4 | @coverage internal/hostops c37d041f6adf34458e5123fc32e506c610eb2e96b5b575c0ba6062cf960e5290 |
| 5 | internal/hostops/backfill_publish.go Backfill.Done authority F,G,J4 rev3=census-ruling-claim-empty-cohort-fix1;identity=explicit operator CLI uid 0 on the trusted signing host (carlos system claims run backfill-done, the only caller);basis=as ruled under census-ruling-claim-step8-readiness: reads the signed collecting plan, the roster, the record listing, control/hosts/, each app's admission and each keyed box's signed census report, refusing unless the listing is the plan's, no claim or admission exists and every keyed report verifies as the census verifies it and lists no installation; its one write is the plan as done under the collecting etag (If-Match), read back and checked by CheckCreateFreeze; it adopts and installs nothing. Fix round 1 (F1): the record listing (Apps, Records, the same comparison) is taken again immediately before the write, refusing with nothing written if it is no longer the plan's, and a third time after the readback, reporting ErrDoneRecordsChanged if a record changed after the write; the trial closes the remaining window by stopping the dev console's record writes from 8.1b to 8.2b file:Read@2516,file:Read@544 c8b9e7f6ab7245c3d26fe472bf12ed11da40acb4113aec9567b99280b5a1a219 |
| 6 | internal/host/rootmigration.go rootMigration.run authority G,J4 rev3=census-ruling-claim-empty-cohort-fix1;identity=carlos system journal-migrate offline uid 0;basis=offline guarded migration reobserves changed claims, retains union of session tuples, publishes only durable completion and verifies completed replay without rewriting census. Fix round 1 (F2): under its migration lock and quiesce it now calls the required prepareFloors hook before guardReady, so the floor directories are repaired before the first floor read; a refused repair stops the run before any census or record write file:Read@508 a59b29f1ec5f91d134ad104a4692fa3ee7366e42f552cbbebf1136da15026e1b |
| 7 | internal/host/rootmigration_production_linux.go migrateRootClaimAuthority authority G,J4,E3 rev3=census-ruling-claim-empty-cohort-fix1;run=15;identity=offline root migration uid 0;basis=requires masked inactive root mutator units and no running legacy root command under mandatory release exclusion; ordinary nonparticipants acquire no migration lock; the census classifies with claimMigrationSharedPaths after verifyMigrationWindow, and the public floor directories are made 0755 whatever the operator's umask. Fix round 1 (F2): prepareFloors is wired to prepareRootFloorDirs, which repairs guard/moves and guard/seeds to 0755 only when each is a real root:root directory, before guardReady; ready still calls it before opening the floors file:Open@1814,file:Open@374,file:Open@615,file:Open@7378,file:Open@739,file:Read@2766,file:ReadFile@1571,whole:Route@3079 e04533d6e85df45a302c134827870ca6e0f147a2e0569b3fb414897dbf77ec3d |
| 8 | internal/host/rootmigration_production_linux.go repairRootFloorDir authority G,J4 rev3=census-ruling-claim-empty-cohort-fix1;identity=carlos system journal-migrate, offline operator CLI, uid 0;basis=new: Lstat of one of the two fixed floor directories (guard/moves, guard/seeds) to decide whether mkdirAllExact makes it; then the path opened component by component from / with O_NOFOLLOW and O_DIRECTORY, Fstat of the directory itself, and Fchmod to 0755 only when it is a directory owned by root:root; a symlink anywhere on the path, a file or another owner refuses with nothing changed; no file content is read file:Fstat@1327,file:Fstat@974,file:Lstat@220,file:Open@534,file:Openat@720 4716e8029568ea5efdc6464fc91abf30a85ce033290db75e4eee65f10328c7b7 |
| 9 | |