fix(spaces): quill up the spaces nav, list highlight and search field - #3878
Conversation
|
😎 Merged directly without going through the merge queue, as the queue was empty and the PR was up to date with the target branch - details. |
|
React Doctor found no issues in the changed files. 🎉 Reviewed by React Doctor for commit |
|
Reviews (1): Last reviewed commit: "fix(spaces): share one tooltip provider ..." | Re-trigger Greptile |
There was a problem hiding this comment.
Contained, reversible UI/design polish behind the code-spaces-layout flag (nav icon styling, shared tooltip provider, list highlight override, new search bar component) — no risky territory (no auth, billing, API, data model, CI, or dependency changes), and the diff matches the description with no unresolved reviewer concerns.
- Author wrote 3% of the modified lines and has 20 merged PRs in these paths (familiarity MODERATE).
- 👍 on the PR from greptile-apps[bot].
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 266L, 5F substantive — within ceiling |
| tier | ✓ | T1-agent / T1c-medium (266L, 5F, single-area, fix) |
| stamphog 2.0.0b3 | .stamphog/policy.yml @ 2a074aa · reviewed head 0abcf8d |
New commits pushed (delta classified non_trivial_delta) — stamphog approval dismissed; re-review running automatically.
There was a problem hiding this comment.
Purely cosmetic UI changes (tooltip provider consolidation, list highlight styling, search bar placement) behind a feature flag, with no touch on auth, billing, data models, APIs, deps, or CI — diff matches the description and carries no showstoppers.
- Author wrote 2% of the modified lines and has 20 merged PRs in these paths (familiarity MODERATE).
- 👍 on the PR from greptile-apps[bot].
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 399L, 7F substantive — within ceiling |
| tier | ✓ | T1-agent / T1d-complex (399L, 7F, single-area, fix) |
| stamphog 2.0.0b3 | .stamphog/policy.yml @ 2a074aa · reviewed head 5131210 |
puemos
left a comment
There was a problem hiding this comment.
Ok to merge but i do think the search can be even better
| <TabShortcutFallback enabled /> | ||
| <> | ||
| <TabShortcutFallback enabled /> | ||
| <CommandSearchBar onClick={toggleCommandMenu} /> |
The nav's three icons each mounted their own tooltip provider, because that is what primitives/Tooltip does — and the skip-delay window is provider state, so three isolated providers never share it. Every hop between neighbouring icons paid the full warm-up again. They move to quill's Tooltip under a single provider, so once one tooltip is up its neighbour appears immediately. The shortcut hint that the old primitive took as a prop is a quill Kbd in the content now. The Inbox envelope was also the only icon left at a fixed weight, so it alone stayed outlined while it was the active view. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The create button and the back row still used primitives/Tooltip, so they rendered the old dark card next to the nav's quill ones. The FAB carried both: quill off the layout, the legacy one on it. Its two branches collapse into a single quill tooltip that only chooses the text, with the create shortcut as a Kbd rather than the old primitive's prop. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
#me can't be starred, and the greyed-out star standing in for the control read as one you were being denied rather than one that doesn't apply. The well itself stays — it is a reserved span inside the button, not the star — so the row is still the same height on every space and nothing below it shifts when you switch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
d5b303a to
e04e09c
Compare
New commits pushed (delta classified non_linear_history) — stamphog approval dismissed; re-review running automatically.
There was a problem hiding this comment.
Contained, feature-flagged UI/design polish (tooltips, list highlight styling, search bar placement) entirely within packages/ui — no data models, APIs, auth, billing, dependencies, or CI touched. The one unresolved review comment is a cosmetic centering nit, not a correctness or safety concern, and the reviewer already approved with that as a minor suggestion.
- Author wrote 2% of the modified lines and has 20 merged PRs in these paths (familiarity MODERATE).
- 👍 on the PR from greptile-apps[bot].
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 440L, 7F substantive, 445L/8F incl. docs/generated/snapshots — within ceiling |
| tier | ✓ | T1-agent / T1d-complex (445L, 8F, single-area, fix) |
| stamphog 2.0.0b3 | .stamphog/policy.yml @ 36353aa · reviewed head e04e09c |
|
/trunk merge |


Design nits on the spaces layout, following #3864. All behind
code-spaces-layout.What changes
< >group in the title bar, into a Slack-style field spanning the content column. It's a button wearing a field's clothes: magnifier, placeholder,⌘Khint. Opens the same command menu.data-selectedtreatment the channel rows already use, so the nav and the list read as one control set in either theme.AutocompleteItemwithdata-highlighted:ring-2 ring-offset-1— right for a floating listbox, a stray outline on a sidebar row, and loud enough at dark-theme contrast to outshout the selected row beside it. Overridden to the hover fill, matchingProjectSwitcher.primitives/Tooltipmounts a provider inside every tooltip, and the skip-delay window is provider state — three isolated providers never share it, so every hop between neighbours paid the full warm-up again. They move to quill'sTooltipunder a single provider.Notes
--fill-selectedand--fill-hoverare per-theme tokens (6%/10% and 4%/7% offoreground), so highlight sits below selected in weight in both light and dark. The light-mode gap is the narrow one — worth an eyeball.The other call sites of
primitives/Tooltiphave the same isolated-provider limitation; only these three changed here.Testing
Typecheck clean; 306 tests pass across canvas + command.
🤖 Generated with Claude Code