Repository navigation
v0.17.1 — Path-preserving artifact archive
Improvements
- Archive worker artifacts under their staging-relative path.
scripts/archive_run.pycopied every artifact toartifacts/<worker>/<file name>, so two files with the same name in different staging folders (for examplefinal/summary.jsonandred/summary.json) were refused withduplicate artifact basename. Artifacts now land atartifacts/<worker>/<staging-relative path>, andartifacts[]andchecks[].artifact_pathare rewritten to match. A repeated relative path, a path that differs only in case, and a path that leaves the staging directory are still refused before anything is written. Runs archived by earlier versions are unchanged. - Apply the single format correction to a plugin upgrade in the middle of a run: when a review or gate object returned earlier no longer validates against the new schema, the same role adds only what the new schema requires without changing its verdict or findings, and the controller never fills the missing fields in itself.
Verification
- Contract suite passes with a new check for the mid-run version-change rule; removing the rule fails the suite.
evals/test_archive_run.py: 5 archives and 31 rejections (was 4 and 27), including two same-named artifacts in different folders archived with rewritten paths and identical bytes, and rejections for a repeated path, an aliased path (a/../a/...), a case-only difference, and a path escaping the staging directory. The symlinked-parent case is skipped where the platform denies symlink creation.evals/test_review_report.py(5 valid, 32 rejections) andevals/test_prd.py(5 valid, 14 rejections) pass unchanged.
Full Changelog: v0.17.0...v0.17.1