M3a task 01: copy a strict.rs of its own
The strict.rs in files/ is the merged one and walks task 02's new wire fixtures, so task 01's gate could not pass; the first run stopped on it. Task 01 now copies area A's version, checked to give 3 and 5 passed at task 01's end state. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -39,7 +39,7 @@ tip T17) and what that check exposed. The detail is in `checks-a.md` to `checks-
|
||||
|
||||
| # | File | Delivers | Tests that define it | Check | What the check exposed |
|
||||
|---|---|---|---|---|---|
|
||||
| 01 | `01-proto-audit-types.md` | `AuditRecord`, `AuditEvent`, `DecisionRecord` and friends | `proto/tests/records.rs`, `strict.rs`, `fixtures/records/audit.jsonl` | reference (the types) | `DecisionRecord`'s unit variants accepted unknown fields (serde ignores `deny_unknown_fields` there); found by `strict.rs` |
|
||||
| 01 | `01-proto-audit-types.md` | `AuditRecord`, `AuditEvent`, `DecisionRecord` and friends | `proto/tests/records.rs`, `strict.rs`, `fixtures/records/audit.jsonl` | reference (the types) | `DecisionRecord`'s unit variants accepted unknown fields (serde ignores `deny_unknown_fields` there); found by `strict.rs`. After hand-over: the merged `strict.rs` named task 02's fixtures, so task 01's gate could not pass (fixed with `strict.rs-task01`) |
|
||||
| 02 | `02-proto-admin-wire.md` | the admin messages, `u64` approval ids, `approval_pending`, `tool_denied` | `wire.rs`, `turn_wire.rs`, `admin_wire.rs`, `strict.rs`, 17 wire fixtures | reference (the types) | the same serde hole, found independently; serde's array form for structs (left open in `decisions.md`) |
|
||||
| 03 | `03-proto-chain-verifier.md` | `ChainVerifier`, `ChainReport` | `proto/tests/chain.rs`, 30 fixture logs with real hashes | reference, generated fixtures, 8 mutants | four spec gaps: which `seq` the lists report, the resumed verifier inside a failed region, a `Recovery` describing nothing, the report fields a writer needs |
|
||||
| 04 | `04-brokerd-config.md` | `brokerd.toml` into `Config` | `brokerd/tests/config.rs`, 6 fixtures | minimal reference | socket paths when only `home` is set; stale "Used by" column in `dependencies.md` |
|
||||
@@ -64,7 +64,9 @@ tip T17) and what that check exposed. The detail is in `checks-a.md` to `checks-
|
||||
|
||||
`files/` holds everything the tasks copy in, byte-identical to the reference tree
|
||||
(`~/src/boxmaker-ref`, branch `m3a-ref`, unpushed). `files/Makefile-task21` is task 21's
|
||||
`Makefile`; `files/Makefile` is task 22's, with the end-to-end line.
|
||||
`Makefile`; `files/Makefile` is task 22's, with the end-to-end line. Likewise
|
||||
`files/crates/proto/tests/strict.rs-task01` is task 01's `strict.rs`; `files/.../strict.rs` is task
|
||||
02's, which also walks task 02's new wire fixtures.
|
||||
|
||||
**State of the checks at hand-over.** In the reference tree `make gate` passes in full, the
|
||||
end-to-end line included, so every given test has passed against some implementation. Area E's
|
||||
@@ -96,7 +98,7 @@ enough. Most spec defects were found by writing test tables and exit lists, not
|
||||
|
||||
1. `git log --oneline master..m3a`: twenty-two commits with the trailer.
|
||||
2. Copied files unchanged:
|
||||
`for f in $(cd docs/plans/M3a/files && find . -type f ! -name Makefile-task21); do cmp "docs/plans/M3a/files/$f" "$f"; done`
|
||||
`for f in $(cd docs/plans/M3a/files && find . -type f ! -name Makefile-task21 ! -name strict.rs-task01); do cmp "docs/plans/M3a/files/$f" "$f"; done`
|
||||
3. `git diff master..m3a --stat -- docs/design.md docs/specs docs/plans docs/runbook.md AGENTS.md CLAUDE.md deny.toml`
|
||||
is empty.
|
||||
4. `make gate`, `make audit`, `make verify-device`, `tools/check-m3a-device.sh`.
|
||||
|
||||
Reference in New Issue
Block a user