Adds vlm_schema_version field to all data file formats for schema
evolution and migration tracking. Task #1 already added versioning
to identities.json; this completes the remaining files.
Changes to scanner.py:
- Add "# vlm_schema_version: 1.0" as first comment line in inventory.csv
Changes to commands/analyze.py:
- Add "vlm_schema_version": "1.0" to analysis.json root
Changes to planner.py:
- Add "vlm_schema_version": "1.0" to plan.json root
Changes to executor.py:
- Add "vlm_schema_version": "1.0" to rollback log JSON
Schema versions:
- inventory.csv: 1.0 (in comment header)
- identities.json: 1.0 or 2.0 (set by parse command)
- analysis.json: 1.0
- plan.json: 1.0
- rollback_log.json: 1.0
Future migrations:
- Version field allows detecting old formats
- Can implement auto-migration logic
- Can warn users about version mismatches
- Enables schema evolution without breaking changes
Testing:
- All 449 tests pass
- No test changes needed (backward compatible)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Allow users to configure multiple directory names per category (movie/series/anime) to support variations like "movies", "tv", "films". This enables proper categorization of files in directories that don't match the hardcoded singular forms, solving the issue where 635 files in "/mnt/Downloads/movies/" were incorrectly categorized as "other".
Configuration example:
categories:
movie: [movie, movies, films]
series: [series, tv, shows]
anime: [anime]
Changes include comprehensive validation, backward-compatible defaults, case-insensitive matching, and full test coverage (395 tests passing).
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>