Issue
In the v1.17.4 rebase, upstream deleted the useKeybind() hook which provided keybind.print() and keybind.leader. Our patches injected JSX referencing these:
keybind.print("session_interrupt") → hardcoded "esc"
keybind.print("session_child_cycle") → hardcoded "→"
keybind.print("session_child_first") → hardcoded "<leader>↓"
keybind.leader → leader() (from useLeaderActive() — this one is correct)
Impact
If a user overrides keybinds (e.g. remaps session_interrupt from escape to something else), the UI labels will show the wrong key. leader() is correct since it uses the real hook.
Proper fix
Replace hardcoded strings with a runtime keybind label lookup. Options:
- Use
TuiKeybind.defaultValue("session_interrupt") — compile-time, still wrong if overridden
- Create a small helper that reads from
tuiConfig.keybinds.get() and formats the binding as a display string
- Accept as-is (cosmetic only, rarely overridden)
Affected files
patch-selectall.ts (SA6 — "esc" label)
patch-steer-b.ts (S6 — "→", "↓" labels)
Issue
In the v1.17.4 rebase, upstream deleted the
useKeybind()hook which providedkeybind.print()andkeybind.leader. Our patches injected JSX referencing these:keybind.print("session_interrupt")→ hardcoded"esc"keybind.print("session_child_cycle")→ hardcoded"→"keybind.print("session_child_first")→ hardcoded"<leader>↓"keybind.leader→leader()(fromuseLeaderActive()— this one is correct)Impact
If a user overrides keybinds (e.g. remaps
session_interruptfromescapeto something else), the UI labels will show the wrong key.leader()is correct since it uses the real hook.Proper fix
Replace hardcoded strings with a runtime keybind label lookup. Options:
TuiKeybind.defaultValue("session_interrupt")— compile-time, still wrong if overriddentuiConfig.keybinds.get()and formats the binding as a display stringAffected files
patch-selectall.ts(SA6 — "esc" label)patch-steer-b.ts(S6 — "→", "↓" labels)