refactor(harness): route workflow persistence through repositories
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user