# Todo 52.8 Benchmark No-Overwrite Publication Plan **Status:** in_progress ## Goal Remove the final check-then-replace race from concurrent benchmark report publication. ## Scope - Fully write and fsync JSON/Markdown temporary files in the destination directory. - Publish each file using `os.link(temp, final)`, whose destination creation is atomic and fails if the path already exists. - If either candidate path conflicts, remove only links whose inode matches the current temporary file, choose the next suffix, and retry the pair. - Remove temporary files after both links succeed; retain no lock or placeholder files. - Test a competitor creating/replacing destinations immediately before each link call. ## Files - Modify: `src/agent_lab/infrastructure/benchmark_reporting.py` - Modify: `tests/test_benchmark_reporting.py` ## Verification - `uv run pytest tests/test_benchmark_reporting.py -q` - repeated concurrent/competitor stress tests - `uv run pytest` - `git diff --check`