feat(tui): collapsible tag rail with ambient tag awareness #35

Merged
lerko merged 2 commits from feat/tag-rail into main 2026-05-20 19:24:42 +00:00
Owner
  • Tab: capture ↔ list (clean two-state toggle)
  • h from list: focus tag rail (spatial — left = rail)
  • l from rail: back to list (spatial — right = list)
  • l from list (split): focus detail pane
  • Tag rail stays ambient — visible, self-documenting, zero cognitive cost until you explicitly navigate to it
  • # modal still works as fast-filter shortcut
- `Tab`: capture ↔ list (clean two-state toggle) - `h` from list: focus tag rail (spatial — left = rail) - `l` from rail: back to list (spatial — right = list) - `l` from list (split): focus detail pane - Tag rail stays ambient — visible, self-documenting, zero cognitive cost until you explicitly navigate to it - `#` modal still works as fast-filter shortcut
lerko added 2 commits 2026-05-20 19:24:23 +00:00
Persistent left panel showing tags with counts. Provides ambient
awareness of tag landscape without requiring a modal.

- New tagRailModel in tagrail.go: tag list with cursor, scroll, counts
- Rail visible at >=100 cols width, 18% width (min 16 chars)
- ctrl+b toggles rail visibility
- focusTagRail added to focus cycle: capture → tags → list → detail
- j/k navigates, enter filters/unfilters by tag
- Active filter tag highlighted bold in rail
- Tags refresh after entity create/delete/absorb
- Rail auto-hides on narrow terminals, # modal still works as fallback
- Width allocation accounts for rail in split and non-split layouts
Tag rail removed from tab cycle to reduce focus confusion.
Rail is now ambient-by-default, focusable via h from list (spatial).

- Tab: capture ↔ list (no rail, no detail in cycle)
- h from list: focus tag rail (when visible)
- l from rail: back to list
- Split detail reachable via l/enter, not tab
- Remove nextFocusFromCapture helper
lerko merged commit 388ae88d4a into main 2026-05-20 19:24:42 +00:00
lerko deleted branch feat/tag-rail 2026-05-20 19:24:42 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lerko/nib-v1#35