Skip to content

Scroll TUI widgets as a single panel#247

Merged
edwin-zvs merged 6 commits into
mainfrom
tui-widget-panel-scroll
May 26, 2026
Merged

Scroll TUI widgets as a single panel#247
edwin-zvs merged 6 commits into
mainfrom
tui-widget-panel-scroll

Conversation

@edwin-zvs

Copy link
Copy Markdown
Contributor

Summary

  • Render visible TUI widgets into one stacked popover/panel instead of separate clipped cards
  • Add a per-session widget-panel scroll offset and a single scrollbar for the stacked widget panel
  • Route mouse-wheel scrolling over the widget panel to the widget panel rather than terminal scrollback
  • Route Up/Down/PageUp/PageDown to widget-panel scrolling while a widget panel is focused
  • Translate widget action/close hitboxes by the panel scroll offset so clicks match visible content

Validation

  • cargo build -p agentd-cli
  • cargo test -p agentd-cli dynamic_ui -- --nocapture (no matching tests; command completed successfully)
  • git diff --check

Notes

  • This PR only touches crates/cli TUI code; relevant binary is agent.
  • No recording attached: behavior is scroll/input plumbing rather than a static visual change, and local build validation covers compilation.

@edwin-zvs

Copy link
Copy Markdown
Contributor Author

Follow-up polish:

  • Added a single outer border around the stacked TUI widget panel.
  • Moved widget content/scrollbar into the bordered inner area so hitboxes and scrollbar stay aligned.
  • Changed widget temporary/autohide extension from 10s to 15s via DYNAMIC_UI_AUTOHIDE_SECS.

Validation:

  • cargo fmt on touched TUI files
  • cargo build -p agentd-cli
  • git diff --check

@edwin-zvs

Copy link
Copy Markdown
Contributor Author

Focus polish for the shared widget panel:

  • Focused widget title row now uses a reversed/accent highlight across the row.
  • Focused widget body rows get a left accent marker so it is clear which section owns keyboard shortcuts/input.
  • Non-focused widget sections remain visually quieter inside the shared bordered panel.

Validation:

  • cargo fmt on touched TUI file
  • cargo build -p agentd-cli
  • git diff --check

@edwin-zvs

Copy link
Copy Markdown
Contributor Author

Removed the outer widget panel title; the shared panel keeps its single border and per-widget titles/focus affordance.

@edwin-zvs

Copy link
Copy Markdown
Contributor Author

Updated the TUI widget panel polish per feedback:\n\n- Removed the dotted/thick left body focus marker.\n- Focused widget sections now use a 1-cell bright green left/right edge.\n- Removed the scrollbar track line; only the thumb remains.\n- Shifted the per-widget hide button left so it no longer overlaps the scrollbar gutter.\n\nValidation: cargo build -p agentd-cli, git diff --check.

@edwin-zvs

Copy link
Copy Markdown
Contributor Author

Follow-up polish pushed:\n\n- Removed the per-widget left/right border styling entirely; focus is now title-row highlight only.\n- Kept the scrollbar track removed.\n- Fixed the close-button hitbox so clicks line up with the rendered [-] at the right end of the title row.\n\nValidation: cargo build -p agentd-cli, git diff --check.

@edwin-zvs
edwin-zvs merged commit 29054e4 into main May 26, 2026
1 check passed
@edwin-zvs
edwin-zvs deleted the tui-widget-panel-scroll branch May 26, 2026 02:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant