Skip to content

refactor(lineage): fold whole-model-impact into the CLL experience#1421

Open
danyelf wants to merge 2 commits into
mainfrom
refactor/drc-fold-whole-model-impact-into-cll
Open

refactor(lineage): fold whole-model-impact into the CLL experience#1421
danyelf wants to merge 2 commits into
mainfrom
refactor/drc-fold-whole-model-impact-into-cll

Conversation

@danyelf

@danyelf danyelf commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

PR checklist

  • Ensure you have added or ran the appropriate tests for your PR.
  • DCO signed

What type of PR is this?

refactor

What this PR does / why we need it:

--whole-model-impact was a separate server flag whose only way to be enabled
also forced --new-cll-experience on. In practice whole-model impact is a
subset of the CLL experience — there's never a reason to have one without the
other. This PR removes the standalone flag and gates the whole-model-impact
surfaces on new_cll_experience instead, so the two always travel together:

  • CLL on → new-CLL visuals and whole-model impact render
  • CLL off → neither renders

Backend

  • Drop the --whole-model-impact Click option, its flag dict entry, and the
    implied-flag block in recce/cli.py.
  • Remove the two obsolete CLI tests.

Frontend (full merge — the wholeModelImpact identifier is gone, not aliased)

  • RecceServerFlags no longer carries whole_model_impact.
  • The lineage context drops its wholeModelImpact field (the computed
    wholeModelChangedNodeIds / wholeModelImpactedNodeIds data sets stay).
  • computeImpactedSets always computes the whole-model sets — it's only ever
    called when newCllExperience && cll.
  • The title chip + left stripe (NodeView), graph badge (LineageNode), and
    change-category text-label suppression now gate on newCllExperience — which
    every one of those sites already had in scope, so it's a direct substitution.

Which issue(s) this PR fixes:

Special notes for your reviewer:

  • No behavior change for users already running --new-cll-experience: they now
    get the whole-model surfaces automatically (previously gated behind the extra
    flag).
  • recce/data/ (embedded frontend bundle) is not included here — it's a
    generated artifact regenerated by the normal build/release step.
  • Verified end-to-end against a DuckDB two-env project with
    --new-cll-experience: /api/flag returns new_cll_experience: true with no
    whole_model_impact key; the graph renders ADD/COLUMN badges, suppresses
    the category text labels, and NodeView shows the amber whole-model-impacted
    title chip + stripe on a downstream-impacted model.
  • Checks: pnpm type:check / pnpm lint / pnpm run build clean; full frontend
    suite 3979 passed; pytest tests/test_cli.py 23 passed; black/isort/flake8
    clean.

Does this PR introduce a user-facing change?:

The whole-model impact highlighting (title chip, left stripe, column badges, and
suppression of change-category text labels) is now part of the new CLL experience
and enabled by `--new-cll-experience`. The separate `--whole-model-impact` flag
(and its `RECCE_WHOLE_MODEL_IMPACT` env var) has been removed.

Remove the separate `whole_model_impact` server flag and gate the whole-model
impact surfaces (NodeView title chip + left stripe, LineageNode graph badge,
change-category text-label suppression, whole-model impact set computation) on
`new_cll_experience` instead. Whole-model impact was always a subset of the CLL
experience, so the two now travel together: CLL on -> both render; CLL off ->
neither.

Drops the `--whole-model-impact` CLI option and its implied-flag wiring; the
frontend `wholeModelImpact` identifier is removed in favor of `newCllExperience`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Danyel Fisher <danyel@gmail.com>
@codecov

codecov Bot commented Jun 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
recce/cli.py 68.89% <ø> (-0.09%) ⬇️
tests/test_cli.py 100.00% <ø> (ø)

... and 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Now that computeImpactedSets always returns the whole-model sets, tighten
ImpactSets to require them and drop the unreachable EMPTY_SET fallbacks in
publish (the sole producer always supplies both). EMPTY_SET remains the
stable initial-state reference. Update the hook tests accordingly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Danyel Fisher <danyel@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant