Dashboard: Synced pins, UI and performance improvements, and bugfixes

🎉 New features

Sidebar navigation

Add "Pin All" / "Remove All" control for studios

Users can now quickly pin or unpin all Studio applications using a new bulk control in the Studios/Applications overview table. The pin icon appears on hover in the left column and shows "Pin all" or "Remove all" depending on the current state.

Sortable pins

Users can now sort pins in their sidebar for easier access to the applications that are more important to them.

Real-time pinned items sync across tabs

Pinned items now sync in real-time across multiple browser tabs. When you pin or unpin a workspace in one tab, the change immediately appears in all other open tabs, providing a more consistent experience when working across multiple Dashboard sessions.

⚡ Improvements

Navigation & UI polish

Cleaner sidebar pin icons

Unpinned applications will now show in the sidebar and allow users to pin them. To reduce visual clutter, pin icons for pinned applications in the sidebar now only appear on hover. Unpinned applications that are currently open continue to show the pin icon for discoverability.

Tooltips for truncated studio names

Long studio and application names that overflow their containers now display native browser tooltips on hover, making it easier to identify applications with lengthy names.

Improved organization switcher layout

The organization switcher menu now features sticky headers and footers with a scrollable organization list in between. This ensures the "New organization" button and key actions remain visible even when you have many organizations.

Workspace permissions: hide inaccessible workspaces

The Studios & Apps table no longer displays workspace listings for multi-workspace applications. This change prevents users from seeing workspaces they don't have access to.

Better mobile widget ordering

The homepage widget order on mobile has been optimized for better access by prioritizing quick links and actionable items over static lists.

Align "Invite Members" permission checks between Dashboard and Studio

The "Invite members" button now uses consistent permission checks across Dashboard and Studio, supporting custom roles properly.

Loading indicator when switching organizations

A visual progress indicator now appears when switching organizations client-side, providing clearer feedback during the transition.

Clearer selected state for drawer items

Drawer items (Favorites, Agent, Notifications) in the navigation no longer show a selected state, preventing visual confusion when multiple items appear selected simultaneously. Hover states remain active.

Responsive "Members" column display

The "Members" column in Studios & Apps now shows a compact "+N" format when space is limited instead of wrapping text across multiple lines.

More accurate warnings for studio compatibility

Dashboard can now detect the Studio version for self-hosted Studios via an updated manifest file, enabling more accurate compatibility warnings and dev-setup guidance.

Dashboard documentation updates

Documentation has been expanded to cover how to disable Dashboard for entire organizations or specific studios, and how to set custom icons for workspaces.

Performance

Faster organization switching

Multiple performance optimizations have been applied to organization loading, including:

Suspending user invite and organization queries.

Optimizing loader functions.

Disabling throttling for suspended queries.

Improving Agent hooks.

Organization switching is now significantly faster.

Faster application compatibility checks

Dashboard now runs embedded application compatibility checks in parallel with application loading.

This experimental feature improves support for Studios hosted behind VPNs or password-protected firewalls, where server-side checks previously failed. The system attempts both server-side and client-side checks to provide better diagnostics.

Reduced double session creation

Fixed a performance issue where Dashboard created two authentication sessions when loading a Studio application. Now only a single session is created, reducing overhead.

Studio applications query cache optimization

Query caching has been optimized for Studio applications so downstream consumers no longer re-trigger API calls unnecessarily, improving load times.

🐛 Bug Fixes

Navigation & UI

When exiting dev mode, the dev application icon is now properly removed from the sidebar navigation.

The "exit dev mode" button now consistently appears when using development mode, even in edge cases involving multiple local applications.

Resolved cases where studio names displayed as URLs instead of proper project or workspace names.

The favorites widget loading state now displays correctly instead of showing broken UI during data fetch.

Your organizations will now have access to Canvas, even if a studio hasn't been set up or deployed.

The notifications widget on the homepage now properly resets its state when switching organizations.

The Agent widget now consistently appears on first Dashboard load without requiring a page refresh.

Clicking a notification for the same document multiple times now properly re-opens the comments pane in Studio, even if the document is already open.

Document previews that stayed infinitely loading now resolve properly. The document store now correctly replays welcome events to new subscribers.

The releases widget now displays unique releases only, preventing duplicate entries for releases with multiple workspaces on the same dataset.

Favorites list now uses proper resource transformation to display consistent and correct titles.

Unpinned workspaces now appear in the sidebar when opened, allowing users to discover and pin them.

The developer setup guide no longer shows "4 of 3 steps completed". Corrected singular/plural copy for completion status.

Updated the Dashboard favicon to work properly in both light and dark modes when bookmarked.

The icon shown at the top of an embedded Studio iframe now better matches the icon used in the navigation sidebar.

Access Control & Permissions

Developer role users with no project membership now properly see Dashboard's access request screen instead of encountering errors.

Resolved an issue where some new project members would see "user not found" errors immediately after joining a project.

The user avatar now consistently displays when requesting organization access.