Skip to content
Like what we’re building? Star on GitHub

Machine-dependent tests — annotate, measure, re-check ​

Record each machine-dependent failure: test, machine, evidence, disposition and re-check date. Keep assertions; a missing prerequisite means unverified, not green. Record rerun timing beside the first failure. Fix the class and prove a reverted fix fails. Fixtures own scratch directories, HOME, config and children; see hermetic gates.

Register ​

Test / checkMachine classEvidence (log / SHA)DispositionRe-check
openapi:check:dryConcurrent worktrees#3037: a passing check restored another tree’s global /tmp backupsGenerate privately and compare with the index; never write or restore checkout files. Pipe-ordered worktrees and original symlink/hardlink witnesses preserve bytes and inode identity during generation and on failure/cancellation. Full gates still run singly.2026-11-11, and on generator changes
Background-session no-wait witnessesLoaded ARC runner; fake CLI startup counted in the session duration#3008: correct result at 1.509 s against 1.5 s; a startup-only delay reproduces it at 1.661 sTwelve no-wait ceilings become explicit-clock close/idle decisions while retaining the real CLI scenarios. Inventory and proof boundary; the fourteen duration-budget assertions remain separate.2026-11-10, and on background lifecycle decisions
TestConnectWaitsForABrokerThatIsNotUpYet, TestWaitForBrokerIsBounded… (pkg/queue/nats)Loaded ARC merge-group runnerrun 41687370688, #3010: calls = 1; 31 attempts, last an i/o timeoutCorrected, verified 2026-11-04: loop, Connect and store twin in synctest; Connect needs natsgo's verdict, timeouts past the attempt, exact budget. Mutants redden them2026-11-11
TestEngineRun_IsolatedSubbotSiblingsOverlapConcurrent isolated children registering worktrees in one repository#2670; an empty commondir in a pending registration reproduces Git's exact refusalRuntime setup, reconstruction and cleanup serialize their Git registry commands in-process, keyed by the physical common directory. A virtual-time witness holds an incomplete registration, checks main/linked/symlink spellings and an independent repository, then releases it; removing the gate or making it global fails it. The three-child overlap witness is unchanged.2026-11-04, and on runtime worktree lifecycle changes
TestRunSpreadCoverageStrictCheck/a_Forbidden_plus_an_expired_deadline_still_names_the_RoleLoaded ARC test-unit runner; shell startup races a 200 ms probe#2571, PR runspreadCoverageFailureCause decides from the explicit cluster and probe errors; the witness stages both, other rows keep real kubectl shims (Forbidden, timeout, node coverage). Reversing the precedence or dropping the probe error at the caller fails it. Budget and Loki cases already repaired by 20e4aeb4c, 5ee792110; ARC tracked in #2564.2026-11-04, and on doctor diagnostic changes
TestShutdown_DrainDoesNotLeakAgainstASerializingTrackerLoaded ARC merge-queue runner under -race#2072, merge-group failure: 1/32 claims leaked despite the deadline-bucket assertionVirtual time drives the serial tracker; the native store's kernel watcher stays outside the bubble. Refresh and release must each enter with their whole budget, every call must have a deadline, and all 32 real cards must return to Ready unclaimed. Moving the revert budget before admission, dropping its bound, or skipping release fails it.2026-11-04, and on drain budget changes
TestDeliveryProbeOnlyAWellFormedAnswerCanHoldParallel ARC socket fixtures#2745 merge-group failure: a non-redirecting row's target received a request; the reservation witness proves the old refused address can be reclaimedThe shared deadAddress fixture owns a bound, non-listening socket until cleanup: no other fixture can claim it, the kernel still refuses connections. Every verdict, retry-count and zero-redirect assertion stays.2026-11-03, and on probe fixture changes
TestBackground_NoWrapUpInsideATurnTheCLIStartedLoaded ARC merge-queue runner; fake CLI and stream reader scheduled independently#2745 merge-group failure, commit b7f7f0ca8; a local 800ms reader delay reproduces itCorrected, verified 2026-10-27: keeping the CLI round trip, the explicit-clock lifecycle fixture tests the expired timer before and after assistant text and at the turn's close; removing either in-turn guard fails it. Ten race repetitions and the delayed-reader scenario pass.2026-11-03, and on lifecycle timer changes
TestLaunchDetached_NamesTheDroppedOverridesOperator workstation with an installed iterion outside PATHe40def071, including its mutation recordCorrected, verified 2026-10-24: proc.SetInstallPathCandidates makes the fixed install tier injectable; the witness empties that tier and pins HOME and ITERION_BIN.2026-10-31, and on binary resolver changes
TestRepoRootFindsTheNearestRealGitEntryOperator machine with a foreign, empty /tmp/.git, recreated by an unidentified processOperator observation, #2585 mission, baseline e40def071; no archived log. Re-check 2026-10-24 (+ #2585 diff): reproduced in the jailed task check; empty, owner jo, mode 0555; rmdir: Device or resource busy, still redEnvironment parasite. Inspect ownership/type/content; before a verdict remove only the confirmed empty directory with rmdir /tmp/.git, record the purge and rerun; an rmdir refusal stops the purge. Never delete it recursively, force-unmount it or weaken repository-discovery assertions.2026-10-31, and before the next affected verdict
internal/ciguard's script guards — every helper that hands a script path to a child shellAny machine with a warm GOCACHE, including a CI job that restored oneMeasured 2026-10-29 mutating scripts/ci/baked-actions-manifest.sh for #2435: two mutants deleting a generator rule came back ok (cached)go test caches on the files the TEST process opened, not a script a child shell reads: every such helper reads it through scriptUnderTest (refusing an empty one) before exec.Command, and both mutants then redden on their own subtests with a warm cache. -count=1 hides the class for one run only2026-11-05, and whenever a new guard shells out
🧪 Tests workflow, queued jobsSaturated ARC runner poolOperator observation, #2585 mission: runs queued for hours; no run URLInfrastructure delay, no test verdict. On recurrence attach run URL, SHA, queued/start times and runner class; measure queue wait apart from execution (queue runbook). Missing/cancelled jobs never count as passing.2026-10-31, and at the next landing
TestRun_aLeaderWhosePassesFindNothingToDoKeepsItsLease (pkg/lease)Loaded ARC runner41236299236 (63aac5608), 0.93 s; also on #2732's mongo job; green locally ×5Corrected, verified 2026-11-02: the scenario runs in a synctest bubble — the 150 ms TTL and four idle TTLs are virtual, so the stall that reddened CI cannot starve the holder. Removing the renewal's deadline reset reddens it on its own "a peer ran N passes" assertion (#2854).2026-11-07, and on the renewal and step-down timers
TestBrokenListSplicesStayLinear (pkg/dsl/parser)Loaded ARC runner under -race41233597165, 3.42 s; 41236299236, 24.14 s; local ~1.9xT41: the ratio reads min/min — load only inflates; a quadratic rescue scores ≥ 4x even at its best.2026-11-07, and on parser splices
TestEvalWorkBudgetCountsNodeEvaluations (pkg/dsl/expr)Loaded ARC runner under -race41236299236: refusal at 20.06 s vs 10 s; 1.45 s locallyT41: tripwire at 2 min — its target is the budget not biting (~1 h). The refusal stays asserted2026-11-07
TestAnInstallTakesTheLockOfEveryFileItWritesOrRemoves (pkg/botinstall)Loaded ARC runner under -race41236299236: the lock sweep blew its 300 ms on a stalled shard; green locally ×3T41: test installLockWait at 2 s (production unchanged); the bounded wait and the 10 s watchdog are untouched.2026-11-07
TestSiblingBrokenListsParseInLinearTime (pkg/dsl/parser)Loaded ARC runner under -race41243004752 (5058166bc): 6.43 s vs 5 s; ~150 ms locallyT42: bound at a minute — the quadratic regression it prices takes minutes at this size2026-11-07
TestBackground_ADeliveredResultNoLongerHoldsTheGrace (pkg/backend/delegate)Loaded ARC runner under -racemain witness on the T43 tip dfd8c8db4: 4.15 s against the 4 s ceiling; green locally ×3T44: ceiling at 10 s — it prices the grace HELD past a delivered result, which parks the run for the 20 s result wait; the margin stays decisive.2026-11-08, and on the background-session grace
signOutMachineTransitions (studio) — "holds the start while the named session is held"Loaded ARC studio jobT43 witness: the OIDC landing listed 4 elements where 2 were expected (a 500-answering logout retried under load); the file passes 3× locallyLoad-induced duplication in the landing's pending path, unreproduced. One occurrence; a recurrence gets a ticket and a query-dedup fix — the assertion stays.2026-11-08, and on the sign-out machine
TestARefusedPropertyIsNotRecorded (pkg/dsl/parser)Host running the full task check suiteT48 gate (2026-11-02): the quadrupling ratio measured 8.6x against the 8x bound with the table perfectly correct; green ×3 standaloneT49: min-of-3 on both sides, the repair T41 gave TestBrokenListSplicesStayLinear — load only inflates a min; a quadratic Set scores ~16x at best, so the 8x bound stays decisive.2026-11-09, and on parser property tables
TestFanOutStopsOnUndecidedEffects (pkg/runtime)Loaded ARC test-unit and race-shard legs#2852: reds pre-fix 2026-10-29: fb16b094a (multi/deadline/late=false, test-unit leg), 7384a1494 (each/deadline/late=true, race-shard (0)); zero re-flakes in the 16 failed main runs since e9df14815, 14 tip SHAs (measured 2026-11-02)e9df14815 (#2843): 2 s budget, a guard names a pre-branch loss; the machine-derived deadline the ticket asks for lands only if this re-flakes2026-11-09, and on fan-out deadline changes
TestGuardFoundRefusesALiveIntruder (pkg/internal/proc)Loaded ARC race shard; an exec in progress hides /proc/<pid>/environ from a scan for an instant, longer under loadrun 40908455782 (7384a1494, 2026-10-29): guardFound accepted a live process this test did not startCorrected, verified 2026-10-29 by 8d51e9dc6: the verdict reads a scan that provably held the intruder (afterGuardScan, premiseWait) and must name the pid the helper printed; both mutants redden on their own assertions. Zero re-flakes in the 15 failed main runs since it landed (via T34; measured 2026-11-02)2026-11-05, and on the proc scan guard
TestSweepStopsAProcessThatShowsAfterAnEmptyScan, …ANonEmptyScan (pkg/internal/proc)Loaded host, crowded PID namespace: a sh-program scan without grep -z takes 4.5–8 sLocal, load 45/102: premise: … [0 1 0 1 0]; 3/3 under 300 extra processes + 48 busy loops, sibling 2/2, f5de1b70fCorrected, verified 2026-11-03: no deadline in a window's phase, waits count scans, empty-scan members must die of TERM; green 3/3 under that load. Drop mutants redden all arms2026-11-10, and on the sweep witnesses

Process capture, checkout-root and installed-binary witnesses: process fixtures.