Skip to content

~70 wall-clock assertions live in crates/*/src/ — inside the required check, and check_no_timing_in_required.sh cannot see them #3254

Closed as not planned

Description

@noahgift

~70 wall-clock assertions live in crates/*/src/ — i.e. inside the required check

scripts/check_no_timing_in_required.sh exists to stop a duration assertion reaching a required
status check. Its own header says why:

scripts/unwired_guards_baseline.txt says check_multiplatform_dogfood.sh is "a RELEASE gate,
not a PR gate. Deliberately unwired from CI" — and nothing mechanical stopped the next
well-meaning PR from wiring it. Policy is what failed the other eleven times. This is the
poka-yoke.

Its registry has three entries, and all three are check_*.sh. It cannot see a Rust target.

The count

crates/*/src/    ~70 duration assertions   ← run in --workspace --lib = the REQUIRED workspace-test
crates/*/tests/   36                       ← dark today; #3249's nightly would arm them

By crate, in src/:

aprender-serve 9 · aprender-core 5 · aprender-test-lib 3 · aprender-cgp 3 · aprender-train 2
aprender-profile 2 · aprender-orchestrate 2 · aprender-zram-core 1 · aprender-present-terminal 1
aprender-present-core 1 · aprender-gpu 1 · aprender-cbtop 1

Sampled, and they are real start.elapsed() assertions in #[cfg(test)] units, not config
comparisons:

aprender-serve/src/qa_phase.rs:163                    elapsed.as_millis() < 1000
aprender-serve/src/chat_template_special_tokens.rs:163 elapsed.as_millis() < 1000
aprender-serve/src/layers/tests/imp_001.rs:316        elapsed.as_millis() < 2000
aprender-core/src/qa/robustness_tests.rs:123          start.elapsed().as_millis() < 1000
aprender-core/src/text/chat_template/tests.rs:434     elapsed.as_millis() < 1000

A few hits are not elapsed-time (delay.as_secs() <= 2, wait.as_millis() < 100,
age.as_secs() < 1 compare computed or configured durations and are fine). So ~70 is an upper
bound on the regex, not a verified defect count — classify before fixing.

Why it matters now

One of them just fired. FALSIFY-CGP-061 FAILED: doctor took 2665ms against a 2500 ms limit,
during a sweep running 98,621 tests in parallel — a 6.6% miss measuring the load. #3253 gates the
six in aprender-cgp behind a timing-gate feature and proves by mutation that the feature arms
them rather than deleting them.

Two of those six were < 100 ms in a required check. On a shared runner that is a coin flip,
and the only reason it has not blocked the queue is luck.

This also lands on #3249: its nightly full surface would arm the 36 in tests/ as well, which is
another reason its predecessor draft's ratchet was the wrong instrument — you would be ratcheting
flakes.

What is owed

  1. Classify the ~70 — elapsed-time assertion vs duration comparison. Only the first class is a
    defect.
  2. Gate the real ones behind timing-gate (the pattern is in fix(cgp): six wall-clock assertions, three of them in the REQUIRED check #3253, one feature per crate or
    one workspace feature — decide once).
  3. Extend the guard. check_no_timing_in_required.sh should scan Rust targets too, or a
    sibling should. Today the rule is enforced for shell and unenforced for the language the tests
    are written in.

Refs #3239, #3253

Activity

  1. added this to the 0.68.0 milestone on Sep 14, 2026
  2. added
    automationBot-maintained dashboard, not a defect — skip in triage
    on Sep 14, 2026
  3. modified the milestones: 0.68.0, 0.70.0, 0.73.0 on Sep 16, 2026
  4. noahgift commented on Sep 23, 2026

    @noahgift
    MemberAuthor

    triage 2026-09-23 (aprender-dd, standing triage owner): milestoned to 0.70.0, theme Fast Train (CI, gates, pv, release tooling, hygiene); it moved out of backlog (the 2026-09-17 overflow bucket, not a release).

  5. added
    kind:codeWork is a code change (derived rule, #4159)
    on Sep 24, 2026
  6. modified the milestones: 0.70.0, backlog on Sep 24, 2026
  7. noahgift commented on Sep 25, 2026

    @noahgift
    MemberAuthor

    Parked by APR-EPIC-001: over E4 budget (rank 11/11). Reopen = pull. Applied by aprender-d1: claude+agy both said close, apr shadow row recorded (handoff/close-quorum-2026-09-25.json).

  8. added
    parkedClosed over epic budget (APR-EPIC-001 rule 5). Reopen = pull.
    on Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    automationBot-maintained dashboard, not a defect — skip in triagebugSomething isn't workingkind:codeWork is a code change (derived rule, #4159)parkedClosed over epic budget (APR-EPIC-001 rule 5). Reopen = pull.

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions