refactor(harness): route workflow persistence through repositories

This commit is contained in:
User
2026-07-16 18:01:29 +02:00
parent 259f021313
commit c1cddaa667
30 changed files with 925 additions and 348 deletions
+28
View File
@@ -52,3 +52,31 @@ def teardown_to_phase(session_dir: str | Path, target_phase: int) -> TeardownRep
target.unlink()
report.deleted_files.append(artifact)
return report
def teardown_snapshot(repository, snapshot, target_phase: int) -> TeardownReport:
"""Repository equivalent of teardown_to_phase, including orphaned CTE blobs."""
wf = load_workflow()
report = TeardownReport(target_phase=target_phase)
files = {
"question.md": "question", "schema_linking.json": "schema_linking",
"evidence.json": "evidence", "cte_tests.json": "cte_tests",
"sql_final.sql": "sql_final", "validation_report.md": "validation_report",
"retrieval_pack.md": "retrieval_pack", "cte_plan.json": "cte_plan",
"cte_plan_doc.json": "cte_plan_doc",
}
for phase in wf.phases:
if phase.num <= target_phase:
continue
for artifact in phase.artifacts_out:
if artifact.endswith("/"):
for key in list(snapshot.artifacts):
if key.startswith("cte_sql:"):
repository.delete_artifact(snapshot.manifest.id, key)
report.deleted_files.append(key.removeprefix("cte_sql:") + ".sql")
else:
key = files.get(artifact)
if key and key in snapshot.artifacts:
repository.delete_artifact(snapshot.manifest.id, key)
report.deleted_files.append(artifact)
return report