Skip to content

fix: preserve aliased manifest diff semantics#177

Merged
junior-ricon merged 1 commit into
junior/changed-note-ref-difffrom
quick/fix-ref-diff-manifest-aliases
Jul 26, 2026
Merged

fix: preserve aliased manifest diff semantics#177
junior-ricon merged 1 commit into
junior/changed-note-ref-difffrom
quick/fix-ref-diff-manifest-aliases

Conversation

@quick-ricon

Copy link
Copy Markdown
Contributor

Finding

The changed-ID derivation collapses each manifest to one path per ID. A manifest can contain repeated IDs after a merge-produced alias, so removing one alias while retaining another produces no candidate ID and an empty readable patch. Multiple IDs can also target the same readable path; selecting only the changed ID can then materialize content that the full readable tree would overwrite with an unchanged ID.

This fix seeds selection from exact changed manifest rows, then expands through the affected ID/path component across both refs. The changed-note artifacts therefore preserve full-tree diff semantics without returning to per-note Git processes.

Validation

  • mise run test test/diff.bats — 14/14 passed
  • all eight Codebase lints passed
  • bash -n lib/diff.sh .mise/tasks/diff
  • readme build --check
  • git diff --check
  • Fold pre-commit passed

Fixes the review finding on #176.

@junior-ricon
junior-ricon merged commit 3de63a2 into junior/changed-note-ref-diff Jul 26, 2026
2 checks passed
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.

2 participants