feat(ui): motion, shell layout and unified sidebar foundation - #79
Draft
freebuff-web[bot] wants to merge 110 commits into
Draft
feat(ui): motion, shell layout and unified sidebar foundation#79freebuff-web[bot] wants to merge 110 commits into
freebuff-web[bot] wants to merge 110 commits into
Conversation
Additive foundation modules for the TUI shell rewrite: - src/ui/motion.rs: time-based transitions, easing, scheduler - src/ui/shell/mod.rs: responsive LayoutMode and ShellLayout - src/ui/sidebar_new/: Workspaces/Agents/Attention view model, layout, render - expose state_dot/state_label_color as pub(crate) for reuse
Autofix-Source-SHA: a2096c7
- src/ui/tabs_new/: compact tab bar model, layout, and renderer - src/workspace/aggregate.rs: add Tab::aggregate_state for per-tab agent status - register tabs_new module in src/ui.rs
…ChefGroep/herdr into freebuff/changes-fx8b6gcy
Autofix-Source-SHA: d2bec74
- src/ui/fleet_ops_new/: compact model, layout, and renderer - register fleet_ops_new in src/ui.rs
…ChefGroep/herdr into freebuff/changes-fx8b6gcy
Autofix-Source-SHA: 54c5687
- src/ui/launcher_new/: model, layout, and renderer - register launcher_new in src/ui.rs
…ChefGroep/herdr into freebuff/changes-fx8b6gcy
Autofix-Source-SHA: 2f85ca6
- src/ui/settings_new/: model, layout, and renderer - register settings_new in src/ui.rs
…ChefGroep/herdr into freebuff/changes-fx8b6gcy
Autofix-Source-SHA: 42aca79
Adds a `new_shell` boolean to `[ui]` config (default: false) and wires it through AppState so the render path can branch between the existing UI and the new shell prototype without breaking the old path. Merge-path: freebuff/changes-fx8b6gcy
Contributor
Quality remediation resolvedCI is green again for PR #79 at |
Autofix-Source-SHA: 6bfdee7
Autofix-Source-SHA: 37b0155
Repair fleet ops, tabs, sidebar, and launcher view models against current workspace APIs; drop unused re-exports; add ui.new_shell config default and reference docs. Remove Windows lint and musl smoke from PR ci.yml so Quality gate is Linux-only; heavy lanes stay in CI heavy. Add fix-ci and find-skills agent skills. Co-authored-by: Cursor <cursoragent@cursor.com>
Autofix-Source-SHA: 3720039
pane_ids() already yields owned PaneId values; Option::copied applies to references only. Co-authored-by: Cursor <cursoragent@cursor.com>
Autofix-Source-SHA: a75cd51
Add ~100 tests across 14 new-shell source files: - tabs_new: layout overflow/sliding, render colors/status icons, model edge cases - fleet_ops_new: layout expanded/collapsed modes, render with data/empty contexts - launcher_new: layout centering/clamping, render with selection, model building - settings_new: layout geometry, render with title/footer, category model - shell/mod: all LayoutMode breakpoints, collapsed/narrow/mobile/tiny modes, scroll clamping, sidebar-mode labels - sidebar_new/model: attention prioritization, empty state, caching, SidebarItemId All previously zero-test modules (tabs_new/layout, tabs_new/render, fleet_ops_new/*, launcher_new/*, settings_new/*) now have test coverage.
OnlineChef
marked this pull request as ready for review
August 1, 2026 21:42
|
ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing |
OnlineChef
marked this pull request as draft
August 1, 2026 21:43
| pub(crate) last_pane_click: Option<PaneClickState>, | ||
| /// Set when a modified URL click was handled so the matching left-button | ||
| /// drag/up is not forwarded to mouse-reporting panes. | ||
| pub(crate) pending_url_click: bool, |
Contributor
There was a problem hiding this comment.
URL gesture release leaks to pane
When a user Ctrl-clicks a URL in a mouse-reporting terminal, the host consumes only the initial left-button down event because pending_url_click is never set or consumed. The matching drag or release event then reaches the pane without a preceding down event, breaking the terminal application's mouse-button state.
Context Used: Focking gretig zijn en niet stoppen tot perfectie.... (source)
Prompt To Fix With AI
This is a comment left during a code review.
Path: src/app/mod.rs
Line: 129
Comment:
**URL gesture release leaks to pane**
When a user Ctrl-clicks a URL in a mouse-reporting terminal, the host consumes only the initial left-button down event because `pending_url_click` is never set or consumed. The matching drag or release event then reaches the pane without a preceding down event, breaking the terminal application's mouse-button state.
**Context Used:** Focking gretig zijn en niet stoppen tot perfectie.... ([source](https://app.greptile.com/review/custom-context?memory=instruction-0))
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
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.
Draft: additive new-shell foundation
This branch now contains only the experimental Herdr TUI shell foundation:
The active Herdr runtime,
AppState, renderer, configuration and mouse/input paths are unchanged frommain. The new modules are intentionally not wired into production yet.Scope cleanup completed
Removed from this branch:
Required before integration
ShellLayoutfor render and hit testingThis PR remains draft while CI validates the isolated foundation.
Greptile Summary
This change adds an experimental terminal shell foundation with responsive layout, shared navigation models, Fleet Ops, launcher, settings, motion primitives, and expanded update-manifest coverage. It also changes terminal mouse and URL-click input handling.
A modified URL click can leave a mouse-reporting terminal pane with an unmatched drag or button-release event: the host consumes the Ctrl-click press but does not suppress the rest of that gesture.
T-Rex validation blocked
zig. The focused Rust tests could not compile becausebuild.rs:77invokeszig buildand thezigexecutable is unavailable. No assertions ran. Configure VMsConfidence Score: 3/5
What T-Rex did
Prompt To Fix All With AI
Reviews (2): Last reviewed commit: "chore(ui): remove temporary runtime inte..." | Re-trigger Greptile
Context used: