Skip to content

fix: preserve manifest collision order#179

Open
johnson-ricon wants to merge 1 commit into
junior/changed-note-ref-difffrom
johnson/fix-ref-diff-manifest-order
Open

fix: preserve manifest collision order#179
johnson-ricon wants to merge 1 commit into
junior/changed-note-ref-difffrom
johnson/fix-ref-diff-manifest-order

Conversation

@johnson-ricon

Copy link
Copy Markdown
Contributor

Finding

PR #177 repairs exact-row aliases and expands exact ID/path components, but exact row sets discard manifest order. When two IDs map to one readable path, full materialization uses the last row as the resulting file. Reordering those same rows can therefore change readable content without changing any row membership or blob. Exact head 3de63a2 selects no IDs and reports no readable change.

This fix records each ref's ordered ID sequence per readable path. A changed sequence seeds every ID on that path before the existing component expansion, preserving full-tree overwrite semantics while retaining changed-only blob materialization.

Validation

  • mise run test — 405 BATS tests and 9 Python tests passed
  • mise run test diff — 15/15 passed
  • all eight Codebase lints passed
  • mise run doctor passed; optional local pre-commit hook remains uninstalled
  • bash -n lib/diff.sh .mise/tasks/diff
  • readme build --check
  • git diff --check

Fixes one adversarial review finding on #176.

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