RiserForge v2.0.0
Major release focused on end-to-end workflow improvements, persistence, roster tooling, print controls, and security hardening.
Highlights
- Added local configuration persistence in the ribbon File workflow:
- Upload/Download
.riserforge.json files
- Full-session save/load coverage
- Dirty-state tracking and save-status UX
- Added robust normalization/defaulting/clamping on config load with non-destructive best-effort behavior.
- Expanded roster workflows:
- Roster Management dialog enhancements
- CSV/XLSX import improvements
- group management controls and icon updates
- sorting/filter controls and behavior refinements
- Expanded appearance and layout controls, including counters, section-sequence handling, and mode-aware control disable states.
- Improved print options and assignment output behavior.
- Added security/debug hardening:
- CSV formula-injection neutralization for exported assignment CSV files
- unsafe key filtering in persisted map-like records (
__proto__, prototype, constructor)
- config file size/empty-file guards
- Added persistence mapping regression tests to ensure save/load mappings stay aligned with schema.
- Updated user-facing docs and README for new v2 workflows.
Issues addressed in v2.0
#3, #4, #6, #7, #8, #9, #11, #12, #13, #14