Released: March 2026 • Build 20260314
🤖 Version 3.0.1 is a major architectural shift — ModusPractica evolves from a passive timer into an intelligent, data-driven practice assistant that senses your practice phase, adapts to your effort, and protects you from unproductive repetition.
🚀 Major Feature: Autonomous Phase Detection
-
Manual Toggle Removal: The “Technique / Free Practice” checkbox is gone. The system now automatically senses your current practice phase — no manual input required.
-
Silent Observer: Tracks two key biometrics in real time:
- Entry Cost — time elapsed to the first successful repetition, indicating how much effort it takes to “get into” a chunk.
- Stability Index — ratio of effort (resets) to completions, measuring how reliably a chunk can be executed.
Together these metrics automatically distinguish between the Acquisition phase (still learning) and the Consolidation phase (reinforcing mastery).
🧠 Effort-Based SRS Integration
-
Biometric Scheduling: The spaced-repetition algorithm now incorporates physical and cognitive effort data, not just success/failure outcomes, for more accurate memory modelling.
-
Dynamic Difficulty: High resistance (many resets in a session) automatically increases chunk difficulty, triggering more frequent reviews to prevent illusory fluency.
-
Mastery Acceleration: Effortless sessions (Stability Index = 1.0 — zero resets, maximum flow) trigger faster interval growth, rewarding genuine mastery with longer rest periods.
🛡️ Practice Health & Guardrails
-
Anti-Blocked Practice: A 12-minute cap on single-chunk focus prevents “mindless repetition” and neuro-overload. When the cap is reached, the system prompts you to pause, reflect, or move on.
-
Frustration Guard: If the system detects a downward spiral (> 8 minutes elapsed and a high reset count), it proactively offers to lower the target repetitions — keeping practice productive and psychologically safe.
✅ Smart Intensity: The 3-Rep Rule
-
Retention Checks: Chunks that achieved “Mastery” status in their previous session now default to a 3-repetition Retention Check instead of a full practice block. This respects the 24-hour Ebbinghaus consolidation window without demanding unnecessary effort.
-
Efficiency: Minimises session fatigue while maintaining the safety net of the daily Ebbinghaus review cycle — you confirm retention in under a minute and move on.
🛠️ Technical Refactor
- Refactored
MemoryStabilityManager.js to expose Entry Cost and Stability Index as first-class signals consumed by the SRS scheduler.
- Refactored
IntensityModule.js to integrate effort metrics into intensity calculations and guardrail triggers.
- Advanced duration prediction formula:
Entry Cost + (Target × Time/CR × Stability Index) — produces per-chunk time estimates that account for both historical performance and current session effort.
💡 UI Enhancements: Smart Suggestions
-
Smart Merge Suggestion: The app now proactively analyses your active chunks in the background. When two overlapping or adjacent chunks have both reached high stability (Acquisition Phase successfully completed), a subtle blue banner appears proposing to merge them.
- Accepting the suggestion creates a new, larger chunk with an automatically assigned safe (pessimistic) starting value to protect cognitive load.
- Suggestions can be permanently dismissed, keeping the musician in full control of their practice structure.
-
Smart Split Suggestion: The app now identifies “bottleneck” chunks that generate excessive cognitive load. When a chunk stagnates (persistently low stability after multiple sessions, or a high error rate), an amber warning banner appears.
- The system proposes splitting the chunk mathematically in half, with a smart asymmetric split applied when the measure count is odd.
- The user retains full control — the suggestion can be accepted or dismissed at any time without affecting the existing review schedule.
Released: March 12, 2026 • Build 20260312
🚀 Version 3.0.0 is a landmark release introducing the Interleaved Lab — a dedicated practice environment built on memory science to help you consolidate your entire repertoire faster, smarter, and with less cognitive fatigue.
🧪 New: The Interleaved Lab
-
Smart Practice Circuits: A dedicated workspace that generates optimised practice circuits based on your memory performance and Ebbinghaus retention science. Work through your entire repertoire in one structured, science-backed session.
-
Priority-Driven Selection: Chunks are automatically categorised into
'Focus' (critically overdue),
'Refresh' (upcoming reviews), and
'Sprint' (recently practiced) groups — ensuring the right material gets your attention at the right time, based on Ebbinghaus retention data and your personal performance history.
-
Dynamic Time Budgeting: The Lab calculates the optimal time allocation per chunk using your historical practice data and your selected intensity level (Light, Balanced, or Intensive). Sessions always fit your schedule and energy.
-
The 'Adempauze' (Smart Break): A non-pressured transition screen between chunks, featuring a live stopwatch. Take the time you need to breathe, reset your focus, and prepare for the next passage — preventing cognitive burnout during longer sessions.
-
Repertoire Filtering: A new UI panel lets you selectively include or exclude specific pieces from your circuits, giving you full control over session content without permanently affecting your review schedule.
🐛 Bug Fixes
-
Timer Synchronisation: Resolved an intermittent issue where the practice session timer could fall out of sync with actual elapsed time during pause/resume cycles.
-
Improved Data Logging: Fixed edge cases in session data logging that could produce inaccurate statistics for short or interrupted practice sessions, leading to more reliable charts and review scheduling.
🔧 Technical Details
- New
InterleavedSessionManager.js module manages circuit state, chunk sequencing, and time-budget calculations.
- New
AdaptiveTauManager.js provides real-time memory stability estimates used by the Lab's priority algorithm.
- Repertoire filter selection state is persisted in
localStorage under the key mp_labRepertoireFilter.
Released: February 22, 2026 • Build 20260222
🔧 Improvements & Fixes
- � Quick Date Insert: Right-click in the session notes field to insert the current date and time via context menu—perfect for timestamping practice observations.
- �🖥️ Maximized on Launch (Electron): The installed Electron app opens the main window maximized for a better full‑screen workflow.
- ▶️ YouTube Link Refresh Fix: Newly added or edited YouTube links are now usable immediately without restarting the app.
- UI Consistency: Minor adjustments to the update modal and intra‑app navigation to improve visual consistency.
Released: February 16, 2026 • Build 20260216
🐛 Bug Fixes
- Fixed Chunk Modal Input Accessibility: Resolved critical issue where the chunk name input field became inaccessible after validation errors, cancellations, or deletions. Users previously had to restart the app to create new chunks after an error.
- Enhanced Modal Keyboard Navigation: Added ESC key handler for chunk modals (Add Chunk and Edit Chunk), allowing users to quickly close modals using the keyboard.
- Improved Modal UX: Added backdrop click handlers for chunk modals, allowing users to close modals by clicking outside the modal window, consistent with other modals in the app.
- Automatic Focus Restoration: After validation errors (empty chunk name, invalid format) or duplicate confirmations, the input field automatically receives focus again, allowing immediate correction without manual clicking.
🔧 Technical Details
- Added event listeners for backdrop clicks on
#add-section-modal and #edit-section-modal
- Extended global ESC key handler to include chunk modals and add-piece modal
- Implemented 50ms delayed focus restoration using
setTimeout() after alert dialogs to ensure browser alert has fully dismissed
Released: February 14, 2026 • Build 20260214
✨ New Features
-
Piece Pause/Resume System: New "Paused" lifecycle state allows you to temporarily put a piece on hold with an automatic resume date.
💡 Why pause a piece?
Sometimes it's beneficial to let a piece "rest" for a while. This strategic pause allows your unconscious mind to continue processing the material, often leading to improved performance when you return. Whether you need a mental break from challenging repertoire, want to focus on upcoming performances, or simply need to manage your practice workload—pausing ensures the piece stays in your system without daily practice pressure. When ready, the piece automatically resumes on your chosen date, with all your progress preserved.
- Smart Resume Date Selection: Beautiful modal with intuitive calendar picker lets you select when to automatically reactivate a paused piece. Paused pieces are completely excluded from today's agenda and scheduling until the resume date, giving you a clear, focused practice view.
- Persistent Target Repetitions: Target repetitions adjustments in practice sessions are now saved and persist when you reopen the session. Your custom targets stay intact across sessions—no more reverting to chunk defaults!
🎨 UI Improvements
- Visual Status Indicators: Paused pieces display with a distinct orange/yellow color theme and show "⏸️ Resumes: [date]" in the piece list, making it immediately clear which pieces are on hold.
- Enhanced Status Banners: Piece detail view shows contextual status banners for paused pieces with resume date information and helpful explanations.
- Improved Modal Design: ESC key and backdrop click support for the new pause date picker modal, consistent with other modals in the app for a seamless user experience.
🔧 Technical Improvements
- Auto-Resume Logic: Pieces are automatically reactivated when their resume date is reached during dashboard initialization—completely hands-free resumption.
- Enhanced Data Persistence: Target repetitions are now properly saved to localStorage and restored from saved data instead of default chunk settings, ensuring your practice preferences are preserved.
- Lifecycle State Management: Paused pieces are intelligently filtered from due/overdue calculations and scheduled sessions, keeping your practice focus sharp.
Released: February 8, 2026 • Build 20260208
✨ New Features
- Technique / Free Practice Mode: New checkbox in the session evaluation screen allows you to log practice time and statistics WITHOUT updating the schedule or interval. Perfect for technique drills, polishing details, or experimenting with a passage—your review schedule stays intact while still tracking your actual practice time.
- Smart Session Logging: Sessions marked as "Log Only" are flagged in the practice history for later analysis, and adaptive learning systems correctly ignore these sessions to prevent skewing your memory calibration.
🎨 Improvements
- Enhanced Color Palette: Replaced piece colors with more distinctive and saturated colors (Ocean Blue, Forest Green, Crimson Red, Tangerine, Royal Purple, Hot Pink, Turquoise, Golden Yellow, Chocolate, Navy Blue) for better visual differentiation.
- Improved Visibility: Increased opacity of colored backgrounds throughout the app (from 18% to 35%, icon backgrounds from 35% to 55%) making pieces and sessions much more visible and easier to distinguish.
- Better Color Contrast: Colors are now more evenly distributed across the spectrum, reducing confusion between similar shades.
Released: February 7, 2026 • Build 20260207
🐛 Bug Fixes
- Target Repetitions Display: Fixed bug where target repetitions were incorrectly displayed as 6 even when set to a different value (e.g., 3). Chunks now correctly show the actual saved target repetitions value in both the chunk list and edit dialog.
- Modal State Management: Fixed issue where chunk input fields became uneditable after editing or deleting a chunk. The add chunk modal now properly resets its state, eliminating the need to restart the app.
- Form State Cleanup: Improved modal handling with explicit cleanup of form states and proper focus management when opening the add chunk dialog.
🔧 Improvements
- Workflow Enhancement: Better user experience when managing chunks with automatic focus on the first input field when adding new chunks.
Released: January 30, 2026 • Build 20260130
🐛 Bug Fixes
- Interval Tracking: Fixed bug where the interval field wasn't updated after practice sessions. The app correctly calculated intervals for scheduling, but the interval value in backup data remained at 1 day. The interval field now accurately reflects calculated review intervals based on performance (days to weeks for advanced stages with excellent performance).
- Data Consistency: Statistics and backup data now properly display actual spaced repetition intervals, providing better insight into learning progress.
Released: December 20, 2025 • Build 20251220
🔧 Improvements
- Free Practice Dialog: Fixed dialog window in Free Practice mode - now shows complete message text with proper formatting when saving practice time
- Charts Section Display: Bar Sections list in Charts now displays both the section range AND description for better clarity
🐛 Bug Fixes
- Dialog Text Truncation: Resolved issue where save confirmation dialog text was cut off in Free Practice window
- Charts Information: Section descriptions are now visible alongside section ranges in the Charts view
Released: December 18, 2025 • Build 20251218
🌍 Global Timezone Support! ModusPractica is now fully timezone-safe and works correctly for users worldwide.
✨ New Features
- Live Clock Display: Dashboard now shows local time, UTC offset, and IANA timezone name in the top-right corner
- Timezone-Safe Date Storage: All dates are stored in timezone-safe format with automatic migration of legacy data
- Global Compatibility: Ebbinghaus scheduler works identically across all timezones
🔧 Improvements
- Timezone Utilities: New utility functions:
getTodayLocal(), toDateOnly(), isSameDay(), daysBetween()
- Data Migration: Automatic conversion of legacy dates to timezone-safe format during data import
- Calendar Fixes: Calendar now displays correct local dates independent of timezone
- Statistics Accuracy: Streak calculations and overdue tracking are now timezone-aware
🐛 Bug Fixes
- Dashboard Loading: Fixed "Loading..." status caused by syntax errors in dashboard JavaScript
- Import Issues: Data import now correctly displays all pieces after import completion
- Syntax Errors: Corrected
getAgendaBucketsForDate() function with valid parameters
Released: December 1, 2025
🚀 Major Release
- Ebbinghaus Memory Engine: Scientifically-based spaced repetition algorithm
- Profile Management: Multi-user support with isolated data per profile
- Practice Sessions: Complete practice tracking with metrics and statistics
- Data Export/Import: Backup functionality for data portability