✓
Completed history · v0.8.7–v0.9.4
Reliable foundations
- Deterministic boards, safe reshuffles, versioned restoration, and Undo protection
- Keyboard, screen-reader, zoom, contrast, forced-colors, and reduced-motion support
- Clear Settings, unified dialogs, improved performance, and calmer first sessions
- Security, privacy, save migration, account recovery, exports, deletion, and database backups
- Accessible language resources and community correction workflow
✓
Completed and superseded · v0.9.5
Sound and presentation
- Independent ambience, effects, celebration, and Silent controls completed
- The original Journey-motion plan was superseded by a complete environmental overhaul
- All 20 Journey locations now contain seven cumulative restoration stages, responsive framing, accessible descriptions, reduced-motion support, and restrained environmental animation
- Any remaining sound or presentation polish now belongs to current RC0 finalization
✓
Completed history · v0.9.6
Content validation
- Normal, daily, seasonal, and weekly board infrastructure received deterministic validation
- Seasonal deals, inventory-safe reshuffles, hemisphere behavior, and returning rewards received regression coverage
- Difficulty and the 60 daily challenges were tested for reproducibility and fairness
- Final seasonal/date review, long-term progression review, and the 1.0 achievement set moved into RC0 finalization
- The optional mastery concept remains post-1.0 rather than a launch requirement
✓
Completed with cancelled store work · v0.9.7
PWA and install readiness
- Manifest, original icons and screenshots, theme colors, offline launch, installation, and update behavior completed
- Privacy, support, account deletion, credits, copyright, asset authorship, retention, and player-facing access were documented
- The public app-store and Android-store plan was intentionally cancelled; the installable web app is the supported path to 1.0
- Remaining PWA presentation and update issues moved into RC0 finalization
✓
Completed · v0.9.8.9 RC0
Final planned work before feature freeze
- Twenty-location Journey environmental restoration overhaul and Journey-wide animation
- Purpose-built mobile gameplay redesign and stabilization, including a dedicated mobile-first pass fixing status-bar text truncation and Seasonal Garden path-node crowding on narrow phones
- Private player notices through the existing Garden Keeper infrastructure
- Targeted pre-Journey code cleanup with clearer rendering ownership
- Security Remediation Batches 1 and 2, Garden Keeper improvements, and a sanitized deterministic production artifact
- The private Player Profile shipped: self-view only, built-in avatars, a denylisted display name, featured pins, and an optional private shared page with real trophy and keepsake artwork -- see
docs/V0.9.8-RC1-PLAN.md - Corrected mobile Settings and More text/control overflow appearing under the wrong tab
Decided: the private Player Profile ships as part of 1.0. Decided: Garden progression, Journey progression, and normal achievement progress all reset at 1.0.
Outstanding sound and presentation polish, remaining content/seasonal/date/daily validation, the final 1.0 achievement set, and pre-1.0 statistics preservation in Garden Keeper were not finished in RC0 and carry forward as RC1 work.
✓
Completed · v0.9.8.9 RC1
Feature Freeze
RC1 added no new player system. Work was limited to serious usability, accessibility, security, data-loss, impossible-board, and account-synchronization problems -- see docs/V0.9.8-RC1-PLAN.md for the full plan and tester matrix.
Completed toward RC1
- Emulated accessibility, performance, PWA offline behavior, and progression/recovery audits, each verified live in a real browser rather than by static assertion alone
- A broad walkthrough of secondary features (achievements, statistics, sound settings, all four Seasonal Garden collections, weekly-event boards, and board layout variety) found no rough edges
- Sound and presentation polish audited against a full checklist -- audio consistency and volume isolation, Reduced Motion and Static Celebrations coverage, presentation consistency, 200%/400% browser zoom, and first-time/returning-player flows -- with no issues found
- Content, seasonal, date, and daily validation audited directly against the calendar and progression code and live browser behavior -- DST, leap years, year boundaries, hemisphere switching, mid-play seasonal transitions, Garden sequential unlocking, and Journey's independence from calendar transitions -- with no issues found
- A full player-experience walkthrough on desktop and mobile, from first launch through tutorial, completion, rewards, Journey, and a multi-day return, found nothing that would prevent calling this 1.0-ready pending real-device testing
- The final 1.0 achievement set was balanced by static analysis of definitions and existing lifetime statistics, correcting one tier mismatch; pre-1.0 statistics preservation in Garden Keeper was built, deliberately left untriggered until the 1.0 transition itself; and the support-ticket technical diagnostic now attaches automatically instead of requiring two easy-to-miss manual clicks
Decided: RC1 and RC2 did not commission a new round of external testing. Real external testers already tested Gentle Mahjong on real hardware and gave feedback that shaped the game; that feedback has since gone quiet -- they have kept playing but stopped submitting new reports, most likely because they had already said what they had to say. Automated and emulated coverage (live-browser Playwright audits across accessibility, performance, offline behavior, and progression) filled the gap left by that quiet feedback channel for RC1 and RC2 specifically, rather than standing in for testing that never happened. The 1.0 release gate below has been updated to match.
1.0
Release gate · Version 1.0
Requirements for 1.0
Gentle Mahjong will not be labeled 1.0 until:
- There is no known progress-loss, impossible-board, or tile-inventory bug
- Every supported older save migrates safely and updates preserve active games and player data
- Mobile portrait and landscape are reliably playable
- JAWS, NVDA, VoiceOver, and keyboard flows are usable
- Account and seasonal progress synchronize reliably
- Audio works or fails gracefully
- All public and administrative APIs have passed security review, and Privacy claims match the code
- Seasonal schedules and returning rewards work across year boundaries
- Critical automated suites pass for every release candidate
Decided: 1.0 will ship without a new round of external test sessions -- see RC1's closing note above. Real external testers already tested the game and gave feedback earlier in development; this gate is satisfied by that history plus automated and emulated verification (live-browser audits, accessibility checks, and the full regression suite) standing in for a fresh real-device/real-tester pass, not by testing having been skipped altogether.
Reliability before breadth.