发布

  • feat(core): add a full-width TUI status bar and vim-style pane search (#36263)

    frostbyte_neo 发布于 2026-07-17 02:53:02 +00:00

    Current Behavior

    The TUI task list renders its own bottom rows (keyboard hints, Nx Cloud
    message, filter display) inside its own column, so they are cramped in
    split layouts and disappear entirely when the task list is hidden
    (fullscreen pane). The run title and NX badge live in the task-list
    table header, terminal panes draw their own keybinding hints on their
    bottom borders, and there is no way to search a pane's output. Much of
    the UI state (cloud message/link, filter text, perf-report flag) is
    duplicated between TuiState and TasksList, kept in sync via
    broadcast actions.

    Expected Behavior

    Full-width status bar on the bottom row of the TUI:

    • Left: minimal progress counts with a live overall run duration —
      63/174 (1m 23s) — which double as the clickable Nx Cloud link when a
      structured link exists.
    • Middle: free-text cloud messages (they can carry errors), transient
      pane feedback ("copied to clipboard"), or the compact confirmed-search
      display.
    • Right: context-aware keyboard hints (task-list vs focused-pane) with
      progressive fitting — as many whole hint items as fit the space — and
      the NON-INTERACTIVE i to toggle / INTERACTIVE <ctrl>+z to toggle
      indicator pinned right-most, never dropped.
    • The task-list filter (/) swaps the bar row vim-style while typing;
      the bar is mouse-selectable (drag to highlight + copy) and always
      visible, including fullscreen-pane mode.
    • The NX badge (run-state colored) and the run title stay at the
      top-left of the task list in a minimal form; both columns keep
      bottom-aligned scrollbars.

    Vim-style pane search: / in a non-interactive pane searches the
    full scrollback (case-insensitive, wrap-aware) with incremental jumping
    while typing; Enter confirms into n/N navigation with wrap-around;
    Esc cancels/clears. Matches highlight reverse-video with the current
    match on a warning-colored background, and the bar shows /query 2/5 (n/N) while a confirmed search is active.

    State consolidation (started): TuiState is now the single owner of
    the cloud message/link, filter text, and perf-report flag — the
    TasksList mirrors and the UpdateCloudMessage/UpdateCloudLink
    actions are deleted, and filter persistence across TUI mode switches is
    automatic. Remaining mirrors (task statuses/timings, focus, pinned
    tasks) are named follow-ups.

    Related Issue(s)

    NXC-4610


    View session information

    下载附件