Record immutable manifest, candidate count and byte totals before copying; sources remain unchanged and may be read-only.
Show unreadable paths and reasons without aborting other entries.
Restrict source selection to configured mounts; reject traversal and symlink escapes and exclude the managed destination from scanning.
Define grouping preview: default one STL per model, with explicit grouping into multi-part models and supplementary-file association; do not guess associations silently.
Test nested trees, unreadable paths, source/destination overlap and symlinks.
## Context
Managed import needs a stable manifest before copying.
## Acceptance criteria
- [ ] Recursively enumerate STL candidates and explicitly selected associated images/documents; preserve relative hierarchy.
- [ ] Record immutable manifest, candidate count and byte totals before copying; sources remain unchanged and may be read-only.
- [ ] Show unreadable paths and reasons without aborting other entries.
- [ ] Restrict source selection to configured mounts; reject traversal and symlink escapes and exclude the managed destination from scanning.
- [ ] Define grouping preview: default one STL per model, with explicit grouping into multi-part models and supplementary-file association; do not guess associations silently.
- [ ] Test nested trees, unreadable paths, source/destination overlap and symlinks.
Blocked by: #1, #18
keith
added this to the M3 - Import & Indexing Engine milestone 2026-10-10 22:19:41 +00:00
Acceptance reconciliation at c1ef2ee: keeping open. Scanner exists, but configured mount restriction, managed-destination exclusion and immutable confirmed grouping are missing. Current grouping guesses from top-level directories, conflicting with one-STL default and explicit association criteria. This is a source/test review, not a newly executed crash or restore experiment. Fresh Windows suite: 291 tests, 1801 assertions, 22 skips; lint passes. PostgreSQL fixture success does not waive these feature criteria.
Acceptance reconciliation at c1ef2ee: keeping open. Scanner exists, but configured mount restriction, managed-destination exclusion and immutable confirmed grouping are missing. Current grouping guesses from top-level directories, conflicting with one-STL default and explicit association criteria. This is a source/test review, not a newly executed crash or restore experiment. Fresh Windows suite: 291 tests, 1801 assertions, 22 skips; lint passes. PostgreSQL fixture success does not waive these feature criteria.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Context
Managed import needs a stable manifest before copying.
Acceptance criteria
Blocked by: #1, #18
Acceptance reconciliation at
c1ef2ee: keeping open. Scanner exists, but configured mount restriction, managed-destination exclusion and immutable confirmed grouping are missing. Current grouping guesses from top-level directories, conflicting with one-STL default and explicit association criteria. This is a source/test review, not a newly executed crash or restore experiment. Fresh Windows suite: 291 tests, 1801 assertions, 22 skips; lint passes. PostgreSQL fixture success does not waive these feature criteria.