feat: column-level impact answer in `impact_analysis`, with one column resolver for `dbt_lineage`
Issue for this PR
Closes #1709
Type of change
- Bug fix
- New feature
What does this PR do?
impact_analysis answers a column hop by hop (metadata.column_answer). Every model past the edited one either carries the value or may carry it, with a reason; none is reported unaffected. Claims: the review-log comment.
How did you verify your code works?
Each finding has a test that fails without its fix.
Demo
After an edit, the band says "Ā· 28 more may change", and the report groups those 28 models by why each may carry the value: nothing is called unaffected. The second clip is /lineage-report int_role_query_usage.total_cost_30d, which leads with where the value comes from. Click a clip for the MP4.
Recorded on this head (0189b55c71) with AltimateAI/altimate-claude-plugin#21 at c9cdec1, both local builds, in an isolated Claude Code. Clicks in the report go through Chrome's input API at the pointer's spot; what the page does in response is real.
Cost side effects
None (local manifest only).
Checklist
- I have tested my changes locally
- I have not included unrelated changes in this PR
- I checked for cost side effects (model calls, queries or cloud resources that grow with user data) and described them, or wrote "none"
š¤ Generated with Claude Code
https://claude.ai/code/session_01VEmKQwEiHMwQ7BdwgPo9sb
cubic's summary is left out: on its own it nearly fills the 5,000-character limit for this description. Its review is on the PR.