FAILURE MAP
← Case archive

FA-32328 / Keyboard interactions / Member archive

Bounded keyboard queue with lossless release backpressure: Explicit keyboard queue flush reverses event ordering or drains only one edge · case 03

The event trace violates the flush order rule and produces incorrect keyboard state or command output.

Member previewVariant 3 · 3 implementations · 10 checks per implementation

Case contract

Case [capacity,events], positive capacity; events [kind,key]. Down admitted only once per physical key and only when queue has capacity; overflow drops down. Up for an admitted key must be retained: dispatch oldest queued events until a slot exists, then queue the up. Tick dispatches one queued event; flush dispatches all. Reset discards pending queue and emits sorted synthetic ups for actually dispatched held keys. Return emitted edges,queue,admitted keys,delivered-held keys,dropped downs. Inputs are finite ordered event traces; return the stated deterministic state. Batch entries are independent. N varies the number of independent input transactions.

Why this case matters

Controlled keyboard event processing model for debugging application event logic.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
bounded-keyboard-pump scenario 4[[[["down", "B"], ["down", "A"]], [], ["A", "B"], ["A", "B"], 0], [[["down", "B"], ["down", "A"]], [], ["A", "B"], ["A", "B"], 0], [[["down", "B"], ["down", "A"]], [], ["A", "B"], ["A", "B"], 0]][[[["down", "A"], ["down", "B"]], [], ["A", "B"], ["A", "B"], 0], [[["down", "A"], ["down", "B"]], [], ["A", "B"], ["A", "B"], 0], [[["down", "A"], ["down", "B"]], [], ["A", "B"], ["A", "B"], 0]]Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗