Releases: geoffmcc/alscan
Releases · geoffmcc/alscan
Release list
v0.9.0
v0.8.0
v0.8.0: 22 health checks, 8 CLI commands, CSV export, configurable th…
v0.7.1 — Release Blocker Fixes
Patch release fixing three release blockers:
- Check failures now surface as structured Findings instead of being silently swallowed
--allow-plausibleflag added to CLImerge-planandmerge-report- Cross-platform
open_folder()shared utility replaces Windows-only explorer calls - Duplicate
Findingdataclass consolidated
v0.7.0 — Three-Way Analysis Graduate, Validation Campaign, Versioning
v0.7.0
Three-Way Analysis Graduates from Experimental
Passed: 165 validation tests, warning gate, GUI parity gate, independent review.
Validation Campaign
- 155 new tests across 10 modules
- Fixture factory, scenario matrix, property invariants
- CLI integration, robustness (XSS/Unicode), report consistency
- Performance characterization: linear to 100 tracks
Defects Fixed
group_id=-1no longer treated as strong identity evidence- Single-branch/convergent track reorders no longer falsely conflict
Warning Audit
ResourceWarning: closed file handle insave_snapshotDeprecationWarning:invalidateFilter()→invalidate()RuntimeWarning: narrow suppression for PySide6 disconnect- Full suite
-W error: 690 passed, 1 skipped, 0 warnings
GUI Parity
- ThreeWayDropArea, Cancel,
allow_plausible, input validation - Collapse input after analysis, Open Containing Folder
- 28 automated GUI parity tests
Single-Source Versioning
pyproject.tomlis authoritative;importlib.metadata.version('alscan')at runtime- PyInstaller includes metadata via
--copy-metadata alscan
About Dialog
Help > About ALScanwith runtime version and project link
v0.6.0 — Human-Readable Compare Results
Compare Versions UI Redesign
Replaces the raw nested diff tree with three human-readable view modes:
- Summary — Aggregated changes per category with natural language
- Detailed — One row per changed property (object, change type, old value, new value, explanation)
- Raw — Original CLI-style plain-text output for advanced users
What's new
- Category filters (tracks, clips, devices, locators, tempo, time signature)
- Badges for Added / Removed / Modified / Moved / Renamed
- Full object names with tooltips (no more truncated "Track...")
- Natural descriptions: "2 clips added", "Tempo increased by 8 BPM", "Renamed from X to Y"
- Swap Sources to reverse the comparison direction
- Input area collapses after comparison to maximize result space
- Auto-expand groups when ≤10 changes
- Copy Summary and Export Report actions
- Light, dark, and system theme support for all new UI
Preserved
- Diff engine and CLI output unchanged
- All existing comparison combinations and read-only safety
New files
compare_analysis.py— structured analysis & explanation enginecompare_badge.py— change-type badge widgetcompare_result_widget.py— Summary / Detailed / Raw view modes
Tests
- 101 new tests; 489 total, 0 regressions
v0.5.0
ci: replace retired macos-13 runner with macos-15-intel
v0.4.1
v0.4.0
v0.3.2
fix: use dynamic version check in test instead of hardcoded 0.3.1
v0.3.1
Revert version to 0.3.1 (--snapshot goes in v0.3.1)