Revamp the 3D impact graph - #26
Conversation
|
Warning Review limit reached
Next review available in: 53 minutes Limit details: You’ve used all 1 included review currently available under your plan. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (7)
ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (14)
Included review availability: Your plan includes up to 1 review per rolling hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe Impact graph now supports layout-aware 3D rendering. It maps bounded contexts to depth, detects WebGL support, provides 2D fallback states, adds interactive rendering features, updates production assets, and expands graph and end-to-end tests. ChangesImpact graph 3D rendering
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: ⚪ Minimal · up to The PR updates the 3D impact graph with selectable layouts, contextual depth, edge styling, guides, and an error boundary. No actionable merge-blocking risk remains beyond normal checks. Sequence Diagram(s)sequenceDiagram
participant User
participant ImpactGraph
participant LayeredGraph3D
participant WebGLRenderer
User->>ImpactGraph: select 3D projection and layout
ImpactGraph->>ImpactGraph: detect WebGL and select effective projection
ImpactGraph->>LayeredGraph3D: pass graph data, layout, roles, and selection
LayeredGraph3D->>WebGLRenderer: create scene and render graph
WebGLRenderer-->>LayeredGraph3D: provide frames or report an error
LayeredGraph3D-->>ImpactGraph: render graph or fallback message
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
Replace the unlabeled sphere spiral with the same 2D layouts extruded by bounded context, inferred dashed edges, role highlighting, and named nodes. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Replace architecture-type circles (centered at the origin) with bounding slabs per layout column, line rings for radial, and no fill for grid. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Column slabs stay on architecture/flow; concentric and circle use rings; tree, clusters, grid, and force stay unguided. A 3D error boundary keeps Review mounted if WebGL throws. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
5f54754 to
374479e
Compare
Large reviews default to 3D, which blocked the merge-box e2e in headless CI. Stay on 2D until WebGL is confirmed, isolate graph crashes, and release the probe context so Three.js can still start. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Headless Chromium still reports WebGL via SwiftShader, so large architecture graphs swapped to 3D and stalled the main thread before Review mounted. Keep automated browsers on 2D until the user clicks 3D, and probe WebGL only when idle. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Why
The 3D graph was a sphere spiral with unlabeled nodes. 2D got layout algorithms, inferred-vs-extracted edges, and role overlays; 3D did not. Large reviews default to 3D, so the weaker view was the one people saw first.
Rebased onto
mainafter #27 added five more 2D layouts (tree, concentric, circle, clusters, force).What changed
3D is the 2D map with a third axis:
Guides follow the layout:
Review stays mounted if 3D cannot start (CI / no GPU):
navigator.webdriver) never auto-enter 3DTests
Summary by CodeRabbit