# Changelog ## 2026-02-16 ### Refactor Results - Modularized CLI command implementations: - Added `src/vlm/commands/parse.py` - Added `src/vlm/commands/enrich.py` - Added `src/vlm/commands/execute.py` - Refactored `src/vlm/cli.py` to delegate `parse`, `enrich`, `execute`, and `rollback` to command modules - Unified I/O layer for JSON handling: - Added `load_json_file`, `save_json_file`, `save_analysis_json` in `src/vlm/io.py` - Updated analyze/enrich paths to use unified I/O entry points - Parser/config consistency improvements: - Added shared `DEFAULT_VIDEO_EXTENSIONS` in `src/vlm/config.py` - Updated `src/vlm/parser.py` to use the shared config constant instead of local hardcoded defaults - Execution reliability hardening: - Updated `src/vlm/executor.py` transaction logging to fail gracefully when `~/.vlm` is not writable (warn + continue) - Test stability improvements: - Standardized test timestamps to timezone-aware UTC (`datetime.now(timezone.utc)`) - Added missing `timezone` imports where required ### Verification - Full test suite passed after refactor: - `477 passed` ### Documentation Sync - Updated repository documentation set to match the refactor baseline: - Core docs: `README.md`, `AGENTS.md`, `CLAUDE.md`, `GEMINI.md` - Skill docs: `skills/vlm-library-workflow/SKILL.md` and all references under `skills/vlm-library-workflow/references/` - Legacy review/plan docs now explicitly marked as historical snapshots and redirected to `CHANGELOG.md` as the current source of truth