Probe launch hygiene (design 003 S8): --audio-driver Dummy, and what --fixed-fps will and will not fix nf-5t3 ← Beads

open priority 2 task unassigned

Twinned from https://github.com/cfsh/ninefold/issues/622 by tools/beads/import_github.py's reconcile pass.

Design 003 (#547) §6.1 P0.7 / S8 is not started and has no issue of its own. ninefold-reviewer flagged it as NOT-THIS-PR on PR #615 twice, both times saying *"track as its own issue"*. Filing that, with one correction to what S8 claims.

The two halves

--audio-driver Dummy. Godot's own CI does this. On the Linux gating VM every probe launch currently emits the full ALSA failure path before falling back:

``` ALSA lib confmisc.c:855:(parse_card) cannot find card '0' ALSA lib conf.c:5208:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory ... (7 more) ERROR: Condition "status < 0" is true. Returning: ERR_CANT_OPEN at: init_output_device (drivers/alsa/audio_driver_alsa.cpp:97) WARNING: All audio drivers failed, falling back to the dummy driver. ```

~10 lines × ~34 probes per sweep, plus the failed-device path itself. Uncontroversial, and it makes probe logs readable — which matters more than it sounds, because the signal people actually search these logs for (FAILED, done WITH ERRORS, and now HOST NEAR/OVER THE WINDOW) is currently buried in driver noise.

⚠️ The correction: --fixed-fps is not "the structural fix"

P0.7 calls --fixed-fps *"the structural fix for #471/#514"*. That overstates it, and the overstatement is worth killing before someone implements S8 expecting a class of flake to disappear.

--fixed-fps re-couples delta, not the clock. Anything gating on real wall time is untouched — e.g. games/tonapse/ui/PianoRoll.cs's butterbar gate is Godot.Time.GetTicksMsec() - _barHeldSinceMs < 300, which advances at the same rate no matter what delta says. Measured on the gating VM at ~900 ms/frame, the 300 ms gate still expires between the press and the assertion, so butterbar-gate behaves identically with or without the flag.

Where it *does* help is the opposite case S8 was really written for: an uncapped off-screen window running too FAST, so a frame-counted hold finishes before a wall-clock threshold fires (#331's lesson — "40 frames can be under 200ms and the long-press never fires"). That is real and --fixed-fps addresses it.

So the honest framing is: --fixed-fps bounds frame count from below, not wall clock from above. It fixes too-fast, not too-slow. Both failure modes exist here (#620 measures ~107–169 ms/frame idle and ~850–1150 ms loaded on the same box).

Suggested scope

Related: #547 (design 003 S8/P0.7), #615, #617, #620, #471, #514, #331, #508.

Unclaimed.

Dependencies

None.

Comments

No comments.

Add a comment