Skip to content

Cleveland Kitchen Demo — Long-Tail Backlog

Owner: David Boone Captured: end of CK demo prep session Status: items below are deferred from the demo prep session; demo went live on staging.ordermatic.co as of GCP deploy 61cd7fe7.

  • Submit-to-ERP end-to-end against WhereFour sandbox. Smoke test verified the button enables and pricing flows correctly, but the final click was never made. No order was actually created in WhereFour. Walk through one Sysco PO and confirm the POST sandbox.wherefour.com/api/v1/customers/{id}/orders succeeds and the order appears in WhereFour sandbox UI.
  • Rename connection 093e4161 from 🚨 SANDBOX (E2E TEST — REVERT BEFORE LAUNCH) to Cleveland Kitchen WhereFour (Demo) — the warning name is bad for demo screenshots.
  • Rebind email alias cleveland-kitchen-wherefour-demo@po-staging.erpunlocked.com from inactive cc3f86f7 to active 093e4161. Currently routed via webhook payload override; real email arrivals still go to the wrong connection.
  • Deactivate or delete the old cc3f86f7 “Cleveland Kitchen WhereFour (Demo)” connection so it’s not a confusing duplicate.
  • DOT Foods to 100% (from 65.7%). The remaining 35% gap is items in DOT Foods’s order history that aren’t in their tier scrape (25 items priced, 580+ ordered). Either (a) ask CK to configure tier prices for those SKUs in WhereFour, or (b) accept the order-history fallback prices.
  • 18 unresolved tier names. Top offenders by line count: SAMS CLUB (1), Sysco TX (2), AWG Hernando (5), SB UNFI Delivered (4), Reily's Irish Bakery (6). Mostly typo/branch-level mismatches. Could add hand-curated aliases or fix WhereFour-side naming.
  • Extend Playwright scrape to capture customer → price_tier_id link from WhereFour’s /customers?page=* HTML table (column Price Tier). Today’s fuzzy resolver is good but not perfect; direct mapping eliminates ambiguity.
  • Wire wherefour_pricing_tiers_to_rules.py into a Dagster asset/job. Right now it’s only callable via the one-shot script scripts/sync_wherefour_tier_rules.py. After next pipeline run the tier rules will get rebuilt; this op needs to be in the pipeline, not orphaned.
  • Backfill erp_customers Postgres table for sandbox connection. Currently 0 rows; 723 customers exist in Typesense + 392 in erp_effective_prices. The customer-multiplier fallback in pricing-calculator.ts can’t run without these.
  • 4 customers with 0% price accuracy + 100% gold-hit rate: 1360628 (CK Sales Dept #400), 984995 (CK Expo Team), 1354117 (CK Marketing Team Dept #300), 1569317 (HEB San Antonio). First three are internal CK accounts with intentionally non-standard pricing; should be flagged or excluded from the eval. 1569317 is a real customer worth investigating.
  • xref_products Gold table is P21-shaped, not WhereFour-shaped. Has inv_mast_uid, their_uom, company_id (P21 columns). 0 rows for CK connection. A WhereFour xref is {erp_customer_id, their_item_text, our_inventory_id, last_seen} mined from extracted_order_items validation history. Build the new shape post-demo.

These are being dispatched via /plan-and-dispatch as a separate work stream. See “Dispatched UI bugs” below.

  • “Multiple versions of pnpm” detect job failure on Webapp/Dagster/Temporal — Build and Deploy workflows. Hit PR #925 and PR #926 alike — pre-existing infra bug. Coolify-based legacy deploys are failing on this; GCP Deploy works.
  • 4 pre-existing test failures in Test Web Service (unit): orders-inbox-redirect.test.ts, CustomersDirectory.test.tsx, RailNav.test.tsx (×6). Not introduced by #926; need separate fix-up.
  • Inbox default tab = user hides org-level emails. Customer-mode emails to org-level alias don’t appear in the default cockpit view; users must switch to ?tab=organization or ?tab=all. Either change the default for orgs with org-level aliases or add a “you have org emails” hint on the user tab.
  • CodeRabbit findings not addressed (pre-existing on staging, not from #926): apps/webapp/src/pages/customers/[combinedId]/index.astro row-array runtime check, packages/pdf-shared/pdf_shared/utils/local_prompts.py empty-chunks rule.
  • Coolify legacy deploys (Hetzner) for staging are failing and irrelevant — staging.ordermatic.co is on GCP Cloud Run. Either retire the Coolify workflows or make them no-op cleanly so they don’t pollute the PR check view.
  • extractedOrderStatus dead column in inbox.astro projection was removed but should be added back if we actually want to surface “extraction failed” / “extraction completed” badges in the inbox cockpit row.

The following are being dispatched via /plan-and-dispatch in a separate Linear ticket batch:

  1. Action items page mismatch with cockpit: 3 items show “Needs fix” in the inbox cockpit but the Action items page is empty.
  2. E archive shortcut requires X first: pressing E alone on a focused inbox item does nothing; only works after pressing X (mark error). Should work standalone.
  3. No archive view: archived items go… somewhere. There’s no UI surface to see archived work_items.
  4. Caret icon in top-left navigation chrome: replace with the Ordermatic brand mark.
  5. Full logo when sidebar is expanded: replace mark-only with full Ordermatic logo on expansion.
  • Demo prep commits squashed into staging at 6b7c9334
  • Promoted to gcp-staging at 61cd7fe7
  • GCP deploy successful at 25839101289 (15 min)
  • Eval baseline → after-fixes: gross price accuracy 87.78% → 91.30%, bucket accuracy unchanged at 99.96%