Rebuild compare projections and renderers around typed changes#106
Merged
Rebuild compare projections and renderers around typed changes#106
Conversation
Member
Author
|
This change is part of the following stack:
Change managed by git-spice. |
This was referenced Feb 27, 2026
5048446 to
cf2f789
Compare
c40a092 to
78cc2b5
Compare
corymhall
added a commit
that referenced
this pull request
Mar 2, 2026
#105) ## Summary This PR establishes typed `Change` items as the canonical output of the internal compare engine. It replaces violation plumbing with a typed-first contract that downstream renderers can consume directly. ## What Changed - Reworked `internal/compare` model and engine output to emit typed change records. - Removed legacy violation-oriented report fields and bridging logic. - Strengthened engine/requiredness tests around deterministic typed output and removed-output edge cases. - Kept category semantics explicit in one place so later PRs can project/render from a stable contract. ## Why The stack needs a single canonical change model before projection/rendering and lookup normalization can be simplified safely. This is the foundation for follow-up projection and lookup integration work in #106 and above.
Squash details: - Branch: st-ac3.17.3.8-remove-legacy-engine - Base: st-ac3.17.3.1-typed-change-engine - Squashed commits: 9 Original commits: - 754a3c1 internal/compare: remove legacy diagtree engine path - e7c9ab9 Rebuild compare breaking-change projections from typed changes - 3d8723b Keep nested breaking lines when direct change exists - c803a52 Fix compare maxChanges entry semantics and kind mapping - eee787a Track total breaking count independent of max-changes - c62ff6f Restore compare structured changes/grouped output contract - db468ce Align compare cmd tests with structured changes/grouped contract - 3b16bea Centralize compare Result structured model and JSON goldens - 4182404 Align text formatting to structured golden and add golden test
78cc2b5 to
8ad024b
Compare
Zaid-Ajaj
approved these changes
Mar 2, 2026
corymhall
added a commit
that referenced
this pull request
Mar 2, 2026
## Summary This PR introduces deterministic token lookup resolution from metadata history. Lookup behavior is exposed as direct per-call APIs so compare-time decisions can query resolution state without precomputed global services. ## What Changed - Added token lookup logic for resolved/ambiguous/none outcomes. - Added fixtures for single-rename, multi-hop, and ambiguity scenarios. - Added tests for determinism, candidate handling, and conservative behavior. - Extended normalize type surfaces needed by token lookup APIs. ## Why Token equivalence is required to classify missing/add/remap changes correctly during compare generation. This isolates token lookup as a focused primitive before integrating it into compare behavior in #109. ## Context - Depends on projection cleanup in #106. - Consumed by token integration in #109.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR rebuilds compare projections and renderers to consume typed change data directly.
It removes legacy rendering assumptions and aligns JSON/text output contracts with the typed engine introduced in #105.
What Changed
changesandgroupedviews from typed events.Why
Renderer/projection behavior should be derived from one typed source of truth.
Doing this here makes later normalization lookups additive, instead of requiring command-layer patchups.
Context