Files
ersatztv/scripts/tests
timothy aa24e57343 fix(807): the last unannotated item builder, and three more resolver blind spots
Self-attack ahead of round 6, on the two things every round has found defective:
the newest hand-written code, and the completeness of an enumeration.

CONSTRUCTION SITES, enumerated rather than sampled. 15 wrappers now take
`Complete<>`; walking each one's nested item type to its builder leaves exactly
one unannotated — `DecosScreen.breakToRequest` / `toReplaceRequest`, feeding the
`Complete<>`-annotated `replaceDeco`. Round 5 called this non-blocking because a
declared return type is already a contextual position, so the phantom direction
fires there. True, but the MISSING direction does not: a new optional member on
`DecoBreakContentRequest` would have been droppable. Both annotated.

RESOLVER, probed with constructed schemas rather than read. Three more shapes it
could not see, all silent misses:

  items in the 3.0 TUPLE form (a list)   -> nothing
  prefixItems (the 2020-12 spelling)     -> nothing
  dependentSchemas                       -> nothing

`isinstance(items, dict)` skipped the list form silently. All three are handled
now; `dependentSchemas` gets the `if` treatment — properties collected because a
client may send them, conditional `required` discarded because it binds only when
the trigger key is present.

Two shapes probed and confirmed already CORRECT, pinned so they stay that way:
`additionalProperties` contributes no members (it describes values under
arbitrary keys, not named members), and `not` cannot make a member required.
`else` was already handled; it now has a case of its own rather than riding on
`then`'s.

Seven new parametrised cases, 27 in the file. Population unchanged at 9 with set
equality — every one of these is a latent hole, not a live miss, which is the
point: "it does not appear in today's document" is the reasoning that has been
wrong five times on this issue.

902 passed 2 skipped (up from 895), ruff format 0, typecheck 0, eslint 0,
1200/1200 web, build 0.
2026-08-23 01:36:32 +02:00
..