land: atomic-save-test-evidence

Merged
AF
3d ago
+254-39

Accepted agent delivery; branch-keyed search descriptor included.


Summary by cubic

Fixes a flaky atomic-save watcher test on macOS CI. Each poll asks call_tree then callers; when FSEvents delivered the save between the two requests, the old loop held the earlier call_tree answer to evidence from callers and failed a correct run. Answers are now judged against what the daemon knew when each was requested, and learned from before the next request.

  • Adds test-timing-hooks-only seams (AFT_TEST_WATCHER_INTAKE_GATE_FILE plus a .flush-hold variant) that hold watcher intake and flush while gate files exist, logging each path taken in; the flush hold applies only while paths are pending so idle ticks never stop the thread before intake.
  • Adds a test that releases the save exactly between the two questions of one poll and asserts the round straddled the delivery, reproducing the flake deterministically.
  • Refactors polling so call_tree and callers are each checked and learned from independently.
  • Includes the harness slice descriptor for search benchmarks.

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; no new actionable issues were found.

Summary

This PR fixes how the atomic-save test judges answers received around a watcher event.

  • Atomic-save tests judge each answer using only what they knew then.

Both earlier unnumbered findings are addressed: flush stays held until the answers arrive, and idle watcher ticks skip the flush hold.

Reviews (4) · Last reviewed commit: "Skip the test flush hold on idle ticks" · Reviewed by Greptile