Dashboard › institutional-transition-lab › Distillation
589e549b-3c35-465b-b6f2-e3f4af035782["lore_tm_v1_OdIykkUD1QH_KP30ARtRFzYD6374csnzIMGujyHm5EM","lore_tm_v1_4vLQA-RhNAkkO7argUg2SoEjTId6a6Uy5HBOa1DsYBU","lore_tm_v1_KcnuNHy6BOSHT8uIlq0-AZ5b7QvzXE91hRKRzJ4UEmA","lore_tm_v1_K5hpGeaG-9ZX6EGBRaNdyVcPHB5j1UW8ypDM4uV2GXU","lore_tm_v1_Fuqb6zMrFA7ZjGzU8ABB21-dzNbbvayCXUstu1bGul0","lore_tm_v1_Jyj8xg8dm2B4m6JkFGKS_YAKX8DEiQxSeooL_-JGpdA","lore_tm_v1_7BU477k-1UF1ncrm5auGTAGQ50oNVlYrFLK5P2Bariw","lore_tm_v1_b9m319rVhIKSi_AqPkIFtQNZ1x-lT7ROSIxHkHS07Vk","lore_tm_v1_EuFx2Mk8Nr5UwczUMqDKk9wVGesnvx4n_AQ8gQfyss8","lore_tm_v1_iewucGVle3Abectt93kR4VWE7ZnixCdyiVbc1eqNaYY","lore_tm_v1_xH1U2y6xAOoHyrjucP2GuqDx3aDlGRxJzUUGg3EDCCA","lore_tm_v1_mBJF3Ay9I7YZiW_hKzIIcNU8zNJ1hGAGKHyl2aSvt9A","lore_tm_v1_FiRkk6AnzNcykJ1kljWGg2_j-0N9smDiLaVrtNWOoF4","lore_tm_v1_WdNA6YQ-ASTrWrcQ2VOHTnDi82jQMt5t6lrY4veEGZU","lore_tm_v1_YFTfC8MYJ4UtAq0ZuMaY2BmbR19y_QgoD-1gOWF7ooY","lore_tm_v1_Yt02cmMklKJWF8xtnHyp3bVc9s8KDhFbK2w9PA98OPg","lore_tm_v1_9_PHp4iBEH-_eJ1qaMSjlQbBCEjHCOiVf0P3QM3xEos","lore_tm_v1_LhNU3tB0cEr96-pe5P2Q2fkQQ8a7VOrAbErjvuinnDI","lore_tm_v1_JuoFAhJPQSS8mjJv5LRVqkGz6C5SeVYThDTIGxN4E9g"]
/home/byk/Code/institutional-transition-lab, replacing a ZIP-stream reviewer that had returned empty twice; audit is disjoint from the resource-accounting audit.documents.json and v1.2-adjudication-package.json; CRC/corrupt/truncated stream handling; exact member-byte comparison with already verified durable payload bytes; member-read cleanup/error behavior; and whether malformed required streams can be accepted or parsed._read_regular_file; JSON strictness; pin identity/hash ordering; CLI outputs; governance bodies/codings/outcomes/reports/dates/detector output; and source-adjudication scopes.src/institution_lab/governance_adjudication.py and narrow tests in tests/test_governance_adjudication.py.file:line references, PASS/CONCERN/MUST-FIX/BLOCKED labels, a deterministic regression for each defect, and—if clean—a PASS statement with probes and residual risks.MERGE or DO-NOT-MERGE.src/institution_lab/governance_adjudication.py: _verify_input_payloads() at lines 157-217 validates manifest identity, computes hashes, opens artifact using zipfile.ZipFile(io.BytesIO(artifact)), obtains archive.infolist(), counts member filenames, fetches each required member with archive.getinfo(member_name), reads through with archive.open(info) as source, compares returned bytes against durable bytes, catches zipfile.BadZipFile, and then parses the durable documents, coding_package, and adjudication_schema bytes.members = {"documents.json": documents, "v1.2-adjudication-package.json": coding_package} at src/institution_lab/governance_adjudication.py:190-193; missing exact names raise ValueError("artifact member missing: ...") at lines 195-198; reading occurs via source.read(MAX_ARCHIVE_MEMBER_BYTES + 1) at lines 201-202; returned bytes are compared with durable bytes at lines 205-206.src/institution_lab/governance_adjudication.py: MAX_ARCHIVE_MEMBERS = 128 at line 67, MAX_ARCHIVE_MEMBER_BYTES = 16 * 1024 * 1024 at line 68, and MAX_ARCHIVE_EXPANDED_BYTES = 64 * 1024 * 1024 at line 69.test_input_manifest_rejects_files_not_from_pinned_artifact in tests/test_governance_adjudication.py:729-773 writes b"different documents" into archive member documents.json and expects ValueError matching artifact member mismatch: documents.json.test_input_manifest_rejects_duplicate_artifact_members in tests/test_governance_adjudication.py:883-905 appends a second documents.json and expects ValueError matching artifact member is not unique: documents.json.3.13.11, pytest 8.4.2, pluggy 1.6.0, and anyio 4.14.2; result was exactly 2 passed, 76 deselected in 0.10s from 78 collected tests.verify_input_manifest() at src/institution_lab/governance_adjudication.py:220-239 passes bytes from the artifact, documents, coding package, protocol, coding schema, and adjudication schema into _verify_input_payloads() and returns .pins.documents, coding package, and adjudication schema.documents.json raised ValueError: artifact member missing: documents.json; missing v1.2-adjudication-package.json raised ValueError: artifact member missing: v1.2-adjudication-package.json; neither case invoked parsers.documents.json raised ValueError: artifact member is not unique: documents.json; duplicate v1.2-adjudication-package.json raised ValueError: artifact member is not unique: v1.2-adjudication-package.json; neither case invoked parsers.documents.json and v1.2-adjudication-package.json rejected with ValueError: artifact is not a valid ZIP archive; neither case invoked parsers.zlib.error: Error -3 while decompressing data: invalid block type; neither case invoked parsers.raw_read remained b'{}', the declared length remained 2, and verification accepted both required names.b'{}': ZIP_DEFLATED had compressed-length evidence (1, 4, b'{}', False, ...), ZIP_BZIP2 (1, 37, b'{}', False, ...), and ZIP_LZMA (1, 21, b'{}', False, ...); native decompressor eof=False in every case, yet verification accepted and invoked documents, coding package, and adjudication schema parsers.documents.json and v1.2-adjudication-package.json were rejected before parsing./home/byk/Code/institutional-transition-lab to unique selection/opening of documents.json and v1.2-adjudication-package.json; CRC/corrupt/truncated stream handling; exact comparison against already verified durable payload bytes; member-read cleanup/error behavior; malformed-stream acceptance/parsing; and narrowly corresponding code/tests in src/institution_lab/governance_adjudication.py and tests/test_governance_adjudication.py.file:line evidence and PASS/CONCERN/MUST-FIX/BLOCKED labels, and a deterministic regression for each defect.MERGE or DO-NOT-MERGE.MUST-FIX — Truncated compressed streams are accepted and parsed: archive.open(info).read(...) at src/institution_lab/governance_adjudication.py:201-202 trusts ZipExtFile to validate stream completion; subsequent checks at lines 203-206 only enforce size and exact decompressed-byte equality and do not verify the compression stream reached its native end marker; parsing then proceeds at lines 209 and 215.ZIP_DEFLATED, ZIP_BZIP2, and ZIP_LZMA; each native decompressor reported eof=False, but the verifier accepted the bundle and invoked every downstream parser.ValueError before _parse_json_object runs.CONCERN — Corrupt DEFLATE errors escape without normalization: reading at src/institution_lab/governance_adjudication.py:202 can raise native decompressor exceptions, while lines 207-208 catch only zipfile.BadZipFile; setting DEFLATE’s block type to the reserved value produced zlib.error: invalid block type for either required member. Parsing was not reached, and both source and archive context managers closed correctly.ValueError with the decompressor exception retained as its cause, no parser invocation, and closed source/archive handles.PASS — Required-name selection: exact duplicates and missing required entries are rejected by src/institution_lab/governance_adjudication.py:181-198; probes covered both exact required names and did not reach parsing.PASS — CRC mismatch: corrupt stored payloads raised the wrapped invalid-ZIP ValueError through src/institution_lab/governance_adjudication.py:207-208; parsing did not run.PASS — Exact byte comparison: valid-CRC members differing from durable bytes were rejected at src/institution_lab/governance_adjudication.py:205-206 for both required names before parsing.PASS — Cleanup: nested context managers at src/institution_lab/governance_adjudication.py:180 and :201 closed member and archive handles after both wrapped CRC failures and raw decompressor failures.tests/test_governance_adjudication.py:729-773 and one duplicate-name case at tests/test_governance_adjudication.py:883-905; no committed required-member CRC, corrupt-stream, truncated-stream, or cleanup regressions were found.DO-NOT-MERGE.