Version 0.10
artutils 0.10.0
Breaking Changes
-
15-Metric Benchmark System:
calcArtworkBenchmarks()now returns 5 metrics per category instead of 3- Time & Effort: Added
color_generation_rate,early_late_color_ratio - Skill & Artistry: Added
strokes_per_unique_color,frame_color_stability - Complexity & Detail: Added
frame_color_variance,technique_phase_count - Migration Required: Applications expecting 3 components per category must be updated
- Benchmark scores will change as they now average 5 metrics instead of 3
- Time & Effort: Added
Major Changes
- Updated
calcArtworkBenchmarks()to query productionartwork_statstable instead of testartwork_stats2 - Added database schema validation with warnings for missing metrics
- Enhanced NULL/NA handling with user notifications
- Improved test coverage for benchmark calculations
New Features
- Database schema validation automatically handles missing columns
- Transparent NA metric reporting for debugging
- Comprehensive unit tests for 15-metric framework
Bug Fixes
- Fixed incorrect benchmark scores in modGallery (was showing 99%, 16%, 66% instead of correct values)
- Resolved issue with test table query causing stale data
Documentation
- Updated AGENTS.md with complete 15-metric framework documentation
- Added migration guide for applications using benchmark data
- Enhanced function documentation with metric descriptions
Performance
- No performance degradation despite additional metrics
- Query optimization notes added for large portfolios (100+ artworks)
Dependencies
- Requires artcore >= 0.2.0
- Database requires 7 new columns in
app.artwork_statstable:color_generation_rateearly_late_color_ratiostrokes_per_unique_colorframe_color_stabilityframe_color_variancetechnique_phase_count
Migration Guide
Applications using calcArtworkBenchmarks() must be updated:
Before (3 metrics per category):
benchmarks$time_effort$components # length = 3
# c(drawing_hours, brush_strokes, ave_bpm)After (5 metrics per category):
benchmarks$time_effort$components # length = 5
# c(drawing_hours, brush_strokes, ave_bpm, color_generation_rate, early_late_color_ratio)