Skip to content

Nav tray: Alt modifier + combinable, lockable modifiers#21

Merged
AltanS merged 3 commits into
mainfrom
feat/nav-tray-modifiers
Jul 20, 2026
Merged

Nav tray: Alt modifier + combinable, lockable modifiers#21
AltanS merged 3 commits into
mainfrom
feat/nav-tray-modifiers

Conversation

@AltanS

@AltanS AltanS commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Fixes #19, fixes #20.

What changed

Verification

  • 925 web tests + 219 backend tests green; strict typecheck both sides.
  • Real-browser smoke on the sandbox session: armed Ctrl(locked)+Alt+Shift, staged Ctrl Alt ⇧ P, confirmed the lock survived while one-shots were spent, cleared without sending.

Thanks @bnivanov for two well-researched reports — including the Herdr-side chord verification, which held up exactly.

🤖 Generated with Claude Code

AltanS and others added 3 commits July 21, 2026 00:11
…iple and alt+special

Live-probed 2026-07-20 against 0.7.3 on a throwaway sandbox pane (PageUp negative
control confirmed the validator was active); independently confirmed on 0.7.4 by
@bnivanov in #20.

Co-Authored-By: Claude Fable 5 <[email protected]>
Modifiers are now checkboxes, not radios: any subset of Ctrl/Alt/Shift combines
into one chord (ctrl+shift+p, alt+shift+p, ctrl+alt+shift+p — wire grammar
live-verified). Each cycles off → one-shot → locked → off; locked survives
presses and Send (repeated chords without re-arming) and is released by Clear
or cycling off. Locked chords still stage into the review-then-send queue —
the danger-review invariant is unchanged.

Fixes #19, fixes #20. Thanks @bnivanov for the report and the Herdr-side
chord verification.

Co-Authored-By: Claude Fable 5 <[email protected]>
Co-Authored-By: Claude Fable 5 <[email protected]>
@AltanS
AltanS merged commit ed6a87f into main Jul 20, 2026
1 check passed
@AltanS
AltanS deleted the feat/nav-tray-modifiers branch July 20, 2026 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant