Repository navigation
#345 — feat(explore): macro view filtered directory + dimmed impacted-model DAG - #426
Conversation
…-model DAG Finishes the explore macro view (cute-dbt#345, epic #99) — the two remaining ACs after Slices 1–3 (#362/#364/#369): - AC1 — filtered artifact directory: for the focused macro, a folder-grouped, collapsible directory (native <details>/<summary>, zero JS/egress) of ONLY the models + tests whose transitive depends_on.macros reaches it, mirroring project folders. - AC3 — models and tests surfaced as SEPARATE partitions (never merged — the get_where_subquery non-merge rule), each grouped independently by the directory portion of original_file_path; pathless nodes bucket under "(no path)". AC2 (impacted-model subgraph complement dimmed) shipped in Slice 3 (#369) as the .macro-downstream role-dim; AC4 (one shared domain authority) is completed here — macro_blast_radius (models) and the new macro_test_consumers (tests) both route through one macro_resource_consumers walk, differing only in the resource-type predicate. AC5 (EXPERIMENTAL-gated) holds — the explore page is already experimental (#290). Domain stays POD (the new fn is a pure reverse-walk); the folder grouping is presentation in the explore adapter. render_explore takes a new MacroFocus bundle (focus set + test consumers) so the renderer never performs a domain walk (the explore-lane pure-renderer posture). The explore-macro golden is regenerated byte-identical and now shows the directory (3 callers across 2 folders, empty tests partition). Tests: 8 new domain tests (macro_test_consumers — direct/transitive/ unit_test/vendor-exclude/null-package/unknown), 5 adapter tests (folder grouping, partition separation, no-path sentinel, empty sets, end-to-end render), 1 BDD scenario + 3 steps, 1 headless test (live-DOM directory render + real collapse). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
|
Warning Review limit reached
More reviews will be available in 8 minutes and 52 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (10)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Ready to review this PR? Stage has broken it down into 7 individual chapters for you: Chapters generated by Stage for commit a5f9b02 on Jun 14, 2026 4:30pm UTC. |
📄 Rendered report previewAll golden examples regenerated cleanly. 🟡 Golden examplesCommitted to
🐶 Live dogfood previewThis PR doesn't touch 🧭 Explore previewThe two-page 🟡 Golden exploreThe committed
🐶 Live exploreThis PR doesn't touch ▶ Open ↗ opens the report or explorer in your browser in one The Pages preview may take ~1 min to update after this comment Alternative: GitHub CLI# gh CLI >= 2.63 extracts into ./report-preview-playground/.
gh run download 27505086032 -R breezy-bays-labs/cute-dbt -n report-preview-playground
open report-preview-playground/playground-report.htmlPosted by |
There was a problem hiding this comment.
Code Review
This pull request implements a filtered artifact directory for the explore macro view (addressing cute-dbt#345). It introduces folder-grouped, collapsible listings of models and tests that transitively call a focused macro, keeping the two partitions separate to prevent test consumers from cluttering the model view. The changes span domain logic (adding macro_test_consumers and refactoring with a shared reachability walk), rendering adapters, HTML/CSS templates, and comprehensive unit, BDD, and headless integration tests. Feedback on the changes suggests simplifying the path parsing logic in src/adapters/explore.rs by matching on the path once and using Option combinators to extract both the directory and file name in a single pass.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
…partition Compute (folder, file) in one match over original_file_path instead of three redundant path traversals. Functionally identical (golden output byte-unchanged); idiomatic single pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Merge debrief (#426 → #345) — squash Shipped: explore macro view — filtered artifact directory ( Bot disposition: 1 gemini medium (path-parse redundancy in Probe: verified the refactor preserves Gates: all 44 required green; clippy + nextest (1983) exit 0 (judged by raw exit — rtk masked the clippy code). Risk/follow-up: none from this PR. Note for the lane: #426 changed |
Summary
Finishes the explore macro view (cute-dbt#345, epic #99) — the two remaining ACs after Slices 1–3 (#362 skeleton, #364 focus-set walker, #369 focused DAG + role dimming).
AC1 — filtered artifact directory. For the focused macro, a folder-grouped, collapsible directory (native
<details>/<summary>— zero JS, zero egress) of ONLY the models + tests whose transitivedepends_on.macrosreaches it, mirroring the project folders (grouped on the directory portion oforiginal_file_path).AC3 — models + tests partitioned separately. The two kinds are surfaced as SEPARATE partitions, never merged (the
get_where_subquerynon-merge rule), each grouped independently. Pathless nodes bucket under(no path)rather than being silently dropped.The other ACs were already satisfied:
.macro-downstreamrole-dim — the induced subgraph renders with the downstream complement dimmed (opacity: 0.45), not removed.macro_blast_radius(models) and the newmacro_test_consumers(tests) both route through onemacro_resource_consumersreverse-walk, differing only in the resource-type predicate — the two partitions can never drift on transitive-reachability or the root-project fail-open package semantics.Architecture
macro_test_consumersis a pure reverse-walk twin ofmacro_blast_radius(sharedmacro_resource_consumerscore). The folder grouping is presentation in the explore adapter (build_macro_directory/macro_dir_partition).render_explorenow takes aMacroFocus<'a>bundle (focus set + pre-resolved test consumers) so the renderer never performs a domain walk — the explore-lane pure-renderer posture. The walks stay incli::execute_explore.<details>native collapse, no new assets).Dogfood
The
examples/explore-macro/macro.htmlgolden is regenerated byte-identical and now shows the directory: 3 calling models across 2 folders (models/intermediate/healthcare,models/marts/core), empty tests partition (no root-project test callsquarantine_filter— an honest empty state). Theexplore/explore-seedgoldens are unchanged.Gates (all green, raw exit code, run directly)
cargo fmt --check·cargo clippy --all-targets --locked -- -D warningscargo nextest run --locked— 2252 passedcargo test --test bdd— 30 features / 227 scenarios passed (new directory scenario included)headless_zero_egress -- --ignored— 12 passed (macro page + every-committed-example zero-egress over the regenerated golden)headless_toggle -- --ignored explore_macro— macro DAG geometry + new filtered-directory live-DOM testRUSTDOCFLAGS=-D warnings cargo doc --no-deps --locked·cargo deny checkTests added
macro_test_consumerstests (direct/transitive/unit_test/vendor-exclude/null-package fail-open/unknown-macro).models/, real<details>collapse).Closes #345
🤖 Generated with Claude Code