Skip to content

fix(shell-ui): only show Aparavi AQL Settings in sidebar when the AQL app is installed#1310

Merged
joshuadarron merged 1 commit into
developfrom
fix/issue-saas-240-sidebar-aql-settings-gate
Jun 17, 2026
Merged

fix(shell-ui): only show Aparavi AQL Settings in sidebar when the AQL app is installed#1310
joshuadarron merged 1 commit into
developfrom
fix/issue-saas-240-sidebar-aql-settings-gate

Conversation

@joshuadarron

@joshuadarron joshuadarron commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

The shared app sidebar footer rendered a "Settings" entry unconditionally. That settings overlay is Aparavi-AQL-specific, so it appeared in every app even when the Aparavi AQL app was not installed.

This gates the footer "Settings" menu item on the Aparavi AQL app (rocketride.aparavi) being present in appManifest (from useWorkspace()). When the app is not installed the item is simply omitted; all other footer items are unchanged, and the item keeps its original position (after Variables, before Theme) when it is shown.

Refs rocketride-ai/rocketride-saas#240

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Settings option in the sidebar footer is now only visible when the Aparavi app is installed.

… app is installed

Refs rocketride-ai/rocketride-saas#240

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 37c9a6c6-7d61-419a-92d6-b724de21f3dc

📥 Commits

Reviewing files that changed from the base of the PR and between e3299a8 and 502add0.

📒 Files selected for processing (1)
  • apps/shell-ui/src/components/layout/Sidebar.tsx

📝 Walkthrough

Walkthrough

The Sidebar component derives an aparaviInstalled boolean from appManifest and uses it to conditionally splice a "Settings" menu item into the footer menu at index 3. The useMemo dependency array for footerMenuItems is updated to include aparaviInstalled.

Changes

Aparavi-gated Settings menu item

Layer / File(s) Summary
Aparavi install flag, conditional menu splice, and memo dependency
apps/shell-ui/src/components/layout/Sidebar.tsx
Derives aparaviInstalled from appManifest; when true, splices the Settings item into the footer menu at index 3; adds aparaviInstalled to the footerMenuItems useMemo dependency array.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~5 minutes

Poem

A tiny gate now guards the way,
If Aparavi's here to stay,
Settings slides in, index three,
Memo knows — dependencies!
🐇 Hopped in clean, hopped out with glee.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: conditionally showing the Aparavi AQL Settings in the sidebar only when the AQL app is installed.
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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/issue-saas-240-sidebar-aql-settings-gate

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions

Copy link
Copy Markdown
🤖 Internal: Discord sync marker

Auto-managed by the Discord notification workflow. Stores the linked Discord message ID. Do not edit or delete.

@joshuadarron joshuadarron merged commit bc36b63 into develop Jun 17, 2026
21 checks passed
@joshuadarron joshuadarron deleted the fix/issue-saas-240-sidebar-aql-settings-gate branch June 17, 2026 21:36
joshuadarron added a commit that referenced this pull request Jun 18, 2026
…ings always visible (#1317)

* fix(shell-ui): gate AQL Settings on isOnDesktop, not the full app catalog

PR #1310 gated the sidebar Settings item on
`appManifest.some(a => a.id === 'rocketride.aparavi')`, but appManifest is the
full app catalog (always contains aparavi), so the check was always true and the
item never hid. Use isOnDesktop('rocketride.aparavi') from useSubscriptions — the
per-user signal the app switcher in the same component already uses.

Refs rocketride-ai/rocketride-saas#240

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(shell-ui): show all-app settings only for installed apps; keep Settings always visible

The Settings overlay (SettingsPage) is a global workspace view — shell "General"
settings plus the settings of every app in appManifest. appManifest is the full
catalog, so an uninstalled app's settings (e.g. Aparavi AQL) showed for everyone:
the real cause of the #240 report.

- SettingsPage: skip apps that aren't on the user's desktop (app.onDesktop) when
  building per-app sections. Shell "General" settings are unaffected.
- Sidebar: revert the earlier gating that hid the whole Settings item when Aparavi
  wasn't installed — Settings is global and is now always shown. Fixes the
  regression where the Settings tab disappeared entirely.

Refs rocketride-ai/rocketride-saas#240

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(shell-ui): settings nav shows one section per page instead of stacking all

The settings sidebar nav didn't paginate: with no selection (and when "General"
was selected) every section rendered stacked on one page, and selecting an app
showed General + that app together. Re-clicking deselected back to "show all".

Now each nav button is its own page: default to the first section (General),
render only the selected section, and treat search as a cross-section override.

Refs rocketride-ai/rocketride-saas#240

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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