Skip to content

test: take real-clock bounds out of the MAF test hosts - #223

Merged
fabbrik merged 1 commit into
mainfrom
fix/timing-flakes
Oct 31, 2026
Merged

fabbrik merged 1 commit into
mainfrom
fix/timing-flakes

Conversation

@fabbrik

@fabbrik fabbrik commented Oct 31, 2026

Copy link
Copy Markdown
Owner

Three flaky tests, each a real-clock bound racing work on a loaded CI runner:

  • ExperienceCaptureTests.Row6_...: a real 150 ms MaxOpenRunDuration closed the run before its attempt was recorded. Now a manual clock fires the bound after the attempt is captured.
  • AgentExperienceFiveLineSetupTests.A_faulted_model_call_...: one wiring hit the real 500 ms retrieval timeout. The shared host now defaults to a clock whose timers never fire (a test that sets its own clock still wins).
  • AgentExperienceSemanticRetrievalTests.A_generator_that_throws_...: same host pattern, same default.

The same default is applied to three more full-pipeline hosts (verifiers, lessons, provider holdout). Short bounds that guard work that never completes are left alone. Test-only.

Verified: the touched classes plus the parity and setup suites, 30 of 30 runs under 8 CPU burners, 0 failures; MicrosoftAgentFramework.Tests 1439/1439; Core.Tests 1348/1348.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GPXz56QPQAzDSyJTxbQTTy

Row6 (open-run bound) now fires its bound from a manual clock after the
attempt is captured; the shared five-line host, the semantic-retrieval
host and the verifier, lessons and holdout hosts run on a clock whose
timers never fire, so a loaded machine cannot time out a retrieval or an
indexing call that would have finished. SingleCallParity's one test that
needs a real bound opts back into the system clock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GPXz56QPQAzDSyJTxbQTTy
@fabbrik
fabbrik merged commit 0f292e0 into main Oct 31, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant