What's Changed
- docs: audit and sync documentation with current codebase by @ryokun6 in #1541
- fix: use versioned GitHub release tags for desktop download URLs by @ryokun6 in #1542
- Narrow shader "off" tier to really-bad devices by @ryokun6 in #1544
- Legacy cleanup: iPod romanization, memory keys, sync v1 slim-down, docs, isMacOSTheme props by @ryokun6 in #1538
- Add Privacy Policy (GDPR) and Terms of Service pages by @ryokun6 in #1546
- docs: re-sort changelog major/minor entries and normalize formatting by @ryokun6 in #1547
- feat(auth): self-service account recovery and deletion by @ryokun6 in #1545
- Make IE loading bar dark-mode aware by @ryokun6 in #1548
- Crossfade desktop wallpaper changes instead of blank-then-load by @ryokun6 in #1549
- Change 'View Changelog' label to 'Changelog' in all locales by @ryokun6 in #1550
- feat(ipod): add Aqua Glass UI variant tinted by cover-art accent by @ryokun6 in #1552
- Match Aqua slider track styling to switches with orientation-aware highlight by @ryokun6 in #1551
- fix(ipod): keep status bar untinted in Aqua Glass skin by @ryokun6 in #1553
- fix(control-panels): fix build by removing unused props by @ryokun6 in #1554
- Make macOS control panel auto-height reliable (Safari) + min-height + avatar nudge by @ryokun6 in #1555
- Shorten Control Panels security action button labels by @ryokun6 in #1556
- Blur-up progressive loading for wallpapers by @ryokun6 in #1557
- Show rounded corner mask during boot screen by @ryokun6 in #1561
- Control Panels: use the macOS System Preferences layout for all themes by @ryokun6 in #1560
- Dark mode for docs pages and Internet Explorer chrome by @ryokun6 in #1562
- Codebase audit roadmap + "do first" API hardening by @ryokun6 in #1558
- feat(admin): admin action audit log by @ryokun6 in #1559
- Fix dark mode link color for file-path links in docs by @ryokun6 in #1564
- docs: update June 2026 changelog and remove PR numbers by @ryokun6 in #1567
- fix(ie): track history on proxied link navigation by @ryokun6 in #1568
- feat(api): Zod request-body validation layer at the apiHandler boundary by @ryokun6 in #1565
- refactor(stores): production-silent debug logger by @ryokun6 in #1566
- refactor(ipod): decompose useIpodLogic into focused sub-hooks by @ryokun6 in #1569
- chore: finish next-improvements cleanup slice by @ryokun6 in #1570
- Add Books (EPUB Reader) app by @ryokun6 in #1571
- Add OG previews for newer apps by @ryokun6 in #1574
- Add Meditations as default Books EPUB by @ryokun6 in #1573
- Reduce Books reader side gutter by @ryokun6 in #1576
- Show EPUB files as Books in Finder by @ryokun6 in #1577
- Add Books Go navigation menu by @ryokun6 in #1578
- Fix mobile desktop context menu taps by @ryokun6 in #1579
- Fix cloud sync of book file blobs by @ryokun6 in #1580
- Fix Books shelf load performance by @ryokun6 in #1582
- Update design skill theming guidance by @ryokun6 in #1584
- Show cloud sync upload progress in menubar by @ryokun6 in #1581
- Adopt shared Help/About dialog state by @ryokun6 in #1572
- Auto-hide Books titlebar while reading by @ryokun6 in #1586
- Allow multi-day all-day calendar events by @ryokun6 in #1587
- Stabilize Books startup cover loading by @ryokun6 in #1588
- International preferences: timezone + Earth map (Language / Date & Time tabs) by @ryokun6 in #1589
- Theme timezone map marker with OS accent color by @ryokun6 in #1590
- Localize timezone and weather city displays by @ryokun6 in #1591
- Update existing skills and add four new ones by @ryokun6 in #1592
- docs: comprehensive scan and update (Books app, API endpoints, changelog) by @ryokun6 in #1594
- Make appearance preview tabs match the real settings tab group by @ryokun6 in #1593
- Remove legacy non-sync migrations by @ryokun6 in #1595
- perf: cut redundant re-renders in Synth, Minesweeper, and Stickies by @ryokun6 in #1596
- perf(textedit): debounce per-keystroke localStorage persistence by @ryokun6 in #1597
- perf: isolate TV/Videos playback clock from the app tree by @ryokun6 in #1599
- Add Calculator app with scientific and conversion modes by @ryokun6 in #1598
- Calculator conversion: themed selects and category toggles by @ryokun6 in #1600
- Localize Calculator app for all supported languages by @ryokun6 in #1601
- fix(calculator): make equals the tall key in Aqua compact layout by @ryokun6 in #1602
- feat(calculator): classic Windows 98 six-column keypad layout by @ryokun6 in #1603
- Make Finder disk space and About memory reflect real browser metrics by @ryokun6 in #1605
- perf: pause always-on rAF/WebGL loops while the tab is hidden by @ryokun6 in #1604
- Fix cloud sync failures and UI stalls by @ryokun6 in #1607
- Fix clipped Calculator height on phone by @ryokun6 in #1609
- fix(combobox): keep dropdown on-screen by flipping/shifting into viewport by @ryokun6 in #1608
- fix(calendar): restore calendarControl tool access (Telegram heartbeat + chat) by @ryokun6 in #1610
- Investigate startup cloud sync freeze by @ryokun6 in #1611
- Fix cloud sync startup and Finder restore slowness by @ryokun6 in #1612
- Add togglable debug console overlay with copy button by @ryokun6 in #1613
- Fix iPod Apple Music startup hydration by @ryokun6 in #1614
- Remove Books debug overlay by @ryokun6 in #1615
- Summarize IndexedDB result logs by @ryokun6 in #1616
- Fix timeout retries in abortable fetch by @ryokun6 in #1617
- Clean up client debug logging by @ryokun6 in #1618
- Fix boot screen dialog description warning by @ryokun6 in #1619
- Add customizable Telegram heartbeat instructions by @ryokun6 in #1620
- Clean up test registration and slow API suites by @ryokun6 in #1622
- Docs and localization maintenance pass by @cursor[bot] in #1623
- Virtualize debug console logs by @ryokun6 in #1624
- Unify help localization workflow docs by @cursor[bot] in #1625
- Audit stale docs and dead code by @ryokun6 in #1626
- Improve client error logging detail by @ryokun6 in #1629
- fix(chats): remove duplicate ChatsStore prefix in debug logs by @ryokun6 in #1631
- Fix manual restore Sync v2 promotion by @ryokun6 in #1627
- Fix boot screen timer lifecycle by @cursor[bot] in #1628
- Improve lyrics and Apple Music error handling by @ryokun6 in #1630
- Gate debug console capture and remove dead Control Panels tabs by @cursor[bot] in #1633
- Improve Internet Explorer localization tooling by @cursor[bot] in #1635
- Complete Internet Explorer localization guardrails by @cursor[bot] in #1636
- Standardize translations with Apple UI terminology by @ryokun6 in #1634
- Fix Finder stale selection update loop by @ryokun6 in #1637
- fix(i18n): German Apple glossary remediation (de) by @ryokun6 in #1638
- fix(i18n): Italian Apple glossary remediation (172 fixes) by @ryokun6 in #1639
- fix(i18n): Spanish Apple glossary remediation by @ryokun6 in #1641
- fix(i18n): Brazilian Portuguese Apple glossary remediation by @ryokun6 in #1642
- fix(i18n): Japanese Apple glossary remediation by @ryokun6 in #1644
- fix(i18n): French Apple glossary audit remediation by @ryokun6 in #1645
- Remediate Korean Apple glossary terminology (ko) by @ryokun6 in #1646
- fix(i18n): Russian Apple glossary remediation by @ryokun6 in #1643
- fix(i18n): Traditional Chinese (Taiwan) Apple glossary remediation by @ryokun6 in #1647
- fix(i18n): Apple English source/style remediation (Tier 1) by @ryokun6 in #1640
- Make currency the default calculator conversion by @ryokun6 in #1649
- Add global help i18n alignment guard by @cursor[bot] in #1648
- Make abortable fetch retry policy explicit by @cursor[bot] in #1650
- Fix MusicKit redundant play() errors and lyrics 404 log noise by @ryokun6 in #1651
- Avoid Cloud Sync full scan on warm startup by @ryokun6 in #1655
- Localize Finder Go menu folders by @ryokun6 in #1654
- Fix memory extraction on clear and heartbeat by @ryokun6 in #1657
- Fix Traditional Chinese translation regressions by @ryokun6 in #1658
New Contributors
Full Changelog: v1.0.8...v1.0.9