shell-redesign V1 attempt-3 Phase 3 BOUNCE-FIX follow-on: rig graph zero-height

Founder reported: clicking a rig in Explore navigates to /topology/rig/$rigId
graph tab but the canvas is empty.

Confirmed not a feature gap — RigGraph IS mounted (React Flow + 21
nodes verified via probe) but the parent container collapsed to 0
height, hiding the rendered graph.

Root cause: ScopeShell content area was `flex-1 min-h-0 overflow-auto`
but NOT a flex container, so the inner graph wrapper's `flex-1` had
nothing to flex against. min-h-[400px] only enforced 400px on the
wrapper but RigGraph (React Flow) renders at h-full of its parent and
needs a defined-height ancestor chain.

Fix:
- ScopeShell content area: add `flex flex-col` so children can use
  flex-1 to fill remaining vertical space.
- Graph branch wrapper: `flex-1 min-h-0 relative` (replaces
  `flex-1 min-h-[400px] relative`); inherits height from the now-flex
  parent and lets React Flow size correctly via h-full.

Visual verification at /topology/rig/01KQEQPN4MQJN0DHBM5CQ0N8D7:
- React Flow rect: width 1392, height 787 (was 0)
- 21 nodes rendered: orch_pod / velocity_pod / review_pod / watcher_pod
  / redo_pod / design_pod / redo3_pod with their internal agents,
  context %, edges
- OPENRIG-VELOCITY rotated watermark visible
- Paper-grid background extends around the graph
- View-mode tabs still anchored at fixed left position

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
This commit is contained in:
mvschwarzandClaude Opus 4.7 committed 2026-05-06 15:06:59 -07:00
1 parent 84557e5e1d
commit 210c32277d
1 file changed
+5 -2
@@ -68,7 +68,10 @@ function ScopeShell({
>
{tabsNav}
</div>
<div className="flex-1 min-h-0 overflow-auto">
{/* flex column so the active view-mode panel can fill remaining
height. min-h-0 lets the flex child shrink correctly inside
the AppShell main scroll container. */}
<div className="flex-1 min-h-0 flex flex-col">
{children}
</div>
</div>
@@ -138,7 +141,7 @@ export function RigScopePage() {
tabsNav={<TopologyViewModeTabs tabs={RIG_POD_SCOPE_TABS} active={active} onSelect={setActive} testIdPrefix="topology-rig" />}
>
{active === "graph" ? (
<div className="flex-1 min-h-[400px] relative">
<div className="flex-1 min-h-0 relative">
<RigGraph rigId={rigId} rigName={rig?.name ?? null} showDiscovered={false} />
</div>
) : null}