feat(core): add aggregate task summary status bar to TUI#35653
Draft
leosvelperez wants to merge 3 commits into
Draft
feat(core): add aggregate task summary status bar to TUI#35653leosvelperez wants to merge 3 commits into
leosvelperez wants to merge 3 commits into
Conversation
✅ Deploy Preview for nx-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for nx-dev ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
|
View your CI Pipeline Execution ↗ for commit 3685c55
☁️ Nx Cloud last updated this comment at |
Add a global bottom bar showing X/Y done, per-status chips, and keyboard shortcuts. Cloud message renders on its own row above when present. Bar uses an actions-first drop ladder: non-critical actions (pin, navigate, filter, show output) drop before any chip including pending. Failed, X/Y done, and quit/help are sticky. Strict-priority backward optimize never un-drops a lower-priority item while a higher-priority one remains dropped. New StatusBar component lives at app level, visible whether the task list is shown or hidden (adds `show task list: b` when hidden). Removes BottomLayoutMode + inline cloud/help rendering from tasks_list (now table + filter only); deletes the obsolete HelpText component.
…tate - resize PTYs on bar-height change (cloud-message set/clear) — fixes stale pane dimensions until the next user-driven resize - exclude CachedBracket from fit-pass separator count — it attaches inline to PassedChip, was over-charging 2 cells - collapse cloud message to a single source of truth in TuiState; remove the downcast and Action::UpdateCloudMessage variant - drop \`filter: /\` shortcut when task list is hidden (contextual relevance) - add fit-pass vs renderer width parity test that would have caught the CachedBracket bug
…tate [Self-Healing CI Rerun]
Contributor
There was a problem hiding this comment.
Nx Cloud has identified a flaky task in your failed CI:
🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.
🎓 Learn more about Self-Healing CI on nx.dev
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Current Behavior
The TUI's bottom row only shows keyboard shortcuts and (when present) a Cloud message. There's no run-wide aggregate of task status — users can't see at a glance how many tasks have completed, failed, are running, or are pending without scanning the table.
Expected Behavior
A global bottom status bar that always shows
X/Y doneplus per-status chips (✔ N,✖ N,⠋ N,· N,⏭ N,◼ N) on the left and keyboard shortcuts on the right. The Cloud message, when present, renders on its own row immediately above the bar.The bar is width-aware: at narrower terminals, items drop via a single actions-first priority ladder so that critical status information survives longer than non-critical keyboard hints:
[N cached]bracket sub-countpin output: 1 or 2navigate: ↑ ↓filter: /show output: <enter>· pending⏭ skipped/◼ stopped✔ passed⠋ running11-13. sticky:
✖ failed,X/Y done,quit: q/help: ?Strict-priority backward-optimize: a lower-priority item is never preserved while a higher-priority one remains dropped. Bar stays visible whether the task list is shown or hidden — when hidden, the help slot adds
show task list: b.Implementation Details
New
StatusBarcomponent (packages/nx/src/native/tui/components/status_bar.rs) implementing theComponenttrait. Lives at app level so it renders independently of task-list visibility. App snapshots aggregate counts fromtasks_list.task_lookupeach frame and passes them in.Cleanup in
tasks_list.rs: removesBottomLayoutMode+ the three-mode branching,render_help_text/render_cloud_message, the four bottom-row width constants, and theAction::UpdateCloudMessagehandler (consumed byStatusBarnow). Filter line stays in the task-list area. Deletes the now-orphanedHelpTextcomponent.Coverage: 40 new unit tests in
status_barcovering counts mapping, the ladder algorithm at canonical widths, drop-order invariants, and 18 insta snapshots locking in exact rendered output across width scenarios, run states, cloud cascade, and hidden-task-list state.