Add durable evidence storage and item-level novelty accounting

This commit is contained in:
Nico committed 2026-10-14 01:09:55 +02:00
1 parent 66c76a9930
commit c03f70e3e1
15 files changed
+1040 -2

No files matched your search

+14
View File
@@ -114,4 +114,18 @@ def test_full_bug20_package_pair(tmp_path):
assert queried["results"][2]["data"]["matches"][0]["row"] == {"ID":11117}
assert queried["results"][2]["data"]["coverage"] == "unknown"
assert hashlib.sha256(accounted.package.read_bytes()).hexdigest() == before_query_hash
from viano_bug_analysis.evidence import EvidenceStore
for asked in request["requests"]:
budget.reserve(*identity,asked["hypothesis_id"],asked["action_id"],asked["operation"])
current=budget.snapshot(*identity)
queried=InvestigationToolRouter(database_tool=DatabaseQueryTool(normalize_schema_descriptor)).query(current.package,request)
evidence=EvidenceStore(store,router=InvestigationToolRouter(database_tool=DatabaseQueryTool(normalize_schema_descriptor)))
saved=evidence.store_tool_results(*identity,"real-snapshot-query",request,queried)
assert len(saved.record_refs)==3
assert budget.snapshot(*identity).state==current.state
assert PackageValidator().validate(saved.package).valid
for asked,ref in zip(request["requests"],saved.record_refs):
budget.record_evidence(*identity,asked["hypothesis_id"],asked["action_id"],ref)
budget.settle(*identity,asked["hypothesis_id"],asked["action_id"],semantic_score=50,reason="Offline provenance regression")
assert CaseBuilder(store).build(*identity).reused
assert [hashlib.sha256(path.read_bytes()).hexdigest() for path in (diag, src)] == original_hashes