Keep review graphs aligned on empty and service-shaped walks - #25
Conversation
Empty impact ranges were classified as leaf UI and inherited every architecture finding, so checklist items pointed at nodes the review graph did not contain. Scope findings to the walk, extract permission classes and dataclasses onto the map, and show an empty-walk state instead of a missing-index message. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (8)
🚧 Files skipped from review as they are similar to previous changes (4)
Included review availability: Your plan includes up to 1 review per rolling hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe PR adds Django permission and dataclass graph extraction, updates review finding scoping, handles empty graph states, refreshes frontend assets, and updates related tests and indexing behavior. ChangesArchitecture and review flow
Estimated code review effort: 3 (Moderate) | ~30 minutes Merge Risk: ⚪ Minimal · up to This change aligns review graphs for empty and service-shaped walks and adds focused extraction and UI handling; no actionable merge-blocking risk remains beyond normal checks and review. Sequence Diagram(s)sequenceDiagram
participant DjangoSource
participant DjangoExtractor
participant ArchitectureSnapshot
DjangoSource->>DjangoExtractor: provide classes, views, and test references
DjangoExtractor->>DjangoExtractor: normalize permission identities and classify entities
DjangoExtractor->>ArchitectureSnapshot: emit service and permission nodes
DjangoExtractor->>ArchitectureSnapshot: add permission-aware test usage edges
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 |
Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
View permission_classes now share node ids with extracted *Permission classes so the inspector and tests point at the same node. The graph tab shows the loading state while architecture is still hydrating. The progress e2e no longer blocks other API routes with a sleep, which was racing the poll assertion in CI. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
What
Ran Loadpath against 30 public Django/React PRs and fixed the graph/review mismatches that showed up.
Campaign (first pass)
Indexed each PR head, walked the review impact graph plus the architecture graph, and checked dangling edges, missing files, layout overlap, and whether sinks/findings/checklist ids resolve on the graph that is shown.
First pass: 25/30 internally linked. Four empty-impact ranges (docs/version/constants/CI) leaked the whole architecture into the review and were mis-titled
leaf ui. django-filter hit a local worktree clone glitch (same PR had already passed a smoke review: 516 nodes / 568 edges). Isolated test-only walks (kitsune, taiga) were missing the dataclasses/permission classes the diff actually changed.Fixes
leaf_uinode_ids that are not on the review graph@dataclasstypes as services and*Permissionclasses as permission nodes; include both on the architecture mappermission_classeswith extracted*Permissionclass idsAfter the fix, the four leaking reviews are
internal_servicewith 0 findings. Kitsune goes from 163 isolated tests to 183 nodes / 15 edges (18 services). Taiga’s changed permission classes appear on the walk.Evidence
pretix 2D graph with inspector
oscar empty-walk message
pontoon React graph inspector
pretix_pr_graph_nodes_edges_inspector.mp4
oscar_empty_walk_and_pontoon_react_graph.mp4
Tests
pyteston the touched unit files, the previously failingtest_ui_index_polls_progress_endpoint, andcd ui && npm test(74 vitest cases).To show artifacts inline, enable in settings.
Summary by CodeRabbit
New Features
Bug Fixes
User Interface