Found while promoting Approvals into the nav (#537).
sidebarMarkup() in src/observability/dashboard/ui/pages/index.js renders a legacy flat sidebar — one nav-link per page, with an approvals badge via badgeFor(id). Neither function has a caller anywhere in src/. The live navigation is the #278 destination shell (navigationGroups/desktopNavigationMarkup in ui/navigation.js), which renders .destination-link + .secondary-link and filters on !child.hidden.
pageMarkup() in the same file is live — only sidebarMarkup and its badgeFor helper are orphaned.
Why it is worth removing rather than leaving: it is actively misleading. It renders every page unconditionally, ignoring the hidden flag, and carries badge-approvals/badge-alerts element ids that look like the live badge wiring. While investigating #537 it read as evidence that Approvals was already reachable — it is not.
Small and self-contained: delete both functions, confirm no test references sidebarMarkup or the badge-approvals/badge-alerts ids it emits (the live topbar chips are separate elements — check before deleting), run the gates.
Found while promoting Approvals into the nav (#537).
sidebarMarkup()insrc/observability/dashboard/ui/pages/index.jsrenders a legacy flat sidebar — one nav-link per page, with an approvals badge viabadgeFor(id). Neither function has a caller anywhere insrc/. The live navigation is the #278 destination shell (navigationGroups/desktopNavigationMarkupinui/navigation.js), which renders.destination-link+.secondary-linkand filters on!child.hidden.pageMarkup()in the same file is live — onlysidebarMarkupand itsbadgeForhelper are orphaned.Why it is worth removing rather than leaving: it is actively misleading. It renders every page unconditionally, ignoring the
hiddenflag, and carriesbadge-approvals/badge-alertselement ids that look like the live badge wiring. While investigating #537 it read as evidence that Approvals was already reachable — it is not.Small and self-contained: delete both functions, confirm no test references
sidebarMarkupor thebadge-approvals/badge-alertsids it emits (the live topbar chips are separate elements — check before deleting), run the gates.