# Known-flaky test nodeids (substring match) — never counted as NEW by the gate.
# The suite has network/async nondeterminism; run-to-run the failing set varies by
# a few tests. Add a nodeid (or a unique substring of one) here when you confirm it
# flakes rather than reflecting a real regression. Lines starting with # are ignored.
#
# Seed: event-loop flake noted in prior regression passes (passes on rerun).
test_avatar_hasher
# Timer-granularity flake: asserts elapsed() >= 0.1 after asyncio.sleep(0.1), but
# on Windows the sleep can return a hair early (~15ms clock granularity), so
# elapsed() is occasionally < 0.1. Confirmed to fail ~1/5 in isolation, in
# harvest's TimeBudget (backend/core/time_budget.py) — unrelated to any feature
# change. Passes on rerun.
test_elapsed_increases_over_time
# Timing flake under concurrent gate load: drives a real asyncio.sleep(1) slow
# source against a phase-timeout boundary, so CPU contention across the gate's
# 4 parallel workers shifts when the timeout fires. Passes 5/5 in isolation
# (~0.1s); in backend/modules/subdomain_intel.py — unrelated to any feature
# change.
test_passive_source_telemetry_survives_phase_timeout
# Timing flake under concurrent gate load: drives a real slow harvest module
# against the investigation wall-clock budget boundary, so CPU contention across
# the gate's 4 parallel workers shifts when the budget truncation fires and
# whether the partial result lands. Passes 9/9 in isolation (3 files x 3 runs);
# in tests/test_orchestrator_budget_integration.py — surfaced (not caused) by
# Phase 2B adding another test file to the 4-worker pool, unrelated to any
# feature change.
test_slow_module_gets_partial_result
# Wall-clock concurrency flake under gate load: drives two 0.1s track loops and
# asserts they overlap (elapsed < 0.2s). Under CPU contention across the gate's
# 4 workers the event loop is starved and the two 0.1s sleeps slip past 0.2s.
# Patches _execute_item and never touches product-mode code; passes 5/5 in
# isolation. In tests/test_harvest_runner.py — surfaced (not caused) by Phase 2C
# adding another test file to the 4-worker pool.
test_both_tracks_run_concurrently
