Test suite, first pass: a disabled list replaces the quarantine, sysret waits on its report, update_* reboot through the power connector - #542
Conversation
…t each wait spans The four update_* reds on main (nightlies 36290616312 and 36306830048) are one defect. #527 moved the machine's stop from a `power` syscap held by the caller to init's `power` connector; #530's tests/updatecase/system.toml still granted toybox `syscap = ["power"]`, so `ssh … reboot` ran toybox's reboot applet with no connector, it was refused and exited 1 (`exit: reboot pid=8 code=1` on the console), and the machine never reset. Every test that reboots over ssh then waited out the 300 s GUEST_WEDGED backstop, because the kernel's own 10 s reporter kept the console from ever going quiet: STALL 303-304 s, or "did not stop at a reset within 300 s" on the QMP hold. The three update_* tests that never reboot over ssh were green. Reproduced on the dev host (TCG): the same STALL at 303 s. The config now hands toybox `receives = ["power"]`, as every other config that reboots over ssh does. All four pass locally: update_floor 27 s, update_boots 90 s, update_falls_back 44 s, update_refusals 51 s. And the waits are bounded by what each one spans rather than by the 300 s backstop: the guest's stop by the bounds it declares (init's FLUSH_BOUND 5 s, quiesce::PARK about 3 s, the xHCI BARRIER 4 s), plus panic-reboot-fast's 5 s where a kernel dies, plus each boot priced by the ceiling wait_for_ready holds a boot to (now one function, boot_ceiling). Liveness scaling as everywhere, and never past GUEST_WEDGED. A red now carries the console since the reboot, which is where a refused reboot says so. Negative control: the stale syscap line restored as a checked patch reds update_floor_is_the_images_own in 57 s against its 54 s bound (was 303 s), quoting `exit: reboot pid=8 code=1`; EXIT=1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014iqcj4jDKpaiDX8B7CMvmK
The owner's rule, as a gate: a registration red in RED_STREAK consecutive nightly runs on main is quarantined with an issue or reverted. The nightly-red job gains a step that reads main's nightly runs through the Actions API (`gh api`: the run list, each run's jobs, and the raw log of each job that ended neither green nor skipped), takes every `FAIL`/`STALL` verdict line `report_line` prints (never an `XFAIL`, which a quarantine row excused), and reds naming each registration red in all of the newest RED_STREAK runs and those runs. A run that judged nothing red ends every streak, so older runs are only read while the newest has reds. Two, because that is the reproduction a one-wide run no longer makes in-job (the next commit drops its ALONE rerun): red on two runners on two nights is a defect reproduced, and the first red has already raised the alarm a night earlier. The job needs `actions: read` for the history, and gh >= 2.97 for `gh api --allow-escape-sequences`, without which gh refuses a raw job log. Run once off a runner against the live history (a throwaway ignored test, not committed): it read runs 36306830048 and 36290616312 and named eight registrations red in both — the four update_* the previous commit fixes, and screen_diag_boot, usb_flush_optional, usb_reset_hands_devices_back and usb_transport_break, none of them quarantined. Negative control: a_registration_red_two_nightlies_running_is_red stages a history crossing the streak and asserts the red; the judge mutated to find no streak (checked patch, built, restored) turns it red, EXIT=101. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014iqcj4jDKpaiDX8B7CMvmK
…uns nothing sysret_ss_reload's probe line lands before ===READY=== on every recorded boot, and drain_until reads only lines after it, so the test always spent its whole drain ceiling (10 s scaled by width and host; 123-227 s in the fast tier on the dev host). It now asks the boot log first and drains only for a report still owed, ending on any of the probe's three outcomes; a probe that could not arm is now a red by that name. One run each at width 1 on the dev host: 16 s before, 2 s after. Negative control: the kernel's three `sysret-ss:` lines renamed (checked patch, the mutated kernel built and booted — its renamed line is in the capture, restored) reds the test by name at the drain's ceiling, EXIT=1. The ALONE rerun is skipped when the run is one wide. Every red of such a run already had the host to itself, so the rerun cannot reach the finding it exists for (a red only beside other guests: a wrong Sched::Parallel) and only samples the same host and binary twice — a full second ceiling for any red that hit one, about 1.3 ks of nightly 36306830048's guest time. Whether a red on the one-wide nightly lanes reproduces is now the previous commit's red streak. Each red still carries an ALONE line saying it was not re-run; a wider run's reds, serial tail included, are re-run as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014iqcj4jDKpaiDX8B7CMvmK
|
Gate. CI run 36318468510 at 40dd2f5: Net lines. +324 −39 in total.
Item 4 (the red-streak gate) is rejected by the owner and was not reviewed. It is listed under REMOVE. BLOCKER
NOTE
REMOVE
Overlap with #535 (head 877b8c9)
SEND BACK |
Both are sent back by the review of #542, and the owner rejects the first. - The red-streak gate (`src/ci.rs`'s `nightly-red` second step, `RED_STREAK` and everything that read the run history, and nightly.yml's `actions: read`) goes whole. A red is a red: a flaky test is disabled at once with its issue, so nothing waits two nights to find out that it reproduces. - `tests/common/update.rs` waits on the machine under `qemu::GUEST_WEDGED` again, as every other wait does. `Spans`, `A_BOOT`, `A_STOP`, `A_REBOOT`, `A_DEATH`, `QemuInstance::boot_ceiling` and `take_pending` go. `A_STOP` was a timing verdict and not a hang bound. It left out the stop's sync, which only `block::DEADMAN` bounds (120 s), and it counted `quiesce::PARK`, which that module calls a budget and not a bound. On the one-wide KVM lane it came to a flat 12 s. - `since_the_reboot` goes with them. It existed to show a refused `reboot`, and #535's `ssh_fire` now refuses one by name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014iqcj4jDKpaiDX8B7CMvmK
The owner's ruling: a red is a red, and a flaky test is disabled at once with an issue filed. The quarantine ran a listed test every time and let a failure through when its text held one of the row's quoted fragments. The disabled list is simpler. - A row is a registered test name and the issue file that owns it, nothing else. - A disabled test does not run. The harness's one selection closure (`keep`) leaves it out of every entry point: the ordinary run, gate A and the metal loop. Every run prints one `[toyos] disabled: <test> — <issue>` line per row before anything is compiled. - `redlist::check` refuses a row whose test nothing registers, whose issue is not a file under `issues/`, or that names a test twice. The harness runs it against the registry, and `cargo test --lib` runs it against the tree. - The change that fixes a test deletes its row, which re-enables it. - All thirteen quarantine rows become disabled rows. Each one's issue file exists, and the nine that were `open` are now `expected-red`. - `cargo run -- --known-red <test>` keeps its name, because some forty issue files cite it. It answers "YES, disabled" or "NO". - What this made dead is deleted: `says` and the fragment matching, the gate that refused a harness-framing quote, `Verdict::Quarantined` and the `Option` rows on `Pass`/`Fail`, the XFAIL and "quarantined for something else" lines, the tally's `fired`/`quiet` and its "ok, NOT clean" status, and ci.rs's XFAIL filter. The harness's `quarantine_verdicts` and `quarantine_entries` go. What `quarantine_exit_status` held that did not concern the quarantine (exit 1, 2 and 0) is now `run_exit_status`. - The CLAUDE.md sentences on the quarantine are one sentence each now, as the orchestrator authorized. Two review NOTEs from #542 ride along: - `sysret-ss: reloaded` and `sysret-ss: NOT reloaded` are consts beside the unarmed one. - The one-wide rerun skip is `toyos_build::alone::reruns`, which a host test reaches. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014iqcj4jDKpaiDX8B7CMvmK
|
Review of #542, round 2, at cb008fa. Gate. CI run 36320222303 at cb008fa: Net lines. +244 −627 in total. Round-1 BLOCKER
The round-1 NOTEs are closed:
The round-1 REMOVEs are closed:
BLOCKER
NOTE
REMOVEEach item is a line that describes the quarantine or a row that no longer exists.
Answers to the brief
SEND BACK |
Nightly 36314576406 at a4f68c5 reddened lan_swap and xhci_flap in guest (1) and handle_kill_policy in guest (8). None of them is this branch's. Each is filed where its code lives, with the recommendation that it goes on #542's disabled list when that lands. - xhci_flap: a lost wake in main's driver. Slot_gone's Teardown arm leaves the port Settled with the device in it and CSC unacknowledged, and poll steps no port unless one is dirty or outstanding. The same sentence was red on wt/toyos-lld at a55d62c (run 36287592139). On the dev host, QEMU 11.1.1 TCG, a printed serial shows every other collapse stuck about 700 ms until the next cycle's edges. The committed four-cycle gate is green by parity. At CYCLES = 3 it is red (EXIT=1), and adding `self.ports_dirty = true;` after torn_down() makes it green (EXIT=0). All measurement patches were applied checked and reverted, and the tree is clean. - lan_swap: the redial ceiling that is already recorded (issues/diagnostics/a-swaps-redial-asks-again-with-no-event-to-wait-on.md), reached on the 82574 bench. The branch changes nothing on that path. - handle_kill_policy: the same failure text, byte for byte, on main's nightly at 16d2e64. Consistent with the deferred release this branch does not touch. Named runs, dev host, one at a time, branch 877b8c9 / main 16d2e64: xhci_flap 0/0, lan_swap 0/0, handle_kill_policy 0/0, log_reserve_window_negative 0/0. The shard-8 `log-gate: FAILED` line is that negative control's owed refusal, printed by a passing test on both trees. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014iqcj4jDKpaiDX8B7CMvmK
…n and owner, checked on every path, and the ALONE re-run machinery is gone The BLOCKER: six issues that named no exit condition or owner now do (screen_fatal_halt, short_sleep_livelock, so_cache_refusals, latency_wake, hda_tone, desktop_window_child). console_line_atomicity and usb_disk_index_stable get their own per-test issue instead of pointing at a shared file with dozens of other names, and the two shared files (parallel-tests-red-under-other-suites.md, eleven-names-red-on-ci.md) go back to `status: open` now that their own open work is no longer masked by `expected-red`. redlist::check now requires an `issues/<area>/<slug>.md` path whose frontmatter says `status: expected-red` — issues/README.md, which has no frontmatter and sits directly in `issues/`, no longer passes. It runs on every harness entry point, `--metal` and `--audio-gate` included, factored into one `check_redlist` both the ordinary path and `--metal` call (`--list`, `--debug` and `--audio-gate` now see it too, hoisted before their early returns). It stages a name nothing registers first and refuses to trust its own verdict on the real list until that reds for the right reason — the negative control the round-1 mutation review found missing: `|_| true` in place of the real `registered` predicate now visibly breaks the harness instead of passing silently. The owner's ruling goes further than the review's NOTE: the ALONE re-run machinery is deleted outright rather than trimmed. `src/alone.rs`, `alone_line` and its test, `retry_task`, the wide-run rerun loop, and every doc comment that described re-running a red alone are gone; a red on any width is reported red, once. CLAUDE.md's ", never re-run" is therefore true now and stays; the two tests/CLAUDE.md sentences that still described the `ALONE:` line are corrected to describe manual investigation instead of a harness feature that no longer exists. The two issue files about defects in the classifier `alone_line` no longer has are deleted with it — there is nothing left for either to be about. Every REMOVE the review named is applied: the stale sysret-mechanism paragraph, the `says`/XFAIL pointer, and every present-tense claim that `src/redlist.rs` still carries a rate, a `Finding::Seen`, an `Instrument::Ci` row or a quarantine — the schema those describe predates the disabled list and none of it exists any more. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # tests/updatecase/system.toml
|
Review of #542, round 3, at 7befb95. Gate. CI on the PR: Round-2 BLOCKERCLOSED. All eight rows now carry an exit condition and an owner:
Round-2 NOTE, checked
Merge (item 4)Correct. Net lines against
|
…n-in-place sentence the round-2 alone-mechanism deletion left narrating a mechanism that is no longer there, instead of deleting it with the code. Deletes the unreachable "ALONE " filter arm and its now-false doc claim in src/ci.rs::verdicts, plus the dead "ALONE lan_talk: GREEN" literal and its assertion in the_summary_keeps_the_count_and_the_verdicts. Deletes eleven comments/doc paragraphs across tests/common/qemu.rs, tests/toyos.rs and tests/CLAUDE.md that were rewritten instead of cut when alone_line/retry_task went, the three stale EXPECTED_FAILURES mentions in two issue files this branch already edits this round, and the orphaned alone_line_reports_the_alone_run row in tests/test-durations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tly 36328646395 Nightly 36328646395 ran this branch at 059c5de (merge base a637f5c). Its diff touches no kernel, guest, driver or system.toml code, and on main the ALONE re-run printed a line but never turned a red green, so no verdict below is this branch's. - handle_kill_policy (guest 9): `16 more killed processes left more live objects behind: [("SharedMem", 9, 10)]`. Red on main at 16d2e64 (run 36306830048, guest 8), at a4f68c5 (36314576406) and 8df1a02 (36320607027), each green on its own re-run. Red on main at a rate. - xhci_flap (guest 2): `0 slot(s) enabled and never disabled ([]) after 4 replugs`. Red at a4f68c5 (36314576406), f231c43 (36280285913), e4317d3 and a55d62c, all ancestors of main; green at 16d2e64 and 1ce7183. Red on main at a rate. - quiesce_dump_holds_the_stopped (guest 7): `QEMU never reported stopping`, with `quiesce_writers: 4 of 6 writers reached their loop in 5s`. Green at a4f68c5 (36314576406, guest 7), whose kernel differs from the merge base only in kernel/src/rootfs.rs, and at 16d2e64, 1ce7183, 8df1a02 and fd62f56. Flaky. - shipped_config_boots (guest 12): `init never said "init: started filepicker"`. Green at a4f68c5, 16d2e64 and 1ce7183 (guest 3). Flaky. - quiesce_wakes_on_the_last_exit: not red in 36328646395. Red wide and green alone in PR #536's review of 7e2e104, with a TLB shootdown panic that is main's issues/kernel/a-shootdown-panicked-on-a-cpu-the-host-starved.md, which becomes its issue. Red on main's lineage at f231c43, 67a430c and a55d62c with `the stopped-boot drain carried no kernel output at all (38 bytes)`, not shown to be the same defect. The first three already had a per-test issue; each goes to expected-red with this run's evidence and an exit condition and owner, and the two that asked to be put on this list stop asking. shipped_config_boots gets a new file. Nothing was re-run. The same run's audio (2) red (gate A, `audio_tone_load.smp1 wake lateness: median 5765 -> 6625`) is main's too (1ce7183, c271588, a4f68c5) and is not disabled: with audio_tone_load off, gate A's shard 2/2 owns no config and asserts. portability-windows is continue-on-error and red on every run, main's included. Also: `redlist::disabled` takes the rows, so the harness's skip, the duplicate-row refusal and `--known-red` share one lookup. The merge brought tests/audio-baseline.toml's sentence about the quarantine being read, and two issue passages still described deleted redlist rows; all three are cut. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review of #542, round 4, at b1aeafe. Gate. CI run 36339013300 at b1aeafe: Net lines.
Round-3 BLOCKER
BLOCKER
NOTE
REMOVE
SEND BACK |
…it is a fix Round 4 of #542's review. - shipped_config_boots read each `init: started <program>` from a capture it had not waited for: the guest (12) red ended at `netd: ready`, before init's line about filepicker. Each line is now awaited, and the row and its issue file go. - quiesce_wakes_on_the_last_exit's row points at its own per-test issue, which now carries the three main-lineage runs; the shootdown issue is back to main's text and `status: open`. - Every disabled test's issue ends in a fix and names an owner: a disabled test never runs, so a diagnosis-only exit could never be met. - check_redlist's staged row only tested a set lookup; the refusals are pinned by src/redlist.rs's lib tests. Deleted with its doc paragraph. - Prose about the ALONE re-run, EXPECTED_FAILURES and redlist rows cut from issue files, tests/CLAUDE.md and one error string. - CLAUDE.md and tests/CLAUDE.md keep only deletions of now-false rules and the one sentence stating the disabled rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Found as the shipped_config_boots negative control's own output: a STALL exits 1 and its summary still says "Re-run". Filed, not fixed: outside #542's round-5 brief. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The stall summary told the reader to re-run a red. Under "a red is a red" that sentence is false, so it goes, and the issue filed for it goes with it. Two disabled tests' issues named a code site with nobody holding the fix; the orchestrator holds them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review of #542, round 5, at 58f1c35. Gate. CI run 36341043735 at 58f1c35: Net lines.
Since b1aeafe, production shrinks: Round-4 BLOCKERs
The four questions
BLOCKERNone. NOTE
REMOVE
LAND AFTER NAMED CHANGES |
…rator as owner Deletes clauses that read a red as noise or describe mechanisms already gone (the STALL line's "so this says nothing about the tree", the stalled() doc's "nobody should bisect it", the EXPECTED_FAILURES/redlist paragraph in hda-tone-red-beyond-its-exemption.md, and the histogram-rate reading in latency-wake-reds-on-the-dev-host-at-a-rate.md). Four issue files that named a code site or track but no holder now say "held by the orchestrator", matching the two files 58f1c35 already moved there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tests/CLAUDE.md told the reader to stash and re-run a gate-A red, and src/CLAUDE.md to re-run a build red in isolation. A red is a red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The first test-suite PR from the owner-approved test plan. The owner rules that a red is a red: a failing test, flaky or not, is fixed or disabled at once with its own issue, and nothing re-runs a red away. This branch carries that ruling through the harness.
1. The quarantine becomes a disabled list (
src/redlist.rs,tests/toyos.rs)says, no rate and no text matching.keep, and every entry point takes it: the ordinary run, gate A and the metal loop. Every run prints[toyos] disabled: <test> — <issue>once per row, before anything compiles.redlist::checkrefuses a row whose test nothing registers, whose issue is not anissues/<area>/<slug>.mdfile opening withstatus: expected-red, or that names a test twice.check_redlistruns it on the ordinary path before--list,--debugand--audio-gatecan return, and inside--metalagainst the metal registry. Each refusal is pinned bysrc/redlist.rs's lib tests.redlist::disabled(rows, test)is the whole-name match the harness's skip, the duplicate-row refusal and--known-redall use.--known-redkeeps its name and answersYES, disabled — it does not run.with the issue, orNO, not disabled.2. The ALONE re-run is deleted
src/alone.rs,alone_lineand its test,retry_task, the wide-run re-run loop inmain, andsrc/ci.rs'sALONEfilter are gone. On main the re-run printed a line and never turned a red green, so no verdict changes: a red is reported once, with the wide run's own sentence. The comments that described the re-run are cut, and so are the two issue files about the classifier it no longer has.3.
sysret_ss_reloadwaits on its reportThe probe's line lands before
===READY===, anddrain_untilreads only lines after it, so the test always spent its whole drain ceiling. It now asksboot_log()first and drains only for a report still owed. The drain ends on any of the probe's three outcomes, each a const (SYSRET_SS_RELOADED,SYSRET_SS_NOT_RELOADED,SYSRET_SS_UNARMED), and a probe that could not arm is a red by that name. The claim is pace only: mutatingif !log.lines().any(sysret_ss_reported)toif truestays green, because the drain then spends its ceiling and appends nothing. One run each on the dev host, a record and not a gate: 16 s before, 2 s after (40dd2f5).4.
shipped_config_bootswaits for init's linesThe test waited for four daemons' markers, then checked each
init: started <program>against a capture it had not waited for. Nightly 36328646395's guest (12) red ended atnetd: ready, before init's line about filepicker. Each line is now awaited withqemu::await_marker. It is fixed, not disabled, so it has no row and its issue file is gone.5. The disabled list, and the nightly that judged this branch
17 rows. Four are added by the verdicts on nightly 36328646395 at 059c5de (merge base a637f5c). That diff touches no kernel, guest, driver or
system.tomlcode. Nothing was re-run.handle_kill_policy16 more killed processes left more live objects behind: [("SharedMem", 9, 10)]issues/kernel/handle-kill-policy-census-grew-one-sharedmem-on-two-nightlies.mdxhci_flap0 slot(s) enabled and never disabled ([]) after 4 replugsissues/hardware/a-collapsed-replug-is-enumerated-only-when-another-port-event-arrives.mdquiesce_dump_holds_the_stoppedQEMU never reported stopping: the guest asked for a reboot and stayed up(quiesce_writers: 4 of 6 writers reached their loop in 5s)kernel/src/rootfs.rs, and at 16d2e64, 1ce7183, 8df1a02, fd62f56issues/kernel/quiesce-dump-holds-the-stopped-reds-wide-with-usb-transport-breaks.mdquiesce_wakes_on_the_last_exitthe stopped-boot drain carried no kernel output at all (38 bytes); the per-test file already held twoQEMU died before ===READY===sightingsissues/build/quiesce-wakes-on-the-last-exit-lost-its-serial-ready-beside-other-guests.mdThe same nightly's other two reds are not rows:
audio (2), gate A:audio_tone_load.smp1 wake lateness: median 5765 -> 6625 (Mann-Whitney z=3.73 > 3.09). Red on main too: 1ce7183 (36290616312), c271588 (36297455432), a4f68c5 (36314576406).tests/audio-baseline.tomldeclares the sample void for timing under QEMU 11.1.1. The list cannot hold it: withaudio_tone_loaddisabled,AUDIO_TESTShas one config, andShard::keepgives shard 2/2 none, whichtests/toyos.rs's "owns no audio config" assert turns red. That needs the workflow's audio matrix, which is outside this branch.portability-windows:continue-on-error, the declared frontier ofissues/build/the-build-system-does-not-compile-on-windows.md, red on every nightly including main's.6. Prose that described a deleted mechanism
Passages in
issues/that claimed a redlist row, rate,Instrument,EXPECTED_FAILURESentry, quarantine orALONEprotocol that no longer exists are cut, and so istests/audio-baseline.toml's sentence about the quarantine being read.issues/README.mdand the pull-request template name the disabled list where they named the quarantine.CLAUDE.mdandtests/CLAUDE.mdcarry only deletions of now-false rules and one sentence stating the disabled rule; the orchestrator judges them:CLAUDE.md:69: "instruments and " deleted.CLAUDE.md:122: replaced by the one sentence, "A red test is a defect unlesssrc/redlist.rsdisables it with its issue (cargo run -- --known-red <test>); a flaky test is disabled at once, never re-run."tests/CLAUDE.md:3: theQUARANTINEclause deleted.tests/CLAUDE.md: three bullets deleted, "green alone is not therefore the host", "ALONE: GREEN — its Sched::Parallel is wrong" and "may itself be quarantined".Gates at 126a594
cargo test --libcargo test --workspace --exclude toyos-buildcargo run -- --clippyclippy: 10 invocations clean)cargo test --test toyos-build -- _a_verdict(runscheck_redliston the real registry, every row included, then the two guest-free harness tests)2 passed, 2 total)Guest runs, one at a time on the dev host
cargo test --test toyos-build -- shipped_config_bootsPASS shipped_config_boots (3s),logd, compositor, soundd, netd, filepicker startedstart.push("a-program-init-never-starts"), a checked patch at 7e8cf34,--no-runBUILD_EXIT=0, reverted and the tree cleanSTALLED: waiting for init: started a-program-init-never-starts(303 s)cargo test --test toyos-build -- quiesce_wakes_on_the_last_exitat 7e8cf34 (every match disabled)[toyos] disabled: quiesce_wakes_on_the_last_exit — …, thenNo enabled test matches filtercargo test --test toyos-build -- quiesce_wakes_on_the_last_at 7e8cf34 (_parkenabled,_exitdisabled)_parkrunsrunning 1 tests,PASS quiesce_wakes_on_the_last_park,1 passed, 1 totalNegative controls
Each a checked patch, shown to build, run, and restored with the tree clean.
stall_is_not_a_verdict's dispatch →panic!, plus aDISABLEDrow for it (40dd2f5)disabled:line printed1 passed, 1 total)issues/no-such-issue.md, in the harness (40dd2f5)sysret-ss:lines renamed in the kernel (40dd2f5)The
src/redlist.rslib tests stage each refusal separately (unregistered, missing file,issues/README.md, a path outsideissues/, a second row, every non-expected-redstatus).Oracle. None independent of the harness: the arms are the harness's own output and the tracker's own frontmatter. The nightly verdicts rest on other runs' logs, each at a named commit.
What I am unsure of
redlist::checkdoes not refuse the converse: an issue atstatus: expected-redthat no row names passes. No gate is added for it.audio (2)stays red on every nightly until gate A has a runner baseline or the audio matrix changes.Nightly jobs this needs green
host,build,tcg,portability-linux,portability-macos,audio (1),audio (2), andguest (1)toguest (12).portability-windowsiscontinue-on-errorand not amongnightly-red's needs.audio (2)is red on main; see section 5.Net lines against main (
git diff --shortstat origin/main...HEAD): 40 files, +519 −1560.src/+199 −506,tests/+132 −771,issues/+185 −280.🤖 Generated with Claude Code