Record fix batch 4's C# half, and the schemas its new refusal exposed
Three commits on cultnet/selection-cut1 close R-V, R-W, R-X, R-Y, S-4, S-8, S-9, S-10 and S-11. R-V is proven in both row orders, which is the point: the old behaviour depended on which row was enumerated first. Making the validator refuse keywords it does not implement immediately found twelve uses across three committed schemas that nothing had ever validated. Those three are formally unvalidatable now. Nothing broke because nothing ran them, which is the finding rather than a reassurance. Hands named two gaps instead of papering over them: S-11 is fixed by inspection with no dedicated test, and the three schemas need a decision. Caching's three failures remain unproven rather than passing, since the stopgap's container runs as root and they expect a write to fail. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
7fd16ec45a
commit
bfb1ea338e
1 changed files with 37 additions and 0 deletions
|
|
@ -849,6 +849,43 @@ merge.**
|
|||
- **S-12:** correct the fixture's prose, and state Rust's alias reduction
|
||||
where R-E is described.
|
||||
|
||||
**Fix batch 4, C# half, landed** (Sonnet) on `cultnet/selection-cut1`,
|
||||
`52082ec..b7d77b7`:
|
||||
|
||||
- `e99bf46` — R-V, R-W, S-8, R-Y: row identity is `(schemaId, recordKey)`; the
|
||||
cursor's HMAC covers its own body.
|
||||
- `b3a8f6d` — S-9, S-11: `asOf` is scoped to the shards the selection covers;
|
||||
the v1 subscribe door runs before the hop refusal.
|
||||
- `b7d77b7` — R-X, S-4, S-10: the error schema matches the wire; the validator
|
||||
refuses keywords it does not implement.
|
||||
|
||||
Counts on Yggdrasil: Networking 247 pass / 2 skip (was 238, so +9 tests), Mesh
|
||||
255 pass. Caching's three failures are the read-only-directory tests that
|
||||
cannot fail under the stopgap's root container — unproven, not passing.
|
||||
|
||||
**R-V proven in both row orders.** Before the fix, a narrow reference declared
|
||||
to `SelLeafA` resolving a key shared with a `SelLeafB` row depended on
|
||||
insertion order: one order refused a valid reference as `reference_outside_target`,
|
||||
the other silently resolved to the wrong schema's row for `cited` membership.
|
||||
After it, both orders resolve through the leaf set and `cited` never matches
|
||||
the other schema's row at that key.
|
||||
|
||||
**What R-X's new refusal exposed.** Twelve uses of unimplemented keywords
|
||||
across three committed schemas, none reached by any existing test:
|
||||
`cultnet.database-change-raw.schema.json` uses `allOf` and `if`/`then`/`else`;
|
||||
both `cultmesh.verse-catalog-*.schema.json` use `uniqueItems` six times and
|
||||
`anyOf` once. **Those three schemas are now formally unvalidatable** until
|
||||
either the keywords are implemented or the schemas are rewritten. Nothing
|
||||
broke, because nothing ran them through the validator — which is the finding.
|
||||
|
||||
**Two gaps Hands named rather than papered over:**
|
||||
|
||||
- **S-11 has no dedicated regression test.** `HandleSubscribeV1Async` is
|
||||
private and reachable only through a live LiteNetLib round trip. Fixed by
|
||||
inspection, covered only by the suite passing. Owed.
|
||||
- The three unvalidatable schemas above need a decision: implement the
|
||||
keywords, or rewrite them.
|
||||
|
||||
**Ledger correction.** Commits 0 and 1 came in at about twice the §14
|
||||
estimate:
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue