February 2026
← Back to Index
February 27, 2026
✨ Features
- api: schedule audit and fix duplicate helper function
- api: add pp:audit-user-completion-days command
- api: add pp:backfill-user-completion-days command
- api: add personal daily completion streak
- home: add personal completion streak badge
🐛 Bug Fixes
- api: use insertOrIgnore for race-safe writes in audit/backfill commands
- home: harden streak header layout on narrow widths
📚 Documentation
- api: move websocket root docs to docs archive
- mobile: remove archived websocket root docs
February 24, 2026
✨ Features
- games: harden scoring explainer contract for web telemetry
- games: add web scoring explainer entry-point routing support
- games: add scoring explainer API contract and caching
- dot: add non-persisted ping/nag commands
- feed: handle dot nag modal and command ack flow
🐛 Bug Fixes
- games: enforce strict scoring explainer validation gate
- games: add scoring explainer fixtures and parity tests
- games: address PR feedback on cleanup migration idempotency
- games: clean active placeholder games and normalize scoring config
- faq: add iOS share extension setup guide
- mobile: address PR540 scoring explainer review feedback
- mobile: add scoring explainer deep links, cache, and analytics
- mobile: address scoring explainer review comments
- mobile: add scoring explainer entry points and screen
- onboarding: address PR review feedback
- onboarding: add iOS share extension walkthrough card
- ios: use staging-specific custom URL scheme for share deep links
February 23, 2026
🐛 Bug Fixes
- api: harden quordle share-parsed validation and scoring
- web: group game family variants on /games
- feed: expose can_react contract and test system message reactions
- parser: normalize nested emoji_grid in ParsedPuzzleResult getter
- parsing: derive quordle emoji_grid from board tokens
- launch: implement app store readiness issues #516 #517 #518
- feed: preserve puzzle streak when reactions update
- feed: consume can_react to gate reaction interactions