# [2.16.0](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v2.15.0...abacus-react-v2.16.0) (2025-12-19) ### Bug Fixes * **blog:** correct misleading claim about BKT feeding problem generation ([184cba0](184cba0ec8)) * **blog:** regenerate trajectory data from correct snapshot ([ce85565](ce85565f06)) * **dashboard:** make student dashboard responsive for small screens ([129907f](129907fcc6)) * **dashboard:** use React Query mutations instead of direct fetch ([ff7554b](ff7554b005)) * **migration:** add statement-breakpoint between CREATE and INSERT ([ba68cfc](ba68cfc75d)) * **practice:** add comprehensive logging and validation in recordSlotResult ([85d36c8](85d36c80a2)) * **practice:** add defensive checks in recordSlotResult ([a33e3e6](a33e3e6d2b)) * **practice:** add responsive styles to SessionModeBanner for small screens ([be08efe](be08efe06f)) * **practice:** check all later prefix sums for ambiguity, not just final answer ([43e7db4](43e7db4e88)) * **practice:** correct five complement skill detection for addition and subtraction ([1139c4d](1139c4d1a1)) * **practice:** correct pause phrase attribution ([cc5bb47](cc5bb479c6)) * **practice:** correct route path for resume session ([1a7945d](1a7945dd0b)) * **practice:** disable auto-scroll and add modern PWA meta tag ([8a9afa8](8a9afa86bc)) * **practice:** ensure badges are never taller than wide ([5730bd6](5730bd6112)) * **practice:** ensure keypad spans full screen width ([4b8cbdf](4b8cbdf83c)) * **practice:** ensure speed meter bar is always visible ([0c40dd5](0c40dd5c42)) * **practice:** fix circular import causing REINFORCEMENT_CONFIG.creditMultipliers to be undefined ([147974a](147974a9f0)) * **practice:** fix invisible resume button by using inline styles ([dd3dd45](dd3dd4507c)) * **practice:** handle paused state transitions and add complete phase ([36c9ec3](36c9ec3301)) * **practice:** improve dark mode contrast for sub-nav buttons ([59f574c](59f574c178)) * **practice:** improve mobile layout + floating abacus positioning ([3c9406a](3c9406afc5)) * **practice:** include endEarly.data in currentPlan priority chain ([28b3b30](28b3b30da6)) * **practice:** make session plan page self-sufficient for data loading ([7243502](7243502873)) * **practice:** move SessionPausedModal into ActiveSession for single pause state ([f0a9608](f0a9608a6b)) * **practice:** only show landscape keypad on phone-sized screens ([6c09976](6c09976d4b)) * **practice:** prevent keypad from covering nav and content ([839171c](839171c0ff)) * **practice:** prevent stray "0" rendering in problem area ([7a2390b](7a2390bd1b)) * **practice:** remove empty spacer button from keypad layout ([1058f41](1058f411c6)) * **practice:** remove fallback random problem generation ([f95456d](f95456dadc)) * **practice:** size answer boxes for intermediate prefix sums ([5cfbeeb](5cfbeeb8df)) * **practice:** state-aware complexity selection with graceful fallback ([6c88dcf](6c88dcfdc5)) * **practice:** update pun to "We pressed paws!" ([4800a48](4800a48128)) * **practice:** use inline styles for progress bar ([f45428e](f45428ed82)) * **practice:** use raw CSS media query for landscape keypad visibility ([31fbf80](31fbf80b8f)) * **practice:** use React Query cache for /resume page session data ([ae1a0a8](ae1a0a8e2d)) * **StartPracticeModal:** responsive improvements + integrated tutorial CTA ([56742c5](56742c511d)) * sync pause state between modal and ActiveSession ([55e5c12](55e5c121f1)) ### Features * **abacus:** add dockable abacus feature for practice sessions ([5fb4751](5fb4751728)) * **abacus:** add smooth animated transitions for dock/undock ([2c832c7](2c832c7944)) * **bkt:** add adaptive-bkt mode with unified BKT architecture ([7085a4b](7085a4b3df)) * **bkt:** implement adaptive skill targeting with validated convergence ([354ada5](354ada596d)) * **blog:** add Bayesian blame attribution validation and address reviewer feedback ([ceadd9d](ceadd9de67)) * **blog:** add interactive ECharts for BKT validation blog post ([6a4dd69](6a4dd694a2)) * **blog:** add layered skill trajectory visualization ([b227162](b227162da6)) * **blog:** add session 0, line thickness, and category averages to charts ([c40baee](c40baee43f)) * **blog:** show adaptive vs classic comparison on same chart ([b0c0f5c](b0c0f5c2da)) * **blog:** simplify All Skills chart to show average comparison ([6ef329d](6ef329dd60)) * **practice:** add "Press paws!" pun to auto-pause phrases ([8405f64](8405f64486)) * **practice:** add /resume route for "Welcome back" experience ([7b476e8](7b476e80c1)) * **practice:** add 30 and 45 minute session duration options ([e42766c](e42766c893)) * **practice:** add auto-pause and improve docked abacus sizing ([9c1fd85](9c1fd85ed5)) * **practice:** add browse mode navigation and improve SpeedMeter timing display ([3c52e60](3c52e607b3)) * **practice:** add cascading regrouping skills and improve help UX ([7cf689c](7cf689c3d9)) * **practice:** add celebration progression banner with smooth transitions ([bb9506b](bb9506b93e)) * **practice:** add complexity budget system and toggleable session parts ([5d61de4](5d61de4bf6)) * **practice:** add inline practice panel for browse mode debugging ([c0764cc](c0764ccd85)) * **practice:** add pause info with response time statistics to paused modal ([826c849](826c8490ba)) * **practice:** add play emoji to Keep Going button ([80a33bc](80a33bcae2)) * **practice:** add prefix sum disambiguation and debug panel ([46ff5f5](46ff5f528a)) * **practice:** add projecting SessionModeBanner with slot-based animation ([0f84ede](0f84edec0a)) * **practice:** add Remediation CTA for weak skill focus sessions ([7d8bb2f](7d8bb2f525)) * **practice:** add response time tracking and live timing display ([18ce1f4](18ce1f41af)) * **practice:** add SkillUnlockBanner + session summary improvements ([4daf7b7](4daf7b7433)) * **practice:** add student notes with animated modal + BKT improvements ([2702ec5](2702ec585f)) * **practice:** add subtraction support to problem generator ([4f7a9d7](4f7a9d76cd)) * **practice:** add unified SessionMode system for consistent skill targeting ([b345baf](b345baf3c4)) * **practice:** consolidate nav with transport dropdown and mood indicator ([8851be5](8851be5948)) * **practice:** improve docked abacus UX and submit button behavior ([60fc81b](60fc81bc2d)) * **practice:** improve help mode UX with crossfade and dismiss behaviors ([bcb1c7a](bcb1c7a173)) * **practice:** improve modal UI with problem counts and time estimation ([34d0232](34d0232451)) * **practice:** improve session summary UI ([a27fb0c](a27fb0c9a4)) * **practice:** inline emoji with random pause phrases ([c13fedd](c13feddfbb)) * **practice:** integrate timing display into sub-nav with mobile support ([2fca17a](2fca17a58b)) * **practice:** migrate mastery model to isPracticing + computed fluency ([b2e7268](b2e7268e7a)) * **practice:** redesign paused modal with kid-friendly statistics UX ([11ecb38](11ecb385ad)) * **practice:** reduce term count for visualization part ([9159608](9159608dcd)) * **practice:** refactor disambiguation into state machine with comprehensive tests ([ed277ef](ed277ef745)) * **practice:** responsive mobile keypad and unified skill detection ([ee8dccd](ee8dccd83a)) * **practice:** separate phrase sets for manual vs auto pause ([652519f](652519f219)) * **practice:** unify dashboard with session-aware progress display ([c40543a](c40543ac64)) * **practice:** use student's actual mastered skills for problem generation ([245cc26](245cc269fe)) * **session-planner:** integrate SessionMode for single source of truth targeting ([9851c01](9851c01026)) * **skills-modal:** add spring animations and UX improvements ([b94f533](b94f5338e5)) * **skills:** add Skills Dashboard with honest skill assessment framing ([bf4334b](bf4334b281)) * **test:** add journey simulator for BKT A/B testing ([86cd518](86cd518c39)) * **tutorial:** implement subtraction in unified step generator ([e5c697b](e5c697b7a8))