Artifact a22612788f58ac350d61fe4a8bef8213596d5e97419f308b8d5acf1643ca17ce:
- File
src/cli.zig
-
2026-08-01 07:22:43
— part of check-in
[584314dcb7]
on branch sub-manifest
— merge trunk: land the logstore slices, repair the sweep's rot oracle
Trunk's Slice 1/2 made both open paths header-only, so a rotted payload now opens clean and surfaces at content() instead of at open. The storage sweep still assumed open was the tripwire, so two of its own claims were wrong once the merge combined them with this branch's store:
- crashCheckOnce repaired only "if the open itself reports corruption", a precondition Slice 2 removed. Injected rot reached the invariant check and read as data loss. NeedsRepair, private to the harness, now carries "refused AND genuinely damaged" to the repair that already existed.
- rotWithinFrame spelled the per-frame overhead as 22, the header alone, so a frame's own trailing frame_crc32 counted as inert pad. A bitflip in those four bytes makes a reader recompute a correct checksum, compare it to a corrupted stored one, and refuse the frame; the sweep called that data loss. logstore now exports frame_fixed_overhead and the sweep derives it instead of respelling it.
Both are trunk defects, not merge damage: trunk alone fails dst at seed 8. The merge only shifted the draws far enough to reach the first one at seed 3, inside the default gate's range.
cli.zig's verb enum was the single textual conflict: a pure union of trunk's verify and this branch's submanifest and import-git.
fmt, test, gate, dst green. (user: dmestas, size: 258649) [annotate] [blame] [check-ins using]
-
2026-08-01 07:22:43
— part of check-in
[584314dcb7]
on branch sub-manifest
— merge trunk: land the logstore slices, repair the sweep's rot oracle
Trunk's Slice 1/2 made both open paths header-only, so a rotted payload now opens clean and surfaces at content() instead of at open. The storage sweep still assumed open was the tripwire, so two of its own claims were wrong once the merge combined them with this branch's store:
- crashCheckOnce repaired only "if the open itself reports corruption", a precondition Slice 2 removed. Injected rot reached the invariant check and read as data loss. NeedsRepair, private to the harness, now carries "refused AND genuinely damaged" to the repair that already existed.
- rotWithinFrame spelled the per-frame overhead as 22, the header alone, so a frame's own trailing frame_crc32 counted as inert pad. A bitflip in those four bytes makes a reader recompute a correct checksum, compare it to a corrupted stored one, and refuse the frame; the sweep called that data loss. logstore now exports frame_fixed_overhead and the sweep derives it instead of respelling it.
Both are trunk defects, not merge damage: trunk alone fails dst at seed 8. The merge only shifted the draws far enough to reach the first one at seed 3, inside the default gate's range.
cli.zig's verb enum was the single textual conflict: a pure union of trunk's verify and this branch's submanifest and import-git.
fmt, test, gate, dst green. (user: dmestas, size: 258649) [annotate] [blame] [check-ins using]
-
2026-08-01 07:22:43
— part of check-in
[584314dcb7]
on branch sub-manifest
— merge trunk: land the logstore slices, repair the sweep's rot oracle