feat: Slash /config: left/right arrows navigate its multi-level menus (Right should drill in, not close)#393
Conversation
1826633 to
f2312ba
Compare
|
Rebased onto current Scope of the change (TUI only,
Build gate — Blacksmith testbox run 30118723509, clippy: 0 warnings. nextest: |
f2312ba to
47a984b
Compare
|
Re-rebased onto Blacksmith testbox run 30119607160 — clippy: 0 warnings. nextest: |
… (Right should drill in, not close)
The root /config menu's "Goal objective limit" entry still dismissed the parent on select, so Right did not drill in and Left/Esc in the picker closed the whole menu instead of going back one level. Mark it as a child-opening entry and enable tree navigation on its picker so every root entry behaves consistently.
…ist keymap Footer hints for the tree-navigating /config menus were hardcoded English key names, so a rebound move_left/move_right/accept/cancel would advertise the wrong keys. Resolve the labels from the live ListKeymap the same way standard_popup_hint_line_for_keymap already does.
… only advertise real drill-in keys Resolve the target section positions in config_popup_arrow_keys_navigate_menu_tree from common_config_sections() instead of hardcoded Down-press counts and ordinals, so inserting a new CommonConfigSection cannot silently retarget the test. Replace TreeNavigationHint's accept_label/include_move_right pair with a TreeNavigationAccept enum (None/InPlace/DrillIn) and derive the section-popup variant from whether the menu actually contains a row that opens a child view (SelectionItem::opens_child_view, now the single source of truth shared with move_right handling). Toggle-only section menus no longer advertise a drill-in key that does nothing.
47a984b to
ed8c00e
Compare
Rebased onto current
|
Objective
Slash /config: left/right arrows navigate its multi-level menus (Right should drill in, not close)
/config now has multiple levels but Right currently just closes it. Make Left/Right arrows navigate the config menu tree: Right enters a sub-level, Left goes back a level (Esc/Left at top closes). Keep it consistent across every /config sub-menu. The agent MUST start a goal plan for this task and drive it node by node (this is required). Investigate the current codewith implementation first and cite file:line. Build/test on remote Blacksmith only (never compile locally); keep cargo fmt (--config imports_granularity=Item), clippy --tests --all-targets -D warnings, and prettier clean; land a PR into hasna/codewith main.
Verification
Run
run_3d59e70fd373· backendcodewith· taskb4380f3e-c1d6-44bd-9c19-9810abd736df🏭 Generated by @hasnaxyz/factory