What's new
Every change that shipped, newest first.
10-09-2026
- Newwire courses to the poll - parsed since #45036, never fetched
- Newjob_heartbeats + mail-in-poll watchdog check (rule 12b)
- Newcount the different-browser sign-in confirm, in the daily digest
- Newcapture_links so an emailed sign-in link reopens the installed PWA
- Change#20134: mail-in's pool was missing the two options that make it survive a pooler
09-09-2026
- Fixrotate-master-key missed users.dataKeyCiphertext - broke /inbox in prod
- NewWhatsApp translation - the mail-in consumer (edooview side)
- Change#20060 rule 29: how this project switches from Bunny to Scaleway Edge
07-09-2026
- NewWhatsApp chat translation - parser + translator (no infra yet)
- Fixthe first fix was wrong - ubuntu-latest already ships awscli
- Fixbackup-export workflow can't install awscli on ubuntu-24.04
- Docssession log for #45185/#45186/#45187
- Newtomorrow's Brno weather pill on the calendar page
- Newcalendar feed - evening-before reminder for tomorrow's homework
- Fixretry the opening query of poll-due and reminders
06-09-2026
- Docssession log for the #45183/#45184 alarm-mail investigation
- Fixthe edookit adapter never converted a read-method auth error, so self-healing never engaged
- Fixstop double-reporting a poll failure already recorded
05-09-2026
- Fixcorrect company name casing in homepage footer (#20021)
03-09-2026
- Docspoller staleness incident root-caused + fixed (lease #45181)
- Fixpoll mutex is a lease, not a 4-hour zombie
- Newdark mode — the rest of the public/logged-out pages
- Newdark mode — theme-token foundation + landing + 404 (Stage 1)
- Fixretry DB writes dropped across the Claude-categorize gap
02-09-2026
- Buildpin actions/upload-artifact by SHA (B12)
- Fixunblock lighthouse + e2e CI (devDeps + e2e schema setup)
- Buildskip sibling CI workflows on docs-only pushes too
- Buildskip the container deploy on docs-only pushes
- Fixmark the deploy scripts executable — staging step hit exit 126
- Fixdrop npm from the runtime image — clears the Trivy CRITICAL gate
- Newa public, honest status page
- Newa real 404 — bilingual, honest, a way back
- Newprint or save one message as a clean PDF
- Newthe inbox pages, and answers to keyboard shortcuts
- Newthe service worker caches the hashed shell, never a page
- Newthe accessibility floor — skip link, focus ring, reduced motion
- Docsmarket roadmap for the 8 items needing accounts/decisions/refactors
- Newprivacy-first analytics — a counter, not tracking
- NewSEO — robots, sitemap, real title + Open Graph
- Choreeval + reminders scripts in scraper package.json (#45152 #45130)
- Newcategorize — caching, model-by-length, retry, action+checklist, eval
- Newparent glossary fed to the AI; translation feedback that re-translates
- NewAI disclosure on the landing; Czech school terms explained inline
- Docswave 7 done (70/100); courses-empty finding #45149
- Newinbox child filter, calendar print, teacher directory, mark-all-read
- NewCZ QR platba per school payment + payments CSV export
- Newper-child mute, quiet hours, weekly/reminder toggles, notification history page
- Newricher daily digest, weekly digest, timetable change detection
- Newhomework, exam and grade reminders
- Newnotifications table (history + dedup), the notify-user gate, quiet-hours logic
- Chorelockfile for @playwright/test (#45120)
- Newfeat(#45119) docs(#45125 #45126): per-PR preview container; scraper-isolation + Jobs plan
- BuildPlaywright E2E + visual regression, Lighthouse budgets
- New/changelog from git history, version footer, feed section behind a flag
- Newadaptive poll cadence, feature flags, version label
- Newfeat(#45114 #45116) docs(#45111): fake-family seed, retention purge, PITR evaluation
- Newdownload my data, delete my account - GDPR self-service on Profile
- Newthe app meters its own TEM mails and Claude usage; the daily digest shows them
- Buildmigrations table + runner, staging-first deploy, monthly restore drill, log export
- Newdeep health, rollback drilled, catch-up poll on start