docs: file #358 — Ctrl+M mute chord never fires from the dispatcher
Deferred by user direction. The mute mechanism (2cf94dbc) is fine; the
chord never fires: 101 [input] actions logged in the session, zero for
AcdreamToggleAudioMute. Hypotheses ranked in the issue — merged-binding
absence (the suspicious stable '152 bindings' count), dispatcher modifier
matching, retained-UI Ctrl-chord consumption.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
2cf94dbcd2
commit
d2b4f0d66f
1 changed files with 38 additions and 0 deletions
|
|
@ -37,6 +37,44 @@ null-guard with `CanExecuteLiveMovement` (the exact lifecycle set the throw
|
|||
helper accepts); cursor restore still runs unconditionally, and
|
||||
published-controller behaviour is unchanged.
|
||||
|
||||
## #358 — Ctrl+M mute keybind never fires from the dispatcher
|
||||
|
||||
**Status:** OPEN — filed 2026-08-08, deferred by user direction ("we can carry
|
||||
that on for later"). The mute mechanism itself is implemented and untested
|
||||
only for want of a working trigger.
|
||||
|
||||
**Symptom:** pressing Ctrl+M in a live session does nothing. The downstream
|
||||
chain is NOT the problem — evidence from the session log:
|
||||
|
||||
- `[input]` action logging was live (101 fired actions: movement, selection,
|
||||
UseSelected) and recorded **zero** events for `AcdreamToggleAudioMute` —
|
||||
the chord never fired from `InputDispatcher`, so the
|
||||
`GameplayInputCommandController` switch case and the engine's `Muted`
|
||||
property (verified paths, commit `2cf94dbc`) were never reached.
|
||||
- `KeyBindings.LoadOrDefault`'s merge-over-defaults was read and looks
|
||||
correct (an action with defaults but absent from the saved file picks up
|
||||
the default binding), so a stale `keybinds.json` SHOULD have gained the
|
||||
new binding. Unverified whether it actually did: the client logged
|
||||
"loaded 152 bindings" both before AND after the binding was added, which
|
||||
is suspicious — either the pre-change default count was 151 (then 152 is
|
||||
right) or the merge did not add it (then the count should have grown).
|
||||
Nobody has printed the default count or dumped the merged set yet.
|
||||
|
||||
**Hypotheses, in order:** (1) the merged set genuinely lacks the binding
|
||||
(count question above — cheapest to check first: log `RetailDefaults().Count`
|
||||
or grep the saved json after a save); (2) the dispatcher's modifier matching
|
||||
does not fire a Ctrl+M chord — e.g. exact-vs-subset modifier semantics, or
|
||||
the bare `M` binding (`SelectionNextFellow`, no modifiers) shadowing it; note
|
||||
the log shows no `SelectionNextFellow` firing on the press either, which
|
||||
leans against simple shadowing and toward the chord matching nothing at all;
|
||||
(3) the retained UI consuming Ctrl-chords before the dispatcher.
|
||||
|
||||
**The mechanism behind the key** (already landed, `2cf94dbc`): engine
|
||||
`Muted` sets the AL listener gain 0/1 — unused since A2 moved mixing to the
|
||||
CPU, so it silences already-playing voices instantly without touching the
|
||||
retail mixing math or persisted volumes. Once the trigger works, no further
|
||||
audio-side work is needed.
|
||||
|
||||
## #357 — Login stalls: reveal reaches ready=True but the player is never placed; UI + sky render, world never opens
|
||||
|
||||
**Status:** CLOSED 2026-08-08 — root-caused and fixed same session (see the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue