Skip to content

feat(web): sidebar UX pass — tooltips, inline loading, members link, dedicated client routes#723

Merged
buremba merged 3 commits into
mainfrom
feat/sidebar-ux-pass
May 14, 2026
Merged

feat(web): sidebar UX pass — tooltips, inline loading, members link, dedicated client routes#723
buremba merged 3 commits into
mainfrom
feat/sidebar-ux-pass

Conversation

@buremba
Copy link
Copy Markdown
Member

@buremba buremba commented May 14, 2026

Summary

A sweep of small UX gaps in the web sidebar and adjacent surfaces.

  • Nav pill tooltips — Wrap inactive Connections/Memory/Agents pills in Radix Tooltip so the icon-only state is discoverable. The chip expand/shrink transition is preserved (<Tooltip> always wraps; tooltip content renders only when inactive, avoiding remount).
  • Inline loading indicators — Replace "Loading..." text in every sidebar section with a small Loader2 spinner next to the section header (Entities, Agents, All clients, Watchers, Connections, Devices). Layout doesn't shift when data arrives.
  • Members in avatar dropdown — Adds a Members entry to the user dropdown when in a workspace, so dismissing the invite card isn't a dead end.
  • Clickable sidebar clients + dedicated routes — The "All clients" sidebar rows were plain <div>s. Now wrapped in <Link> to a new /$owner/clients/$clientKey detail page that resolves the key and renders <ClientDetail> directly. Added /$owner/clients/connect which embeds <McpConnect>. Deleted the redundant /$owner/clients listing — the sidebar is the list now.
  • Native title → Radix Tooltip sweep — Promoted TooltipProvider to the app root, then converted icon-only-button title= attrs to Radix Tooltip across agent-conversations (delete/cancel), watcher-detail (discard), json-renderer (edit/remove pencils, both card and table forms), view-in-knowledge-link (component-level so all icon-only call sites inherit), invite-members-card (dismiss), entity-row settings cog. Removed truly redundant titles where the label is already visible.

Submodule branch: feat/sidebar-ux-pass in lobu-ai/owletto-web.

Test plan

  • Hover an inactive pill in the sidebar — tooltip appears after ~200ms; clicking still animates the chip expand.
  • Switch organizations / reload — section headers show a spinner while their lists load; no layout jump when data arrives.
  • Avatar dropdown shows Members entry inside a workspace; clicking navigates to /$owner/members.
  • Click a client in the "All clients" sidebar section — lands on /$owner/clients/$key with that client's detail; "Connect a client" link goes to the new connect page.
  • Hover the X on the invite card, the settings cog on an entity row, edit/remove pencils in a watcher's structured output — styled Radix tooltips, not native ones.

Summary by CodeRabbit

  • Chores
    • Updated the internal web submodule reference to a newer revision.

Note: This release contains infrastructure updates with no visible end-user facing changes.

Review Change Stack

See owletto-web feat/sidebar-ux-pass:
- Tooltips on inactive sidebar pills + icon-only buttons (Radix, app-wide provider).
- Loader2 spinners next to sidebar section headers replacing "Loading..." text.
- Members link in user dropdown so dismissing the invite card isn't a dead end.
- Dedicated /$owner/clients/$clientKey detail + /$owner/clients/connect routes; redundant /clients listing deleted.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 14, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7d2ed91b-d96b-469c-9599-94f34ecb8939

📥 Commits

Reviewing files that changed from the base of the PR and between 741e508 and 5ac0570.

📒 Files selected for processing (1)
  • packages/web
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/web

📝 Walkthrough

Walkthrough

This PR advances the packages/web git submodule pointer from commit 3c28db6... to d95b481... with no other repository changes.

Changes

Submodule Update

Layer / File(s) Summary
packages/web submodule pointer
packages/web
Submodule reference updated from 3c28db60524625f67a15b6fb2b265aa4078c7f84 to d95b4812be069b87ad43dce027392a2e3828358c.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐰 I nibble a byte, then nudge a line,

one tiny hash, now everything's fine.
packages/web hops to a fresh new place,
I twitch my nose and mark the trace.
A carrot-quick commit, a quiet chase.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main changes in the PR: sidebar UX improvements including tooltips, inline loading, members link, and client routes.
Description check ✅ Passed The PR description is comprehensive, covering all changes with detailed explanations and a complete test plan checklist with specific validation steps.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/sidebar-ux-pass

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/web`:
- Line 1: The submodule commit for packages/web is pinned to c48b5ae which is
not an ancestor of owletto-web/main; update the submodule pointer so it
references a commit reachable from owletto-web/main (or alternatively merge
c48b5ae into that branch then repin). To fix, fetch the submodule remote
(origin), checkout or find a commit on origin/main that is an ancestor of
owletto-web/main, update the packages/web gitlink to that reachable commit (or
merge c48b5ae into origin/main and then set the gitlink), and commit the
submodule change so CI’s hard drift rule passes. Ensure you update only the
submodule reference in packages/web and include the new commit SHA in the commit
message.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 25d6a0a2-01c9-4f11-904e-5085d7d189d6

📥 Commits

Reviewing files that changed from the base of the PR and between 597d8da and 9e64bd3.

📒 Files selected for processing (1)
  • packages/web

Comment thread packages/web Outdated
@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@buremba buremba changed the title Sidebar UX pass: tooltips, inline loading, members link, dedicated client routes feat(web): sidebar UX pass — tooltips, inline loading, members link, dedicated client routes May 14, 2026
@buremba buremba enabled auto-merge (squash) May 14, 2026 15:04
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
packages/web (1)

1-1: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Submodule pointer still fails drift reachability check.

Line 1 pins d95b4812be069b87ad43dce027392a2e3828358c, and CI confirms this SHA is not reachable from owletto-web/main. Re-pin packages/web to a commit reachable from submodule origin/main (or merge this SHA into that branch first), otherwise the hard drift gate and deploy remain blocked.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/web` at line 1, The packages/web submodule pointer is pinned to
commit d95b4812be069b87ad43dce027392a2e3828358c which is not reachable from
owletto-web/main; update the submodule reference in packages/web to point at a
commit that is reachable from the submodule's origin/main (or merge the pinned
SHA into origin/main first) so CI's drift reachability check passes and the hard
drift gate/deploy are unblocked; locate the submodule entry in the repository's
gitmodules/submodule configuration and update the commit reference (or perform
the merge in the submodule repo) accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@packages/web`:
- Line 1: The packages/web submodule pointer is pinned to commit
d95b4812be069b87ad43dce027392a2e3828358c which is not reachable from
owletto-web/main; update the submodule reference in packages/web to point at a
commit that is reachable from the submodule's origin/main (or merge the pinned
SHA into origin/main first) so CI's drift reachability check passes and the hard
drift gate/deploy are unblocked; locate the submodule entry in the repository's
gitmodules/submodule configuration and update the commit reference (or perform
the merge in the submodule repo) accordingly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a4b0461d-eeac-4463-a87a-66420b23001b

📥 Commits

Reviewing files that changed from the base of the PR and between 9e64bd3 and 741e508.

📒 Files selected for processing (1)
  • packages/web

Copy link
Copy Markdown

@codex-approver codex-approver Bot left a comment

Choose a reason for hiding this comment

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

Auto-approved: Codex left a 👍 reaction (no suggestions).

@buremba buremba merged commit 013fe8d into main May 14, 2026
24 checks passed
@buremba buremba deleted the feat/sidebar-ux-pass branch May 14, 2026 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants