feat: list topology sub-pages in the sidebar - #146
Conversation
The infra layout graph and service map were reachable only from small buttons inside /topology, so users could not find them from the sidebar. The Topology entry now expands to Request flow, Infra layout and Service map, auto-opens on any /topology path, and keeps the header active on sub-pages without a menu entry (per-resource relationship graph). Labels are localized in all four languages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🤖 AI Code Review (two independent reviewers)_Reviewer responses: codex/ALL claude/ALL _ Status: PASSED — No blocking issues found Chair Review — PR #146: feat: list topology sub-pages in the sidebar1. SummaryThis PR adds a collapsible Topology group to the sidebar (Request flow / Infra layout / Service map), registers the two new sub-routes in 2. Issues per lensL2 — Code correctnessNo CRITICAL/MAJOR. Both models agree the navigation, active-state, seeding and persistence logic is correct; codex noted its runtime test execution was blocked by a sandbox limit (an environment caveat, not a code finding), while claude's static trace covered the same ground and I re-verified the pivotal facts (icons already imported, routes exist, i18n parity preserved,
L3 — Security / AWS mutation safetyNo findings — both models agree. The patch is client-side navigation metadata and locale strings only: no new API surface, no fetch/SDK/IAM/Terraform change, no secrets. The ADR-005 mutation freeze is untouched; the pages made more discoverable ( L4 — Observability / data-integration correctnessNo findings — both models agree. No Steampipe SQL, compliance checks, collectors or AgentCore diagnosis logic is touched. The one data-adjacent behavior — L5 — Docs / ADR consistencyNo CRITICAL/MAJOR. Changelog placement and convention verified: one bullet per feature under both
3. Suggestions
4. VerdictNo CRITICAL or MAJOR findings from either panel or from chair verification; all MINOR items are non-blocking polish. Panels agree across all four lenses, and the points of agreement were independently re-verified against the resulting code rather than taken on trust. The image manifest lists no images, no deletions and no unavailable/omitted entries, and both panel cells declared coverage not required. IMAGE_COVERAGE: NOT_REQUIRED Triggered by commit |
Map /topology/infra and /topology/services to their own mobile top-bar titles instead of the generic Topology label, and type FIXED children as one level so the renderer cannot silently drop a nested entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collapsing the Topology group on a child page unmounted the active child and left no sidebar item with aria-current. The header is now active whenever the panel is collapsed on a topology path. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
/topology/infra) and service map (/topology/services) were only reachable via small buttons inside/topology; the sidebar had a single flat Topology link, so users could not find the resource graph.FIXEDentries accept optionalchildren; Topology now renders as a collapsible group (link + chevron + instance-scoped panel, same pattern as inventory groups) with Request flow / Infra layout / Service map. It auto-opens on any/topology*path; the header stays active on sub-pages without a menu entry (e.g./topology/resource/[id]).nav.topologyFlow|Infra|Servicesin ko/en/zh/ja. CHANGELOG EN/KO.Test plan
npx vitest run(web) — 352 files / 5371 tests passed; new source-contract tests inSidebar.test.tsxnpx tsc --noEmit -p .— no errors outside pre-existing*.test.ts(x)noise/topology/infra🤖 Generated with Claude Code