Files
codebase-memory-mcp/tests
Martin Vogel c9b5b39c94 test(release): restore the archive-extractor contract, and fix what it caught
Deleting this contract with the UI-pack architecture threw away coverage of
machinery that SURVIVED: the extractor still builds the scan-set and association
manifests that check-virustotal.sh reads. Without it the gate could report a
confident green over an incomplete set.

It immediately paid for itself. The extractor was BROKEN by my own edit:

  NameError: name 'variant' is not defined     (process_tar)
  TypeError: add_association() missing 'variant'

Removing the variant from validate_namespace's return left the call sites still
threading it. python3 -m py_compile passes on that -- it is a runtime failure --
and the extractor runs ONLY in the release and dry-run VirusTotal jobs, so
nothing else in the tree or on the 3-OS ladder executes it. It would have
shipped and broken every release verification.

The contract is rewritten rather than adapted: the original was woven through
the pack format (16 archives, 88 associations, per-pack asset math), and a
half-adapted version that passes for the wrong reasons is worse than none. It
now asserts what still exists:

  - the exact 8-archive matrix, 32 member associations, nothing dropped
  - archive containers never enter the scan set as members
  - deduplication is exact: 8 byte-identical LICENSE members collapse to ONE
    scan object while 8 distinct binaries stay 8
  - manifest metadata agrees with its own rows, and every staged object matches
    its recorded SHA-256
  - fail-closed on a surplus member, a missing member, and a short matrix

Registered as Step 0l so it runs in every venue, not just when someone
remembers.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-08-09 19:42:56 +02:00
..
2026-06-28 13:05:05 +02:00