You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Last updated: 2026-03-21 by GitHub Copilot (epic #920 closeout)
Purpose: Volatile project status for AI agent context recovery. Read this FIRST at session start.
12/12 issues implemented, merged, and closed. Epic #920 closed.
PR
Issue
Summary
#933
#921
scan_country column on scan_history
#934
#922
scan_country + suggested_country on product_submissions
#935
#923
Pass user region through api_record_scan / api_submit_product
#936
#924
Frontend scan/submit country propagation
#937
#925
Admin submission review UI country context
#938
#926
Region-preferred product matching in api_record_scan
#939
#927
Cross-country product badge in scan result card
#940
#928
GS1 prefix → country hint utility function
#942
#929
Country mismatch detection badges in admin review
#943
#930
Country-scoped pending submission uniqueness
#944
#931
Country-aware submission quality scoring
#945
#932
Cross-country analytics views (3 views)
10 new migrations (20260320000100–20260321000700), 3 new views, 1 new function (gs1_country_hint), 4 modified RPC functions, 3 new QA checks (view consistency 13→16).
Deploy migrations 20260319000400 + 20260319000500 to production (deployed 2026-03-16T08:24:26Z)
Verify scanner event constraint fix in production (PR #913 — all 3 layers confirmed)
Verify nutri_score_source backfill in production (#893 — 2,197 off_computed + 238 unknown + 3 manual)
Fix PR #904 — Next.js 16 MAJOR upgrade (6 compat fixes, merged as beb31a4b)
Review #889 observation data after 2026-03-30 checkpoint (see issue comment)
Non-Urgent Follow-Ups (from Next.js 16 upgrade)
These are documented follow-ups, not active work items. Address opportunistically or when opening next sprint.
React Compiler lint warnings cleanup — 20 locations across 5 rules (set-state-in-effect ×17, preserve-manual-memoization ×1, purity ×1, refs ×1, static-components ×1). Currently downgraded to "warn" in eslint.config.mjs. Dedicated cleanup pass when convenient — no urgency.
Remove @eslint/eslintrc and @eslint/js from devDependencies — These packages were used by the FlatCompat bridge which was removed in the Next 16 upgrade. They may now be unused. Verify with npx depcheck before removing.
middleware.ts → proxy.ts migration — Next.js 16 deprecated the middleware.ts convention in favor of proxy.ts. Currently backward-compatible (warning only). Address when Next.js drops support or in next major framework review.
CLI note: When running supabase db push against staging, set $env:SUPABASE_DB_PASSWORD to the staging password first — the --password flag does NOT override the env var.
Key Metrics Snapshot
Products (local DB): 2,602 active (1,380 PL + 1,222 DE across 21 active + 1 deactivated category)
Deprecated products: 58
QA checks: 759 total (48 suites) — view_consistency +3 checks for cross-country analytics views
Negative tests: 23/23 caught
EAN coverage: 2,261/2,264 with EAN (99.9%) — local DB
Ingredient refs: 3,100 (local, after orphan cleanup from 6,279)
Product-ingredient links: 14,166 (restored from 0)
Allergen contains: 1,395 (restored from 0)
Allergen traces: 1,465 (restored from 0)
Local ingredient coverage: PL 58.4%, DE 16.3% (OFF API data gaps)
Local allergen coverage: PL 44.5%, DE 13.3% (OFF API data gaps)
* Pudliszki Ketchup: score shifted from 18→33 after enrichment (new ingredients/allergens added from OFF API). Needs anchor update in copilot-instructions.md §8.19.
Known QA Failures (Pre-existing, Non-blocking)
Suite
Failures
Cause
Suite 7 (DataQuality)
6
Ingredient coverage PL 58.4%/DE 16.3%, allergen coverage PL 44.5%/DE 13.3%, completeness PL 94%/DE 88.7% (all below threshold — OFF API data gaps)
Suite 10 (Naming)
2
Trailing punctuation (24 products), HTML entities (4 products)
nutri_score_source (fixed by PR #912), types (2), brands (886)
Root cause: Suite 7 failures are OFF API data coverage gaps (enrichment data only available for ~58% PL, ~16% DE products).
Suites 10, 11, 12 are pre-existing source data quality issues unrelated to enrichment.