gabriel / musehub public
feat BREAKING main #18 / 32
AI Agent gabriel · 31 days ago · May 9, 2026 · Diff

feat: TDD proposal symbol delta — server-side change map with delta algebra

New service: proposal_symbol_delta.build_proposal_symbol_delta - Reads structured_delta from each commit in chronological order - Maps delta algebra ops: insert→added, delete→deleted, replace/mutate/patch→modified - Reduces net op across commits (insert+delete=cancelled, delete+insert=modified, etc.) - Groups entries by file path, sorted added→modified→deleted within each file - Surfaces breaking change flags from commit.breaking_changes

Controller (ui_proposals.py): wires the service, passes ProposalSymbolDelta to template.

Template (proposal_detail.html): replaces empty JS-dependent columns with SSR delta: - Ratio bar: proportional add/modify/delete segments as visual fingerprint - File-grouped entries with op sigils (+/~/×) and inline breaking markers - Symbol names link to /symbols?q=<name> - Empty state when no structured_delta present

Tests: 26 unit tests (net-op reduction, op mapping, grouping, deduplication, breaking flags) + 13 SSR integration tests (HTML rendering assertions).

sha256:70b3c5549b31d5595edc8f835f4cc5c7acf75b94ab9ce7559bac1d4b9e9196b5 sha
sha256:37489fe4cf01439c423e9b25be9b6adedc3dc9c834bc8e311e84c91f37d5d870 snapshot

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:70b3c5549b31d5595edc8f835f4cc5c7acf75b94ab9ce7559bac1d4b9e9196b5 --body "your comment"