Skip to content

[comp] Production Deploy#3503

Merged
tofikwest merged 2 commits into
releasefrom
main
Jul 24, 2026
Merged

[comp] Production Deploy#3503
tofikwest merged 2 commits into
releasefrom
main

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

This is an automated pull request to release the candidate branch into production, which will trigger a deployment.
It was created by the [Production PR] action.


Summary by cubic

Fixes flickering tooltips on the left product rail (Compliance, Trust, Security, etc.) by removing a hard-coded id so the design system can generate unique ids. Addresses Linear CS-773.

  • Bug Fixes
    • Extracted ShellRailNavItem and stopped passing an explicit id to AppShellRailItem, avoiding duplicate DOM ids across the desktop rail and the mirrored mobile drawer in @trycompai/design-system.
    • Added unit tests to prevent hard-coded ids and ensure unique ids across both renders.

Written for commit b4e0c57. Summary will update on new commits.

Review in cubic

…3502)

* fix(app): stop left-nav rail tooltips flickering on hover (CS-773)

The far-left product rail (Compliance, Trust, Security, Settings, Admin)
showed each icon's tooltip for ~0.1s on hover, then it vanished while the
cursor was still over the icon.

Root cause: ShellRailNavItem passed a label-derived `id`
(`app-shell-rail-<label>`) to the design system's AppShellRailItem.
AppShellRail re-renders the same rail items into the always-mounted mobile
drawer, so each `id` ends up on two DOM elements. The design system forwards
that `id` to the Base UI tooltip trigger, so the two copies register the same
deterministic trigger id and collide in Base UI's floating tree. When the
desktop tooltip opens, Base UI's closeOnActiveTriggerUnmount logic treats the
active trigger as unmounted and closes the tooltip a microtask later — the
flash.

Fix: don't set an explicit `id` on the rail items. The `id` was unused
anywhere in either repo, and without it the design system generates a unique
id per instance, so the two copies no longer collide. Extracted
ShellRailNavItem into its own file so it can be unit-tested; added a
regression test asserting no hard-coded / duplicate rail-item ids.

Verified by reproducing the flash with the real design system components in a
headless browser (dup id => flash 5/5; no id => stable 5/5) and confirming the
Base UI close path via runtime instrumentation.

* style(app): prettier-format CS-773 rail nav test
@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
comp-framework-editor (staging) Ready Ready Preview, Comment Jul 24, 2026 6:06pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
app (staging) Skipped Skipped Jul 24, 2026 6:06pm
portal (staging) Skipped Skipped Jul 24, 2026 6:06pm

Request Review

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed against the latest diff

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread apps/app/src/app/(app)/[orgId]/components/ShellRailNavItem.tsx
@tofikwest
tofikwest merged commit 901b44d into release Jul 24, 2026
14 checks passed
@claudfuen

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.108.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants