Skip to content

bug(ui): Entitlement-gated Settings tabs fall back to General on a cold load or refresh #3453

Closed

Description

@vybe

Summary

The URL keeps ?tab=<id> but General is highlighted and General's content shows; clicking the tab again loads it.

Category: functional · Severity: Medium · Validated: source

Context

Found by the click-through UI sweep of a local instance (dev @ c90c711ee, 1.0.0-rc1), fixture agents only.

Repro

  1. On an instance where an entitlement-gated Settings tab is offered, click that tab, then reload — or open its ?tab=<id> URL directly.

Expected

"Refresh keeps place": same route, same tab.

Observed

The URL keeps ?tab=<id> but General is highlighted and General's content shows; clicking the tab again loads it.

Validation

src/frontend/src/views/Settings.vue:2380 — activeTab = ref(resolveTabFromQuery(route.query.tab)) resolves once at setup against visibleTabs (2365–2373), which filters on the entitlement check before the entitlement list has loaded; the watcher at 2393 follows route.query.tab only, so the tab is never re-resolved.

Acceptance Criteria

  • The repro above gives the Expected result at 1440 and 768, in light and dark.
  • A regression test pins the behaviour (unit or Playwright, whichever tier can observe it).
  • No new raw-palette classes or hand-rolled primitives are introduced by the fix (docs/memory/design-system-contract.md).

Technical Notes

Evidence screenshots (kept on the machine that ran the sweep; the evidence folder is gitignored because the repository is public):

  • docs/testing/ui-sweep/evidence/2026-10-09-all/ad284d77-1.png
  • docs/testing/ui-sweep/evidence/2026-10-09-all/ad284d77-2.png

Found by /ui-sweep --all @ c90c711

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions