Cookie Project: QA Resolution Commits
The iterative QA cycle in action. 64 issues logged, 52 fix/feature commits resolving them across 3 days of testing on a real iPad 3 running iOS 9.
QA Commits (Chronological)
| Date | Commit | Description |
|---|---|---|
| 2026-01-08 06:47 | 2861da2 | fix: Resolve Play Mode back button navigation issue (QA-004) |
| 2026-01-08 06:59 | df9419a | feat: Add View All Recipes page (QA-005) |
| 2026-01-08 07:26 | 9ea2625 | fix: Resolve iOS 9 layout/spacing issues on recipe detail (QA-006) |
| 2026-01-08 07:49 | 2ede2a8 | fix: Resolve Safari button flexbox centering issue (QA-007) |
| 2026-01-08 11:14 | 6dc3bfa | feat: Add progressive image caching for search results (QA-009) |
| 2026-01-08 11:49 | 75b45cd | fix: Add missing dark mode input background color (QA-008) |
| 2026-01-08 12:03 | 6703019 | fix: Resolve Play Mode timer spacing on iOS 9 (QA-010) |
| 2026-01-08 12:09 | c70e118 | fix: Auto-start timers when added in Play Mode (QA-011) |
| 2026-01-08 12:37 | e96b614 | feat: Add timer completion audio alerts (QA-012, QA-013) |
| 2026-01-08 13:16 | 1dc1dd5 | fix: Improve Legacy timer sound with Web Audio API rewrite (QA-013) |
| 2026-01-08 13:25 | 026e394 | feat: Add View All link to Favorites section (QA-015) |
| 2026-01-08 13:30 | febce4c | fix: Preserve search context when navigating back after import (QA-016) |
| 2026-01-08 15:21 | 052a469 | fix: Resolve test failures and add Docker testing rule (QA-017) |
| 2026-01-08 15:41 | c864122 | feat: Add screen wake lock for Legacy Play Mode (QA-014) |
| 2026-01-08 15:51 | d4ae1cd | feat: Add screen wake lock for Modern Play Mode (QA-019) |
| 2026-01-08 15:59 | ff4535f | fix: Make profile avatar clickable to navigate to profile chooser (QA-020) |
| 2026-01-08 19:03 | 3ff9ec2 | fix: Resolve Recipe Remix data format and image issues (QA-021, QA-022, QA-024, QA-025) |
| 2026-01-08 19:30 | deb0717 | feat: Add nutrition estimation for remixed recipes (QA-026) |
| 2026-01-08 20:50 | 77d06cb | fix: Validate AI model selection and fetch models from OpenRouter (QA-027) |
| 2026-01-08 20:58 | 1dae280 | fix: Redirect legacy browsers to /legacy/ frontend (QA-028) |
| 2026-01-08 22:34 | 37c888b | fix: Add missing nutrition_estimate to PROMPT_TYPES choices (QA-034) |
| 2026-01-08 22:37 | bceb37a | fix: Clarify nutrition label to show values are per serving (QA-030) |
| 2026-01-08 23:39 | 6d73fbc | feat: Implement Scaling Service v2 with instructions and time adjustments (QA-031 + QA-032) |
| 2026-01-09 07:11 | c7e9166 | fix: Configure SQLite for concurrent access with WAL mode (QA-035) |
| 2026-01-09 07:16 | 6299355 | feat: Add ingredient quantity tidying for scaled recipes (QA-029) |
| 2026-01-09 09:50 | b2c814b | feat: Implement tips lazy loading for legacy frontend (QA-036) |
| 2026-01-09 11:07 | d578002 | feat: Prioritize images in search ranking for better visual appeal (QA-043) |
| 2026-01-09 11:32 | 2238b85 | fix: Auto-generate AI tips for remix recipes (QA-044) |
| 2026-01-09 11:40 | 0dbc9de | fix: Auto-navigate to home after profile creation (QA-037) |
| 2026-01-09 11:45 | b1733c2 | fix: Add spacing between source filter chips on legacy search (QA-042) |
| 2026-01-09 12:12 | 50b534c | fix: Handle indivisible items in recipe scaling (QA-039) |
| 2026-01-09 12:57 | 9bf139e | fix: Auto-generate tips when viewing Tips tab (QA-046) |
| 2026-01-09 13:12 | 8f65350 | fix: Only show "(was X min)" label when time actually changed (QA-045) |
| 2026-01-09 14:28 | ad99d2a | feat: Link recipes to profiles for per-user isolation (QA-047, QA-049) |
| 2026-01-09 14:28 | c3a425a | fix: Hide AI features when no API key configured (QA-050) |
| 2026-01-09 14:54 | 35ad680 | fix: Extract and display rating count in search results (QA-048) |
| 2026-01-09 14:54 | df98906 | fix: Display rating count in Legacy search results JS (QA-051) |
| 2026-01-09 14:54 | 3a24926 | fix: Add image-first sorting fallback for search results (QA-052) |
| 2026-01-09 15:01 | 89f2971 | fix: Filter out search results without titles (QA-053) |
| 2026-01-09 15:06 | f8b63b2 | fix: Filter article URLs from search results (QA-053) |
| 2026-01-09 15:12 | 22c879a | fix: Convert WebP images to JPEG for iOS 9 compatibility (QA-054) |
| 2026-01-09 15:16 | 1ffc5e0 | fix: Filter video/gallery URLs from search results (QA-053) |
| 2026-01-09 15:18 | 047df99 | fix: Filter index/listing pages from search results (QA-053) |
| 2026-01-09 18:21 | 55803ce | fix(tests): Correct test expectations for QA-055 and QA-056 |
| 2026-01-09 19:16 | 28c999a | fix(ai): Strengthen search ranking prompt for image priority (QA-057) |
| 2026-01-10 13:44 | f10ddfa | fix(tests): Remove redundant db fixture params from async tests (QA-061) |
| 2026-01-10 15:12 | 198f593 | feat(pages): Add GitHub Pages root landing page (QA-060) |
| 2026-01-10 16:01 | 328532e | feat(ci): Add legacy JS linting and duplication analysis (QA-061) |
| 2026-01-10 16:10 | 9f007d2 | feat(ci): Add Python backend linting with ruff (QA-061 Phase 3) |
| 2026-01-10 16:18 | 895c7d5 | feat(ci): Add Python backend duplication detection (QA-061 Phase 4) |
| 2026-01-10 16:26 | 9e6cca0 | feat(ci): Dashboard polish and report linking (QA-061 Phase 5) |
| 2026-01-11 00:01 | 53419b9 | fix(cd): QA-064 - Use native ARM64 runners instead of QEMU emulation |
Summary
| Metric | Value |
|---|---|
| QA issues logged | 64 |
| Fix/feature commits | 52 |
| Testing days | 3 (Jan 8-10) |
| Test device | iPad 3 (iOS 9.3.5) |
Most issues were iOS 9 Safari quirks - flexbox bugs, WebP incompatibility, missing -webkit prefixes - that only appeared on the real device.