Bug
In the Channels step (step 5) of netclaw init, the following key bindings don't work:
- Up/Down arrows — cannot move cursor between channels
- A key — cannot add a new channel
Left/Right arrows DO work — cycling the audience (Personal/Team/Public) on the selected channel works correctly.
Observed behavior
- Left/right arrows cycle the audience on the currently focused channel row (works)
- Up/down arrows do nothing (broken)
A key does nothing (broken)
D key untested
Expected behavior
All key bindings documented in the help text should work:
- ↑/↓ to move cursor between channel rows
- ←/→ to cycle audience
a to add channel, d to remove channel
- Enter to continue
Analysis
All four key cases are in the same switch block in ChannelsStepView.HandleKeyPress() (lines 146-198), so the input dispatch from InitWizardPage IS reaching the method (proven by left/right working).
The likely cause is that Termina's ReactivePage base class intercepts up/down arrow keys (for scroll/focus navigation) and letter keys before they reach the KeyPressed observable subscription at InitWizardPage.cs:41-43. Left/right arrows are passed through because they're not used by the framework's default navigation.
Files
src/Netclaw.Cli/Tui/Wizard/Steps/ChannelsStepView.cs (key handling: lines 94-202)
src/Netclaw.Cli/Tui/InitWizardPage.cs (dispatch: lines 256-334, Channels special case: lines 271-279)
- Termina 0.8.0
ReactivePage base class (possible key interception)
Bug
In the Channels step (step 5) of
netclaw init, the following key bindings don't work:Left/Right arrows DO work — cycling the audience (Personal/Team/Public) on the selected channel works correctly.
Observed behavior
Akey does nothing (broken)Dkey untestedExpected behavior
All key bindings documented in the help text should work:
ato add channel,dto remove channelAnalysis
All four key cases are in the same
switchblock inChannelsStepView.HandleKeyPress()(lines 146-198), so the input dispatch fromInitWizardPageIS reaching the method (proven by left/right working).The likely cause is that Termina's
ReactivePagebase class intercepts up/down arrow keys (for scroll/focus navigation) and letter keys before they reach theKeyPressedobservable subscription atInitWizardPage.cs:41-43. Left/right arrows are passed through because they're not used by the framework's default navigation.Files
src/Netclaw.Cli/Tui/Wizard/Steps/ChannelsStepView.cs(key handling: lines 94-202)src/Netclaw.Cli/Tui/InitWizardPage.cs(dispatch: lines 256-334, Channels special case: lines 271-279)ReactivePagebase class (possible key interception)