Notion test-run #3 doc item #6 — "To add more filtering controls for Session History". Preset chips + Custom date range + Shop multi-select + Reset. Matches Odoo 17's POS Sessions filter pattern. Default preset "All" preserves prior no-date-filter UX.
| ✓ | Prod SQL pre-count: 134 sessions in lumiere's active shops (lumiere has 5 shops, 4 inactive; listAccessibleShops filters by is_active so baseline = active-shop count, not full tenant) |
| ✓ | SSO login on lumiere |
| ✓ | /cafe/pos/sessions renders + FilterBar visible + "All" chip aria-pressed=true by default |
| ✓ | Baseline "All" UI count = 134 matches active-shop SQL count |
| ✓ | Click "Today" → URL gains ?preset=today; count narrows below baseline; chip aria-pressed=true |
| ✓ | Click "This Year" → URL gains ?preset=this_year; count narrows below baseline |
| ✓ | Click "All" → URL strips ?preset param; count returns to baseline (134) |
| ✓ | Click "Custom" → from + to date inputs render |
| ✓ | Navigate to ?preset=custom&from=1971-01-01&to=1971-12-31 → 0 sessions shown; inputs reflect URL params |
| ✓ | Reset filters → URL is bare /cafe/pos/sessions; count = baseline |
| ✓ | Register dropdown still works + preserves preset=this_year across change (filter composition works) |
| ✓ | No 5xx during the suite |
| test-phase1-prod.mjs | 11/11 |
| test-phase2-sso-outdoor-prod.mjs | 6/6 |
| test-m1-prod.mjs | 10/10 |
| test-r7-prod.mjs | 14/14 |
| test-r8-prod.mjs | 4/4 |
| test-phase2-cafe-multishop-prod.mjs (solo) | 6/6 |
mkdir -p INSIDE the until loop's body. Bash opens the stdout redirect BEFORE the until loop evaluates, so the parent dir didn't exist at file-open time. Fix: pre-mkdir outside the redirect, OR use cd+relative-path. Re-applies [[feedback_mkdir_before_bash_redirect]].listAccessibleShops filters by is_active=true, so the UI shows only active-shop sessions. Fix: compare against active-shop count from SQL. Not a code bug.fill("from") then fill("to") back-to-back races the RSC re-render; the second fill captures stale periodFrom prop. Swapped to page.goto with both params in the URL — same code path, no race.