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.
--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.
--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).
--audio-driver Dummy to probe.py's launch args. Small, self-contained, worth doing on Windows too.--fixed-fps, but land it with the correct claim about what it covers, and without closing #471/#514 on the strength of it.wait_ms, hold+ms), and anything asserting one has *not yet* elapsed wants budget_ms (#615). Neither is replaced by a frame-rate flag.Related: #547 (design 003 S8/P0.7), #615, #617, #620, #471, #514, #331, #508.
Unclaimed.
None.
No comments.