Load-path overlays, merge gate, and faster indexing - #21
Conversation
Walk GraphQL, Channels, Django templates/HTMX, cache/flags/on_commit, and in-repo FastAPI as sinks on the same architecture graph. Classify contract breaks, surface auth, suggest tests, what-if a node, and trend confidence. Review dirty trees, fetch GitHub/GitLab/Bitbucket PRs into a local clone, and fail CI via a composite Action plus --fail-on. 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 (65)
📝 WalkthroughWalkthroughThis change adds GitLab and enterprise SCM support, pull-request fetching, dirty reviews, indexing progress, expanded architecture extraction, contract and authorization analysis, what-if reviews, CI gating, MCP tools, frontend workflows, and expanded fixture and test coverage. ChangesArchitecture extraction and indexing
SCM and review workflows
Application and frontend integration
Action and documentation
Estimated code review effort: 5 (Critical) | ~120 minutes Merge Risk: ⚪ Minimal · up to No actionable merge-blocking risk remains; the PR is merge-ready after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant Developer
participant UI
participant API
participant Indexer
participant GraphStore
participant ReviewEngine
Developer->>UI: start indexing or review
UI->>API: submit repository and review options
API->>Indexer: index with workers and progress callback
Indexer->>GraphStore: store extracted and stitched graph
API-->>UI: return progress and review data
UI->>ReviewEngine: request what-if or review workflow
ReviewEngine->>GraphStore: load graph and review history
ReviewEngine-->>UI: return findings, contract status, auth data, and suggested tests
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 |
parse_remote_url treated '.git' as part of the slug because the host regex allows dots. Gate checks for a breaking contract before medium confidence so --fail-on medium fails on a public-contract break. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Indexing now reports scan/extract/boot/stitch phases with per-file counts, hashes each source once, extracts CPU-bound ASTs in a process pool, and keeps SQLite upserts on one thread with WAL and batched commits. The CLI shows a live bar, the API exposes GET /api/index/progress, and the UI polls that endpoint so a long index is distinguishable from a hang. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Spawn overhead dominates tiny trees, so default extract workers stay at 1 below 80 files (--jobs / LOADPATH_INDEX_JOBS still force a pool). Worker spawn failures fall back to sequential extract instead of writing an empty graph. The UI ignores idle progress polls so the rail shows the current phase, not "No index in progress". Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Keep PR #20 app namespacing, FilterSet, nested regex routes, and workspace-switch loading while landing overlays, parallel index, and the merge gate. Also address merge-blocking review findings: index a detached worktree at the fetched PR ref, redact clone tokens, skip FastAPI when Ninja matched, classify only added required=True, bump INDEX_REVISION, keep GitLab nested group slugs without path traversal, and allow self-hosted GitHub/GitLab OAuth hosts. Co-authored-by: zord.lack.net <zord.lack.net@gmail.com>
Walks the rest of a Django + React (and FastAPI) monorepo as load-path inspection — not hunk comments.
Merged with
main(PR #20: app namespacing, FilterSet, nested regex routes, workspace-switch loading). Adversarial review findings on this branch are addressed in the merge.Review surface
fail-on: never / blocker / low / medium) plus--github-output--dirtyworking-tree reviewreview_pull_request, Review this PR) so index reads the PR tree, not the local checkoutwhatif, inspector, MCPwhat_if)required=Trueis breaking)Overlays on the same graph
gqldocuments{% url %}, include/extends,hx-*)transaction.on_commitas sinksIndexing progress and speed
scan→extractN/M →boot→stitch→done) so a long index is distinguishable from a hangloadpath index -j N);LOADPATH_INDEX_JOBSalso worksGET /api/index/progress?repo_path=polled by the UI (current file/phase in the rail; determinate bar when totals are known)ProcessPoolExecutor(spawn); SQLite upserts stay on one thread--jobs/LOADPATH_INDEX_JOBSforce a poolINDEX_REVISIONbumped so overlay identity is not skipped on incremental indexSafety
./..path segments while still allowing GitLabgroup/subgroup/projectDemo fixture, unit, and e2e coverage added for the new extractors, stitch, gate, GitLab, dirty review, what-if, progress events, parallel vs sequential graph identity, UI progress polling, PR worktree checkout, and Ninja-vs-FastAPI extract.
Summary by CodeRabbit