Close the client load path: App Router, typed clients, and e2e seams - #24
Conversation
Index Next.js app/pages routes and Server Actions as sinks, stitch RTK Query, openapi-fetch, tRPC, and ts-rest as high-confidence clients, and count Playwright/Cypress visits as tested_by on the published route. Treat GraphQL codegen types and Ninja/Pydantic nested schemas as the same contract family as DRF serializers. Resolve get_serializer_class returns and extract nested serializers, SerializerMethodField, and to_representation keys so those stop dumping to residual AI. 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 ignored due to path filters (1)
📒 Files selected for processing (42)
Included review availability: Your plan includes up to 1 review per rolling hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change expands Django and React extraction, schema and route stitching, server-action modeling, GraphQL indexing, and graph visualization. It adds fixture coverage, review suggestions, UI layout controls, tests, and updated packaged assets. ChangesDjango and React extraction
Graph layout and interface
Estimated code review effort: 5 (Critical) | ~120 minutes Merge Risk: ⚪ Minimal · up to This change expands client-side contract and graph stitching behavior without any supplied evidence of an actionable merge-blocking risk; it is merge-ready after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant SourceFile
participant extract_react_file
participant stitch
participant GraphUI
SourceFile->>extract_react_file: provide route, client, schema, or test source
extract_react_file->>stitch: emit nodes and relationship metadata
stitch->>GraphUI: provide stitched graph data
GraphUI->>GraphUI: apply selected layout and render handles
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 |
The map toolbar now has a layout dropdown (architecture layers, edge flow, radial, compact grid) that persists in localStorage. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Bring in the review-experience UI, then keep the layout dropdown on top of it. Typed clients no longer over-match HTTP methods, React Router paths, or internal URLs; flow layout caps cycles; localStorage matches the theme helpers. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Walks stay the product. This pack closes the published-contract stitch on the client side so a Django change can reach Next.js pages, typed API clients, and Playwright/Cypress visits instead of stopping at inferred
fetch+ Zod overlap.Rebased onto current
main(review history, graph overlays, editor marks). Adversarial review findings that would have shipped false high-confidence stitches are fixed in this revision.What changed
app/**/page.tsx(and layout) plus Pages Router map to URL templates.app/**/route.tsis an API handler, not a page."use server"exports (function andconstarrows) becomereact.server_actionsinks.createApiendpoints (URL, not HTTP method literals), openapi-fetchcreateClient/GET, ts-restmethod+pathcontracts, andtrpc.*procedures stitch asconsumed_by_client. Genericapi.POST/ React Routerpath:/api.*.useQueryare not typed clients.tested_by— Playwrightpage.goto/page.requestand Cypresscy.visit/cy.requestattach to React routes and pages. Path matching allows an/apimount prefix only — not/internal/...or collection↔detail.__typename) and NinjaSchema/ModelSchemaresolved through imports.get_serializer_classlinks returned serializers only (dead dicts stay residual). Nested serializers,SerializerMethodField, andto_representationdict keys become published fields.localStorage(try/catch). Flow ranks cap on cycles. Radial/grid pick N/E/S/W handles.Tests
get_serializer_class, path-match mountstested_by, no/internal/invoicesfalse linksSummary by CodeRabbit
New Features
Documentation
Tests