BoltToCart · roadmap
Product roadmap
Every REQ-ID in the BoltToCart spec, grouped by area, classified by whether it has code behind it yet. Generated at build time from REQUIREMENTS.md and a full scan of apps/ and packages/.
Total requirements
1824
Shipped
175996%
In progress
50%
Not started
604%
apps/ or packages/, or explicitly verified by the roadmap audit ledger for shipped audit-only requirementsThis is a heuristic, not a proof of completeness. A REQ-ID can be cited by a TODO comment and still be unfinished; conversely, a REQ can be implemented without a citation. Project convention (see AGENTS.md) is that every change references the REQ-ID it serves, so citation density tracks implementation fairly well in practice.
Recently shipped
Latest production-cited REQ-IDs, newest commit first.
Checkout confirmation must verify hosted-payment return state against a server-owned attempt record before showing payment_authorized, order_created, or fulfillment_queued. The verification must match tenant, attempt ID, cart hash, provide…
fix(payments): use current Stripe embedded checkout mode (#528)
Checkout confirmation must reconcile the server attempt ledger with the payment webhook lifecycle before exposing order or fulfillment progress. A hosted-payment return may show payment_authorized only after the ledger and provider session…
fix(payments): use current Stripe embedded checkout mode (#528)
Storefront checkout payment collection must use an in-app Stripe surface such as Embedded Checkout or Stripe Elements mounted on a BoltToCart route. The server may create or retrieve Stripe Checkout Sessions, PaymentIntents, SetupIntents,…
fix(payments): use current Stripe embedded checkout mode (#528)
Store-owner platform purchases for custom domains, hosted email, and store phone numbers must collect payment inside the BoltToCart admin dashboard with embedded Stripe fields. Admin server actions must create embedded Checkout/Billing ses…
fix(payments): use current Stripe embedded checkout mode (#528)
CI and local smoke verification must fail when production storefront or admin payment code redirects to Stripe hosted Checkout, returns a Stripe Checkout URL to the browser, or introduces Payment Links for checkout. The guard must allow St…
fix(payments): use current Stripe embedded checkout mode (#528)
Platform Operator (BoltToCart staff) ??? onboards stores, handles support, manages platform-wide configuration.
feat(product-library): add persisted intake workflow (#527)
Platform-operator dashboard (all tenants, operator-only auth): MRR/ARR, net revenue retention, active stores, churn risk cohort, top cost-contributor tenants, platform error rate, drop queue depth, SLO burn-rates.
feat(product-library): add persisted intake workflow (#527)
The admin shell must expose a complete, feature-flag-aware information architecture for every implemented MVP operating surface. Primary or secondary navigation and the global admin search/command affordance must cover at minimum dashboard…
feat(product-library): add persisted intake workflow (#527)
In flight
Actively receiving commits but not yet cited in production code.
- In progressREQ-CAT-022
The MVP catalog media pipeline must let admins attach, order, replace, and remove per-SKU images with roles for hero, swatch, bolt-end/detail, and lifestyle. Each image must store alt text, source, dimensions, content hash, and derivative…
- In progressREQ-ADM-693
/admin must expose a catalog workbench for self-service SKU publishing and editing. The workbench must include searchable/paginated SKU lists, draft/published state, required-field completeness, image/alt-text status, duplicate slug valida…
- In progressREQ-FUL-971
/admin/fulfillment must be line-aware for web orders. The queue must show each order's cut lines, requested yardage, selected or suggested bolt(s), shortage/substitution status, partial fulfillment state, packing/shipping requirements, cus…
- In progressREQ-ANL-501
Production checkout and fulfillment must emit product and business telemetry through the approved wrappers for checkout started, checkout quote generated, checkout blocked, payment succeeded/failed, order created, inventory hold created/ex…
- In progressREQ-INV-052
Receiving, full-inventory scan, and purchase-order workflows must offer shared product-library lookup before manual SKU creation. If a scanned or entered UPC matches a library record, the workflow must prefill product metadata and continue…
Up next
Open architectural decisions
§32.2 — each gates work on the REQ-IDs it references. Needs an RFC before the downstream code can move.
- DEC-003Realtime provider
Options: Ably, Pusher, Upstash + Server-Sent Events on Vercel, Soketi (self-host)
- DEC-005Search engine
Options: Typesense, Meilisearch, Algolia, Postgres FTS + pgvector only
- DEC-010CMS approach
Options: External headless CMS (Sanity/Payload/Contentful) vs. in-app page builder backed by Postgres
- DEC-011i18n / multi-currency timing
Options: v1, v1.5, v2
- DEC-012CAPTCHA provider
Options: Cloudflare Turnstile (recommended), hCaptcha, reCAPTCHA v3
- DEC-019Analytics warehouse
Options: ClickHouse Cloud or BigQuery; Snowflake as enterprise alternative
Follow-up actions
§32.3 — concrete pieces of work unlocked by the resolved decisions above.
Swap the repo scaffold from Vite + React to Next.js (App Router)
The current package.json and README.md describe a Vite app; DEC-002 commits the project to Next.js. This should be done before any non-trivial feature work starts to avoid wasted code.
Set up the monorepo
: pnpm + Turborepo with apps/web (Next.js), apps/pos (Expo), packages/core (shared domain logic per REQ-POS-026), packages/db (Drizzle schema + migrations), packages/ui (Tailwind + Radix + shadcn primitives).
Wire the Clerk ??? Neon RLS pattern
(REQ-ARC-012.1) as the first piece of infrastructure ??? every schema decision downstream depends on tenant isolation being in place.
Stand up Stripe Connect onboarding
for influencer payouts early, since KYC lead times are long.
Wire Runpod serverless endpoints
behind the background-jobs tier (REQ-ARC-017) for content pre-processing, enforcing the "never on the user-blocking path" scope boundary in REQ-ARC-028.1.
Implement the proprietary POS sync foundation (DEC-004) next
??? it is the single highest-risk engineering area and directly shapes the POS and API data model.
Long-horizon themes
§31 — prose directions the product is aimed at but which haven't yet been broken down into individual REQ-IDs.
- AI fabric recommendations (personalization based on purchase/project history).
- Demand forecasting and automated reordering into the PO workflow.
- Marketplace (cross-store shopping, platform-wide influencer campaigns).
- Advanced quilt builders (user-authored patterns, community sharing).
- International expansion (multi-currency, VAT/GST, multi-language storefronts).
By area
0 requirements
REQ-VISCore Vision3 shipped0 wip0 todo100%
- ShippedREQ-VIS-001
BoltToCart is a purpose-built SaaS platform for fabric retailers that unifies yard-based inventory, cut-counter POS, e-commerce, limited drops, events & ticketing, influencer commerce, quilt design, and guided project shopping into one rea…
6h agopackages/core/src/domainFoundationReadiness/index.test.ts×6packages/core/src/platformOperationsReadiness/index.test.ts×5packages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-VIS-002
The platform must let stores "sell fabric the way customers actually buy it ??? by project, pattern, class, and creator ??? not just by the yard."
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-VIS-003
Every channel (POS, online, drops, events) reads from and writes to a single inventory source of truth.
6h agopackages/core/src/domainFoundationReadiness/index.test.tspackages/core/src/platformOperationsReadiness/index.ts
REQ-PERPersonas8 shipped0 wip0 todo100%
- ShippedREQ-PER-001
Store Owner ??? configures the store, plans drops and classes, reviews analytics, manages billing.
6h agopackages/core/src/retailRuntimeReadiness/index.test.ts×6packages/core/src/domainFoundationReadiness/index.test.ts×2packages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-PER-002
Manager ??? supervises staff, approves adjustments, runs cycle counts, manages purchase orders.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-PER-003
Cashier / Cutter ??? cuts fabric, rings up sales at the POS, prints receipts.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - packages/core/src/domainFoundationReadiness/index.test.ts×2packages/core/src/retailRuntimeReadiness/index.ts
- packages/core/src/retailRuntimeReadiness/index.ts
- ShippedREQ-PER-006
Customer ??? browses, shops, registers for events, follows drops, uses the guided project wizard.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-PER-007
Influencer / Affiliate ??? earns commission via referral links, discount codes, and attributed sessions.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-PER-008
Platform Operator (BoltToCart staff) ??? onboards stores, handles support, manages platform-wide configuration.
10m agoapps/web/src/app/(platform)/platform/PlatformSettingsForm.tsxapps/web/src/app/(platform)/platform/actions.tsapps/web/src/app/(platform)/platform/page.tsx+5 more
REQ-GLOGlossary & Domain Model13 shipped0 wip0 todo100%
- ShippedREQ-GLO-001
Yard / WOF ??? the primary cut unit. "Width of Fabric" is the usable bolt width, typically 42???44" for quilting cotton.
6h agopackages/core/src/domainFoundationReadiness/index.test.ts×2packages/core/src/platformOperationsReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.test.ts - ShippedREQ-GLO-002
Bolt ??? a physical roll of fabric with a unique ID, linked to a SKU, with a tracked remaining yardage.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-GLO-003
Cut ??? an action that removes yardage from a bolt and creates an order line item or adjustment record.
6h agopackages/core/src/retailRuntimeReadiness/index.test.ts×2packages/core/src/platformOperationsReadiness/index.test.tspackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-GLO-004
Remnant ??? the residual length on a bolt below a configurable threshold (e.g., ??? 1 yd), typically marked down.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-GLO-005
Precut ??? a pre-packaged piece sold by unit rather than by yardage: fat quarter (~18"??22"), fat eighth (~9"??22"), charm pack (5" squares), jelly roll (2.5" strips), layer cake (10" squares), mini charm, honey bun.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/db/src/schema/skus.ts - ShippedREQ-GLO-006
Bundle / Kit ??? a curated grouping of fabrics and/or notions sold together, optionally tied to a pattern or class.
6h agopackages/core/src/customerCommerceReadiness/index.test.tspackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.ts - packages/core/src/retailRuntimeReadiness/index.ts
- ShippedREQ-GLO-008
Collection ??? a named group of fabrics released together by a designer/manufacturer.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-GLO-009
Repeat ??? the distance over which a pattern repeats, relevant to yardage calculation for large prints.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - packages/core/src/retailRuntimeReadiness/index.ts
- ShippedREQ-GLO-011
Cut-to-order ??? the workflow by which online orders are fulfilled by cutting from a bolt at the store.
6h agopackages/core/src/customerCommerceReadiness/index.test.ts×3packages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-GLO-012
A SKU represents an idealized product (a specific colorway + collection + unit-of-sale). A Bolt is a physical instance of a cut-by-the-yard SKU; a Precut is a physical instance of a unit-of-sale SKU.
6h agopackages/core/src/customerCommerceReadiness/index.test.ts×2packages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-GLO-013
The system must preserve referential integrity from Cut ??? Bolt ??? SKU ??? Collection ??? Designer so reporting and attribution can roll up at any level.
6h agopackages/core/src/domainFoundationReadiness/index.test.ts×3packages/core/src/retailRuntimeReadiness/index.test.ts×3packages/core/src/retailRuntimeReadiness/index.ts
REQ-ONBStore Onboarding46 shipped0 wip0 todo100%
- ShippedREQ-ONB-001
Offer three setup modes on first launch: Start Fresh, Import Inventory, Full Inventory Setup.
6h agopackages/core/src/retailSetupReadiness/index.test.ts×6packages/core/src/storeOperationsReadiness/index.test.ts×6packages/core/src/domainFoundationReadiness/index.test.ts×4+4 more - ShippedREQ-ONB-002
Configure store profile (name, timezone, currency, tax jurisdictions, fulfillment regions, default units).
6h agopackages/core/src/retailFoundationReadiness/index.test.ts×4packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts
- packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts
- ShippedREQ-ONB-005
Go live immediately once minimum profile and at least one payout destination are configured.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/core/src/storeOperationsReadiness/index.test.ts+1 more - packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/core/src/storeOperationsReadiness/index.test.ts+1 more
- ShippedREQ-ONB-011
Bulk Import + Progressive Accuracy ??? CSV/XLSX import of SKUs and estimated yardage; accuracy improves as bolts are scanned, cut, and reconciled.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-ONB-012
Full Inventory Scan ??? guided physical count that creates bolt records as each is scanned and measured.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-ONB-020
Inventory accuracy must improve over time via sales, adjustments, and cycle counts.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts
- ShippedREQ-ONB-022
The system must surface inventory confidence (e.g., "last reconciled N days ago, drift �X%") at bolt, SKU, and store level.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-ONB-040
BoltToCart must provide a guided incumbent-POS migration path for fabric retailers moving from systems such as Rain POS, covering catalog/products, inventory quantities and history, customers, sales history, loyalty/reward balances, gift c…
6h agopackages/core/src/storeOperationsReadiness/index.test.ts×4packages/core/src/retailFoundationReadiness/index.test.ts×2packages/demo-data/src/packs/0012_rain_migration_admin.ts×2+5 more - ShippedREQ-ONB-041
The migration path must support four intake modes: self-service upload of CSV/XLSX files, self-service upload of a ZIP containing multiple exports, concierge/operator upload on behalf of a tenant, and credentialed source-system API pull wh…
6h agoapps/web/src/app/admin/migration/page.tsx×3apps/jobs/src/workers/migrationImportJob.ts×2packages/core/src/retailFoundationReadiness/index.ts+3 more - ShippedREQ-ONB-042
Rain POS must be supported as a named migration profile. The profile must include documented mappings for Rain product bulk export files, customer list exports, sales/transaction report exports, inventory history exports, and loyalty/rewar…
6h agopackages/core/src/migration/rain.ts×2apps/web/src/app/admin/migration/_lib/templateReport.tsapps/web/src/app/admin/migration/page.tsx+4 more - ShippedREQ-ONB-043
Every migration run must create an import batch with: tenantId, source system, source account/store identifier when available, source export timestamp, uploaded file manifest, file checksums, requested-by actor, run mode (dry_run, trial, f…
6h agoapps/jobs/src/workers/migrationImportJob.ts×2apps/web/src/app/admin/migration/page.tsx×2packages/core/src/retailFoundationReadiness/index.ts+5 more - ShippedREQ-ONB-044
Imports must be idempotent and re-runnable. Re-uploading the same source file or re-running an API extraction must not create duplicate SKUs, bolts, customers, orders, loyalty ledger entries, gift cards, or store-credit balances. Source id…
6h agoapps/jobs/src/workers/migrationImportJob.ts×2apps/web/src/app/admin/migration/page.tsx×2packages/core/src/retailFoundationReadiness/index.ts+4 more - ShippedREQ-ONB-045
Before mutating production tenant data, the migration workflow must run a preflight analyzer that reports row counts, unmapped columns, duplicate SKUs, duplicate customers, malformed emails/phones, invalid prices, unsupported tax/tender/st…
6h agoapps/jobs/src/workers/migrationImportJob.ts×2apps/web/src/app/admin/migration/page.tsx×2packages/core/src/retailFoundationReadiness/index.ts+5 more - ShippedREQ-ONB-046
The preflight analyzer must classify findings as blocking, warning, or informational. Blocking findings prevent final import; warnings may be explicitly accepted by an authorized manager; informational findings remain visible in the import…
6h agoapps/web/src/app/admin/migration/page.tsx×3apps/jobs/src/workers/migrationImportJob.ts×2packages/core/src/retailFoundationReadiness/index.ts+5 more - ShippedREQ-ONB-047
The importer must provide a field-mapping UI for unknown or tenant-specific columns, including reusable mapping presets by source system and tenant. Mappings must be versioned with the import batch so a future rerun uses the same interpret…
6h agoapps/jobs/src/workers/migrationImportJob.ts×2apps/web/src/app/admin/migration/page.tsx×2apps/web/src/app/admin/migration/_lib/templateReport.test.ts+4 more - ShippedREQ-ONB-048
The migration workflow must support a trial import into a sandbox/demo tenant, allowing the merchant and BoltToCart operator to inspect catalog, customers, rewards, sales reports, and inventory confidence before approving a production impo…
6h agoapps/jobs/src/workers/migrationImportJob.ts×2apps/web/src/app/admin/migration/page.tsx×2packages/core/src/retailFoundationReadiness/index.ts+2 more - ShippedREQ-ONB-049
The final production cutover must support a delta import window. After the merchant performs a final incumbent-system export, BoltToCart must import only new or changed source records since the trial baseline where source identifiers or ti…
6h agoapps/jobs/src/workers/migrationImportJob.ts×2apps/web/src/app/admin/migration/page.tsx×2packages/core/src/retailFoundationReadiness/index.ts+2 more - ShippedREQ-ONB-050
Product imports must map source product records into BoltToCart SKUs and product types per REQ-CAT-001 through REQ-CAT-011, including SKU code, barcode/UPC, name, description, vendor/supplier, designer, collection, department/category, col…
6h agopackages/core/src/migration/rain.ts×14packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-051
Product import must never use floating-point math for money or yardage. Prices and costs are converted to integer minor units; yardage is converted to fixed-point 1/16-yard units per REQ-INV-001, with original source values retained for au…
6h agopackages/core/src/migration/rain.ts×8packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-052
When a source system provides only SKU-level on-hand quantity instead of physical bolt-level inventory, BoltToCart must create legacy opening-stock bolt records or equivalent receiving records with lower inventory-confidence metadata. Thes…
6h agopackages/core/src/migration/rain.ts×4packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-053
Inventory history imports must map source adjustments, receiving events, shrinkage, transfers, and manual corrections into auditable inventory events where source detail supports it. If historical detail is insufficient to reconstruct exac…
6h agopackages/core/src/migration/rain.ts×4packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-054
After product/inventory import, BoltToCart must generate a migration label run for newly created or legacy bolt records, including printable bolt labels per REQ-INV-050 and a reconciliation worksheet grouped by location/category for store-…
6h agopackages/core/src/migration/rain.ts×9packages/core/src/migration/rain.test.ts×4apps/web/src/app/admin/migration/page.tsx+3 more - ShippedREQ-ONB-055
Customer imports must create unified customer profiles per REQ-CRM-001, keyed by email and/or phone where present, with merge-review tooling for duplicate or near-duplicate records. The importer must preserve source customer IDs and must n…
6h agopackages/core/src/migration/rain.ts×4packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-056
Customer imports must support source fields commonly needed for quilt/fabric retail: name, email, phone, mailing address, marketing opt-in state, tax-exempt flag, customer group, notes, birthday/month where legally usable, created date, la…
6h agopackages/core/src/migration/rain.ts×8packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-057
Sales-history imports must create legacy orders and order line items where source transaction detail is available, preserving source transaction ID, receipt/order number, channel/register, cashier/staff identifier where available, timestam…
6h agopackages/core/src/migration/rain.ts×11packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-058
If line-level sales history is unavailable or incomplete, BoltToCart must support importing customer-level purchase summaries and monthly store totals so CRM segmentation, retention cohorts, and onboarding reconciliation can still function…
6h agopackages/core/src/migration/rain.ts×9packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-059
Imported historical orders must be marked as legacy/imported and must not trigger fulfillment, inventory deduction, loyalty accrual, gift-card issuance, email receipts, webhooks, or customer notifications unless the import mode explicitly…
6h agopackages/core/src/migration/rain.ts×4packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-060
Loyalty/reward migration must import the current customer balance as an opening-balance ledger entry per REQ-CRM-003, not as a recalculated earn stream by default. Recalculation from historical transactions may be offered only as a separat…
6h agopackages/core/src/migration/rain.ts×4packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-061
Loyalty imports must support mapping source reward programs into BoltToCart earn/redemption settings, tiers, customer balance, lifetime points/spend where available, pending rewards, expiration dates where legally applicable, and manual ad…
6h agopackages/core/src/migration/rain.ts×6packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-062
Gift card and store-credit imports must require explicit merchant attestation or reconciliation approval before activation. Imported balances must preserve source identifiers, original balance, remaining balance, issue date where available…
6h agopackages/core/src/migration/rain.ts×6packages/core/src/migration/rain.test.tspackages/core/src/retailFoundationReadiness/index.ts+2 more - ShippedREQ-ONB-063
No stored payment-card data, PAN, CVV, magstripe/chip data, or raw payment tokens may be imported from an incumbent POS. Customers must re-enter payment methods through Stripe-hosted or otherwise PCI-compliant flows per REQ-SEC-010.
2h agopackages/core/src/migration/rain.ts×10apps/web/src/app/admin/migration/_lib/checklistReport.test.tsapps/web/src/app/admin/migration/_lib/checklistReport.ts+6 more - ShippedREQ-ONB-064
The migration workflow must provide reconciliation reports comparing source exports to imported BoltToCart data by entity and period: SKU count, active/inactive product count, on-hand quantity, inventory value, customer count, loyalty bala…
6h agoapps/web/src/app/admin/migration/page.tsx×2packages/core/src/retailFoundationReadiness/index.test.ts×2packages/core/src/retailFoundationReadiness/index.ts+5 more - ShippedREQ-ONB-065
Reconciliation reports must be exportable as CSV and retained with the import batch. The merchant must explicitly approve final reconciliation before production cutover is marked complete.
6h agoapps/web/src/app/admin/migration/page.tsx×2packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+4 more - ShippedREQ-ONB-066
All imported PII must follow REQ-ANL-003, REQ-SEC-021, and REQ-CRM-005: no unnecessary PII in analytics events, retention policies apply by data class, and customer export/deletion requests must include imported source data and source-refe…
6h agoapps/web/src/app/admin/migration/page.tsx×2packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-067
Import jobs must emit typed domain events through the outbox and product events through the telemetry wrapper per REQ-ANL-001, REQ-ANL-002, REQ-ANL-010, and REQ-JOB-506. Events must include batch-level counts and status, but must not inclu…
6h agopackages/events/src/domain/migrationImports.ts×10apps/jobs/src/workers/migrationImportJob.ts×2apps/web/src/app/admin/migration/page.tsx×2+5 more - ShippedREQ-ONB-068
The store-owner dashboard must include a migration status tile during onboarding and for at least 30 days after cutover, showing current phase, last batch status, unresolved blocking findings, reconciliation approval state, inventory-confi…
6h agoapps/web/src/app/admin/migration/page.tsx×2packages/demo-data/src/packs/0012_rain_migration_admin.ts×2packages/core/src/retailFoundationReadiness/index.ts+2 more - ShippedREQ-ONB-069
Platform operators must have an operator-only migration console for monitoring tenant migration batches, retrying failed jobs, downloading sanitized error reports, and recording concierge notes. The console must not allow cross-tenant data…
6h agoapps/web/src/app/admin/migration/page.tsx×2packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more - ShippedREQ-ONB-070
The migration system must provide a rollback preview before production finalization, listing which imported entities could be deleted, disabled, or left as historical records. Rollback behavior must preserve audit history and must never si…
6h agoapps/web/src/app/admin/migration/page.tsx×2packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+4 more - ShippedREQ-ONB-071
The migration checklist for Rain POS must be visible to merchants and operators and must list the expected source exports, recommended date ranges, export timing for trial and final cutover, known limitations, and the exact BoltToCart dest…
2h agopackages/core/src/storeOperationsReadiness/index.test.ts×3apps/web/src/app/admin/migration/page.tsx×2packages/demo-data/src/packs/0012_rain_migration_admin.ts×2+8 more - apps/pos/src/hw/types.tspackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more
- apps/pos/src/hw/types.tspackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+1 more
- packages/core/src/retailFoundationReadiness/index.test.tspackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.test.ts+3 more
REQ-CATCatalog & Product Data34 shipped1 wip2 todo92%
- ShippedREQ-CAT-001
Every fabric SKU must capture: name, SKU code, designer, collection, colorway, fiber content (composition %), width (inches), weight (GSM or oz/yd�), pattern type (solid, print, batik, etc.), print scale, repeat (inches), care instructions…
6h agopackages/core/src/domainFoundationReadiness/index.test.ts×4packages/core/src/storeOperationsReadiness/index.test.ts×4packages/core/src/customerCommerceReadiness/index.test.ts×2+15 more - ShippedREQ-CAT-002
Every SKU must capture one or more dominant colors (hex values) and color tags (e.g., "sage", "navy") for faceted and color search.
6h agopackages/testing/src/catalog.test.ts×2packages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailFoundationReadiness/index.ts+5 more - ShippedREQ-CAT-003
Every SKU must support multiple images with roles: hero, swatch, bolt-end, lifestyle, repeat preview.
2h agopackages/db/src/migrations/0017_sku_images.sql×5packages/demo-data/src/packs/0011_storefront_images.ts×4apps/web/src/app/(storefront)/cart/page.tsx×2+15 more - ShippedREQ-CAT-004
Every SKU must declare its unit of sale: by_yard, by_precut, by_unit, or by_kit.
6h agopackages/db/src/migrations/0010_sku_catalog.sql×4packages/core/src/retailFoundationReadiness/index.test.ts×3packages/db/src/schema/skus.ts×2+6 more - ShippedREQ-CAT-005
Variants are permitted for differences in colorway, size (for precuts), or packaging.
6h agopackages/core/src/retailRuntimeReadiness/index.test.ts×2packages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailFoundationReadiness/index.test.ts+2 more - ShippedREQ-CAT-010
The catalog must support notions (thread, batting, needles, tools), patterns (physical + digital), books, and gift cards with appropriate attribute schemas.
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-CAT-011
Digital goods (pattern PDFs) must support license-bound downloads with per-order expiry and rate-limited access.
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-CAT-020
Images must be processed through a media pipeline that generates standard derivatives (thumbnail, card, swatch, zoom) and extracts dominant colors on upload (see �27).
6h agopackages/demo-data/src/packs/0011_storefront_images.ts×2apps/web/src/components/ProductImage.tsxpackages/core/src/customerCommerceReadiness/index.ts+5 more - packages/testing/src/skuImages.test.ts×4packages/core/src/retailSetupReadiness/index.test.ts×3packages/db/src/migrations/0017_sku_images.sql×3+12 more
- In progressREQ-CAT-022
The MVP catalog media pipeline must let admins attach, order, replace, and remove per-SKU images with roles for hero, swatch, bolt-end/detail, and lifestyle. Each image must store alt text, source, dimensions, content hash, and derivative…
packages/core/src/storeOperationsReadiness/index.test.ts×2packages/core/src/domainFoundationReadiness/index.test.ts - Not startedREQ-CAT-023
The MVP catalog schema and admin UI must capture structured fabric composition and merchandising metadata needed by REQ-CAT-001: composition percentages, pattern type, print scale, repeat, care instructions, country of origin, and hazard/c…
- ShippedREQ-CAT-024
BoltToCart must maintain a platform-owned shared product library of known fabric-retail products that can be searched and used by every tenant during receiving, purchase-order creation, manual SKU creation, incumbent POS migration, and ful…
10m agopackages/db/src/repositories/productLibrary.ts - ShippedREQ-CAT-025
Shared product-library records must be global reference records, not tenant catalog records. Creating or receiving inventory from a library match must create or update a tenant-owned SKU, bolt, precut, or unit item that references the libr…
10m agopackages/db/src/repositories/productLibrary.ts - ShippedREQ-CAT-026
Each shared product-library record must store durable external identifiers where available: source system, source product URL, source product ID, manufacturer item number, vendor SKU, UPC, EAN/GTIN, collection code, color code, variant cod…
34m agopackages/core/src/productLibrary/index.ts×2 - ShippedREQ-CAT-027
Shared product-library fabric records must support the same structured fabric attributes as tenant SKUs per REQ-CAT-001 through REQ-CAT-005, including name, description, designer, collection, colorway, vendor/manufacturer, fiber content, w…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-028
Shared product-library non-fabric records must support notion, thread, batting, needle, tool, pattern, book, kit, home-gift, and precut metadata per REQ-CAT-010 and REQ-CAT-011, including product type, size, dimensions, pack quantity, mate…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-029
Every shared product-library record must store commercial reference fields separately from tenant prices: MSRP in integer minor units, MSRP currency, wholesale/list cost when legally available, minimum advertised price when available, unit…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-030
MSRP and cost fields in the shared product library are reference data only. Tenant storefront, POS, discount, margin, and tax calculations must use tenant-owned pricing records and must never silently update tenant sell prices when a sourc…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-031
Shared product-library images must preserve source provenance, original URL, content hash, dimensions, license/usage status, fetch timestamp, alt text, and image role. Images approved for tenant use must flow through the standard media pip…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-032
The library must retain source raw snapshots and normalized records separately. Raw snapshots must be immutable audit evidence with content hash, fetch time, HTTP status, source account context, parser version, and extraction warnings; nor…
10m agoapps/web/src/app/(platform)/platform/product-library/actions.tspackages/core/src/productLibrary/index.tspackages/db/src/repositories/productLibrary.ts - ShippedREQ-CAT-033
Shared product-library records must support source-confidence scoring by field. Each normalized field must track whether it came from source markup, page text, structured data, image analysis, operator edit, tenant feedback, or automated i…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-034
Product-library deduplication must merge records that represent the same physical product across sources such as Moda/United Notions, EE Schenck, Checker Distributors, and Brewer Quilting & Sewing Supplies. The merge process must preserve…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-035
Product-library matching during inventory intake must support barcode scan, UPC entry, manufacturer SKU entry, PO line import, supplier invoice import, image-assisted search, and text search across name, collection, designer, vendor, color…
10m agopackages/core/src/productLibrary/index.tspackages/db/src/repositories/productLibrary.ts - ShippedREQ-CAT-036
Store owners must be able to accept a product-library match into their catalog with a one-step default path and an advanced edit path. The default path must prefill safe fields, preserve tenant defaults for category/pricing/tax/publish sta…
10m agopackages/core/src/productLibrary/index.tspackages/db/src/repositories/productLibrary.ts - ShippedREQ-CAT-037
Store owners must be able to override library-derived fields on their tenant SKU without changing the shared library. The UI must clearly distinguish platform reference data from tenant overrides and must provide a reset-to-library action…
34m agopackages/core/src/productLibrary/index.ts×2 - ShippedREQ-CAT-038
Tenant SKUs linked to a shared product-library record must receive update suggestions when source data changes materially. Suggestions must summarize changed fields, source, old value, new value, confidence, and storefront impact; applying…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-039
The shared library must expose operator review states: candidate, normalized, needs_review, approved, rejected, merged, deprecated, and blocked. Only approved records may be offered as default auto-fill candidates to store owners, while lo…
10m agopackages/core/src/productLibrary/index.ts×3apps/web/src/app/(platform)/platform/product-library/actions.tspackages/db/src/repositories/productLibrary.ts - ShippedREQ-CAT-040
Product-library records must support category taxonomy mapping between source categories and BoltToCart product types. For Moda's fabric source, the initial mapping must include category, availability, vendor, author, Moda designer, produc…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-041
The first source connector must target https://shop.modafabrics.com and capture as much product metadata as available from category and product pages, including product name, description, image URLs, MSRP, UPC, SKU/item number, category pa…
10m agoapps/web/src/app/(platform)/platform/product-library/actions.tsapps/web/src/lib/productLibraryModa.ts - Not startedREQ-CAT-042
The Moda connector must support incremental discovery from category pages such as /category/fabrics-101495, product detail pages such as /product/1867.68258, pagination or infinite-scroll result sets, faceted filters, product count changes…
- ShippedREQ-CAT-043
The shared product library must represent product families, variants, and purchasable items separately when a source exposes them separately. A collection or product group may contain fabric colorways, precuts, kits, patterns, books, and n…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-044
The library must preserve historical availability and lifecycle changes. When a source changes a product from in stock to on order, out of stock, ships from vendor, discontinued, last call, future group, or similar status, the new state mu…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-045
Library data must never be treated as authoritative inventory for a tenant. Source availability may inform ordering and intake suggestions, but tenant on-hand inventory, sellable quantity, holds, and fulfillment decisions must continue to…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-046
Product-library search APIs must be read-only for tenant users except for explicit feedback endpoints. Tenant feedback may propose corrections, missing UPCs, better images, duplicate reports, or source conflicts, but must enter an operator…
10m agopackages/core/src/productLibrary/index.tspackages/db/src/repositories/productLibrary.ts - ShippedREQ-CAT-047
Shared product-library APIs must support stable, typed contracts for admin UI, POS receiving, web receiving, migration, and jobs. Contracts must include branded IDs for library record, source record, tenant SKU, source connector run, and m…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-048
Library metadata that is source-specific but not yet modeled must be stored in a typed extension structure keyed by source and parser version. Extension fields must preserve original labels and values for audit while promoting frequently u…
34m agopackages/core/src/productLibrary/index.ts - ShippedREQ-CAT-049
The shared product library must include a public-support-safe product evidence view that operators can copy into tickets. Evidence must include library ID, source name, source URL, last fetch time, approved field summary, and confidence st…
34m agopackages/core/src/productLibrary/index.ts
REQ-INVInventory Management18 shipped1 wip1 todo90%
- ShippedREQ-INV-001
Yardage must be tracked as fractional values with minimum granularity of ??? yard (0.125) and stored with sufficient precision to avoid cumulative rounding error (recommended: store in millimeters or fixed-point 1/16 yard).
6h agopackages/core/src/storeOperationsReadiness/index.test.ts×4packages/events/src/domain/pos.ts×4packages/db/src/schema/cycleCounts.ts×3+38 more - ShippedREQ-INV-002
Each physical bolt has a unique ID, associated SKU, initial yardage, current remaining yardage, location (store + shelf), and status (receiving, on_shelf, cut_in_progress, remnant, sold_out, damaged, transferred).
6h agopackages/db/src/migrations/0005_bolt_status.sql×3apps/web/src/lib/roadmap.test.ts×2packages/core/src/bolts/status.ts×2+17 more - ShippedREQ-INV-003
The system must enforce non-negative remaining yardage and prevent concurrent over-cutting via row-level locking or equivalent serialization.
6h agoapps/web/src/lib/roadmap.test.tspackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.ts+9 more - ShippedREQ-INV-004
Adjustments, shrinkage, transfers between locations, and damage events must all be auditable with actor, reason, quantity delta, and timestamp.
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-INV-010
When remaining yardage falls at or below a configurable threshold (default 1 yard), the bolt must automatically flag as a remnant and optionally reprice per the markdown rule.
2h agopackages/db/src/migrations/0005_bolt_status.sql×3packages/testing/src/bolt-status.test.ts×3packages/db/src/repositories/bolts.ts×2+10 more - ShippedREQ-INV-011
A bolt may be split (e.g., to create precuts from the bolt-end) or two identical-SKU bolts merged administratively. Both operations must preserve audit history.
6h agopackages/db/src/repositories/bolts.ts×3apps/web/src/app/admin/bolts/[boltId]/actions.ts×2packages/db/src/migrations/0009_bolt_lineage.sql×2+9 more - ShippedREQ-INV-020
Supplier records must capture contact info, lead times, payment terms, minimum order quantity, and preferred shipping methods.
6h agopackages/core/src/retailRuntimeReadiness/index.test.ts×2packages/demo-data/src/packs/0004_admin_damaged_bolt.ts×2packages/core/src/customerCommerceReadiness/index.ts+8 more - ShippedREQ-INV-021
Purchase orders (POs) must support draft, submitted, partially received, received, and closed states, with line items mapped to SKUs and expected quantities.
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-INV-022
The receiving workflow is the primary entry point for creating bolts: scan PO ??? confirm SKU ??? enter actual yardage ??? generate bolt ID and printable label.
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-INV-023
Landed cost (unit cost + freight + duty allocation) must be captured per receiving line to drive margin reporting.
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-INV-024
Advance Ship Notices (ASNs) should be importable where suppliers support them.
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-INV-030
The system must support partial and full cycle counts with variance reporting and bulk adjustment approval.
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-INV-031
Discrepancies must produce audit records and feed into the inventory-confidence score per �4.3.
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-INV-040
When fulfilling a cut-to-order line with multiple candidate bolts, the system must choose the bolt according to a configurable rule. Default: largest-remnant-first (cut from the smallest bolt that satisfies the order) to consolidate invent…
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-INV-041
Alternative rules must include FIFO (oldest first), LIFO, and manual selection.
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts - ShippedREQ-INV-042
If no single bolt can satisfy the request, the system must either split the order across bolts (with customer opt-in for quilting-grade continuity) or decline and suggest substitutes.
6h agopackages/core/src/bolts/selection.ts×2packages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.ts+1 more - ShippedREQ-INV-050
Each bolt label must carry a scannable 1D or 2D barcode encoding the bolt ID, plus a human-readable SKU, designer, collection, width, and initial yardage.
6h agoapps/pos/src/scan/parser.ts×2packages/core/src/domainFoundationReadiness/index.test.ts×2apps/pos/src/hw/nfcReader.ts+4 more - ShippedREQ-INV-051
Labels must be reprintable on demand and support at least two standard thermal label sizes.
6h agopackages/core/src/customerCommerceReadiness/index.test.ts×3packages/core/src/retailSetupReadiness/index.test.ts×3packages/core/src/customerCommerceReadiness/index.ts+5 more - In progressREQ-INV-052
Receiving, full-inventory scan, and purchase-order workflows must offer shared product-library lookup before manual SKU creation. If a scanned or entered UPC matches a library record, the workflow must prefill product metadata and continue…
packages/core/src/domainFoundationReadiness/index.test.ts×2packages/core/src/storeOperationsReadiness/index.test.ts - Not startedREQ-INV-053
Purchase-order and receiving lines created from a shared product-library record must retain both the tenant SKU ID and the library record ID. The receiving audit must show which fields were prefilled from the library, which fields were edi…
REQ-PRIPricing & Promotions50 shipped0 wip0 todo100%
- ShippedREQ-PRI-001
Support per-yard pricing, per-unit pricing (precuts, notions), and per-kit pricing.
6h agopackages/core/src/serviceCommerceReadiness/index.test.ts×6packages/core/src/checkoutPricingReadiness/index.test.ts×4packages/core/src/retailSetupReadiness/index.test.ts×4+4 more - ShippedREQ-PRI-002
Support volume breaks (e.g., 10% off at ??? 5 yards), customer-group pricing (retail, trade/wholesale, guild), and tax-exempt customer flags.
6h agoapps/web/src/lib/storefront.tspackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.ts+2 more - ShippedREQ-PRI-003
Support markdowns, automatic remnant discounts, BOGO, percentage/fixed coupons, free-shipping promotions, and stackable/exclusive rules with a deterministic resolution order. Detailed mechanics for coupons and promotions are specified in �…
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-004
Support gift cards and store credit with balance tracking, expiry policies per jurisdiction, and redemption across all channels. Gift cards are a stored-value instrument, not a coupon, and are governed by separate tender rules (see �8.1) a…
6h agopackages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-005
Every price applied to a cart must be traceable to the rule(s) that produced it for audit and dispute resolution. The trace must enumerate each applied discount, its couponId/promotionId, eligibility match reason, stacking decision, and pe…
6h agopackages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/retailSetupReadiness/index.tspackages/core/src/serviceCommerceReadiness/index.test.ts+1 more - packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/core/src/serviceCommerceReadiness/index.test.ts+1 more
- ShippedREQ-PRI-011
Distinguish automatic promotions (no code required; applied whenever eligibility matches) from coupons (require a code or a customer-attached entitlement). Both share the same eligibility, stacking, and reporting model.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-012
Support pricing lists that override base price for a customer group, location, or channel; pricing-list prices are applied before any promotion and count as the "original price" for subsequent discount math.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-020
Support the following coupon code archetypes, each with the same underlying discount mechanic (�7.2) but different issuance and redemption semantics:
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts
- ShippedREQ-PRI-022
Bulk operations ??? campaigns must support bulk create, bulk pause, bulk revoke, and bulk extend with a dry-run preview of affected codes and an undo window (5 minutes) before changes are committed to the redemption ledger.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-023
Support scannable coupon artifacts ??? QR and 1D barcodes encoding the code plus an HMAC so scanned codes at POS can be validated offline against a cached active-campaign set (see �7.7).
6h agoapps/pos/src/flow/discountScanHandler.ts×2apps/pos/src/scan/parser.ts×2apps/pos/src/flow/couponFlow.ts+3 more - ShippedREQ-PRI-030
Every coupon/promotion must support the following eligibility dimensions, combinable with AND/OR logic:
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-031
Support exclusions with clear precedence over inclusions: clearance/sale flag, gift cards, specific SKUs or collections, already-discounted lines, shipping, tax, specific channels (e.g., exclude from drops). Exclusions must be evaluated be…
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts
- ShippedREQ-PRI-033
Eligibility evaluation must be deterministic and side-effect-free: the same cart + coupon + context always yields the same decision and the same rationale string, which is persisted on the order for audit.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-040
Every coupon and automatic promotion carries a stackability flag: exclusive (default), stackable-with-auto, stackable-with-any. Two exclusive instruments cannot apply to the same order.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - packages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts
- ShippedREQ-PRI-042
Support a maximum discount cap per order, per line, and per campaign (absolute or percentage) to prevent runaway stacking.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-043
Every resolution decision ??? including rejected codes and the reason for rejection ??? must be written to the order's pricing trace per REQ-PRI-005 and to the coupon redemption ledger per REQ-PRI-055.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-050
Coupon validation must happen at three points: on code entry in the cart, on checkout submission, and on payment authorization. The canonical decision is the checkout-time evaluation; cart-time previews are advisory and must be re-checked…
48m agopackages/core/src/checkoutPricingReadiness/index.test.ts×3packages/core/src/serviceCommerceReadiness/index.test.ts×3apps/web/src/app/(storefront)/cart/actions.ts×2+5 more - ShippedREQ-PRI-051
Code application must be idempotent: submitting the same code twice in the same cart session is a no-op, not an error. Reapplying after removal is permitted subject to usage limits.
6h agopackages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-052
Validation responses must not leak information that aids enumeration: a single opaque invalid_or_ineligible response for unknown, expired, exhausted, paused, and not-yet-active codes. Internally, the specific reason is logged with the stan…
6h agopackages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-053
Use constant-time string comparison for code matching to eliminate timing oracles.
6h agopackages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - packages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts
- ShippedREQ-PRI-055
Redemption ledger ??? every successful redemption creates an immutable record of: couponId, campaignId, orderId, customerId, channel, storeId/deviceId if POS, discount mechanic, amount applied, per-line allocation, attributed influencer if…
6h agopackages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/retailSetupReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-056
Reversal on refund/return ??? partial and full refunds must reverse the proportional discount per REQ-PRI-080 and decrement the redemption count only if the return fully voids the order and the campaign's policy permits (default: yes). Rev…
6h agopackages/core/src/retailSetupReadiness/index.test.ts×3packages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/revenueOperationsReadiness/index.test.ts×2+2 more - ShippedREQ-PRI-057
Self-referral / self-redemption guards ??? a customer cannot redeem their own referral or influencer code on their primary account; flagged attempts are rejected with the generic response and logged for review.
6h agopackages/core/src/revenueOperationsReadiness/index.test.ts×9packages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/revenueOperationsReadiness/index.ts+1 more - ShippedREQ-PRI-058
Kill switch ??? a campaign can be paused or revoked by an authorized operator in under 30 seconds via the admin UI without a deploy; in-flight redemptions committed before the pause timestamp remain valid, and a reason code is required and…
6h agopackages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/checkoutPricingReadiness/index.test.tspackages/core/src/revenueOperationsReadiness/index.ts+1 more - ShippedREQ-PRI-060
Web storefront ??? code entry at the cart and checkout; auto-apply via signed URL parameter with a short TTL; customer-attached entitlements appear as one-tap apply on the cart for authenticated customers.
6h agopackages/core/src/checkoutPricingReadiness/index.test.tspackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts+1 more - ShippedREQ-PRI-061
POS ??? the POS must support (a) manual keypad code entry, (b) barcode/QR scan of a coupon artifact (REQ-PRI-023), and (c) selecting a customer-attached entitlement from the looked-up customer profile. Manager PIN (REQ-POS-031) is required…
6h agoapps/pos/src/components/CouponStatus.test.tsapps/pos/src/components/CouponStatus.tsapps/pos/src/components/DiscountScanStatus.ts+4 more - ShippedREQ-PRI-062
Offline POS ??? only codes from the cached active-campaign set (shared public codes with no per-customer limits and no cross-channel cap) may be honored offline. Single-use unique codes, influencer codes, first-time-customer codes, and any…
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-063
Drops ??? by default, drops are coupon-excluded (REQ-PRI-031). A drop may opt in to accept specific campaigns, but codes MUST NOT influence queue position, waitlist order, or inventory holds (REQ-DRP-002/REQ-DRP-003).
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-064
Events & ticketing ??? promo codes apply to tickets per REQ-EVT-013; bundled kits attached to a ticket follow the kit's eligibility, not the ticket's.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-065
Guided project wizard ??? codes may be applied at the review step; the wizard must show the pre- and post-discount totals and make the applied code removable.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-070
Every coupon has a lifecycle state: draft ??? scheduled ??? active ??? (paused ??? active) ??? exhausted | expired | revoked ??? archived. State transitions are recorded with actor, timestamp, and reason.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-071
Automatic transitions ??? scheduled ??? active at startAt, active ??? expired at endAt, active ??? exhausted on cap reached. Transitions are driven by background jobs (�29 "Background jobs") with guaranteed-once emission of the correspondi…
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-072
Manual admin actions ??? pause, resume, revoke (terminal), clone (new draft pre-filled), extend (moves endAt), adjust cap (only upward without a re-approval workflow).
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-073
Approvals ??? configurable approval workflow for high-impact campaigns (discount > N%, cap > M redemptions, site-wide scope); required approvers, dual-control for irreversible revokes.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-074
Retention & archival ??? archived campaigns remain queryable for reporting and dispute resolution per the data retention policy in �25.3; the redemption ledger is retained for the full financial-records retention period regardless of campa…
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-080
Per-line allocation ??? order-level and cart-level discounts must be pro-rated across eligible lines by that line's eligible base price, using banker's rounding with residuals distributed to the highest-priced line. Per-line allocation is…
6h agopackages/core/src/retailFoundationReadiness/index.test.ts×2packages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts+1 more - ShippedREQ-PRI-081
Tax treatment ??? support both pre-tax (default, US) and post-tax (some international regimes) discount application, selected per jurisdiction by the tax engine (REQ-ARC-026). Free-shipping discounts interact with shipping tax per the dest…
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-082
Refunds ??? when a line is refunded, the proportional discount allocated to that line is reversed and tax is recomputed on the reduced taxable base per REQ-FUL-006. Reversals never produce negative discount totals.
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-083
Merchant cost-of-promotion ledger ??? every redemption records GMV foregone (list price ??? sold price), margin impact (using landed cost from REQ-INV-023), and attribution to campaign and, if applicable, influencer. This feeds the coupon…
6h agopackages/core/src/retailFoundationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-090
Coupon performance report (per-tenant, scoped per �22) must surface: redemptions, redemption rate, GMV lifted, revenue after discount, average discount per order, new-customer share, top SKUs redeemed against, and ROI vs. cost-of-promotion…
6h agopackages/core/src/serviceCommerceReadiness/index.test.ts×3packages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/revenueOperationsReadiness/index.ts+1 more - ShippedREQ-PRI-091
Funnel events per REQ-ANL-011 ??? code-entered, code-rejected (with opaque reason class), code-applied, checkout-completed-with-code. These feed the product-analytics sink, not the domain warehouse.
6h agopackages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-092
Influencer reports consume the same redemption ledger and are specified in REQ-RPT-004.
6h agopackages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/revenueOperationsReadiness/index.tspackages/demo-data/src/packs/0038_retail_foundation_readiness_suite.ts - ShippedREQ-PRI-100
Emit typed domain events conforming to �26.1: coupon.created, coupon.activated, coupon.paused, coupon.revoked, coupon.redeemed, coupon.redemption_reversed, coupon.exhausted, coupon.expired. Payloads are declared in packages/events per REQ-…
6h agopackages/core/src/checkoutPricingReadiness/index.test.ts×3packages/core/src/serviceCommerceReadiness/index.test.ts×3packages/core/src/retailFoundationReadiness/index.ts×2+2 more - ShippedREQ-PRI-101
Influencer-attributed codes share the coupon machinery; attribution and payout are governed by �14, and commission is settled through the commission ledger (REQ-INF-030) rather than by double-discounting the order.
6h agopackages/core/src/retailFoundationReadiness/index.test.ts×3packages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/revenueOperationsReadiness/index.ts+1 more - ShippedREQ-PRI-102
Event-ticket promo codes are governed by �12.2 (REQ-EVT-013) and use the same engine described here.
6h agopackages/core/src/serviceCommerceReadiness/index.test.ts×3packages/core/src/retailFoundationReadiness/index.ts×2packages/core/src/checkoutPricingReadiness/index.test.ts+4 more
REQ-POSPoint of Sale245 shipped0 wip0 todo100%
- packages/core/src/checkoutPricingReadiness/index.test.ts×6apps/pos/src/runtime/registerWorkbench.test.ts×2packages/core/src/retailRuntimeReadiness/index.test.ts×2+6 more
- ShippedREQ-POS-002
Must support fractional yardage entry (�6.1) with both decimal and fractional keypads (e.g., 2 ???).
6h agoapps/pos/src/components/YardageKeypad.tsxapps/pos/src/flow/criticalPath.tsapps/pos/src/flow/types.ts+2 more - ShippedREQ-POS-003
Must support fast text and visual search across SKUs, collections, and designers, with keyboard and barcode input.
6h agoapps/pos/src/index.ts×2apps/pos/src/components/SkuSearchResults.test.tsapps/pos/src/components/SkuSearchResults.ts+2 more - apps/pos/src/components/HeldCartList.test.tsapps/pos/src/components/HeldCartList.tsapps/pos/src/flow/heldCarts.test.ts+4 more
- ShippedREQ-POS-005
Must support split tender (card + cash + store credit + gift card) and partial refunds.
6h agoapps/jobs/src/workers/giftCardIssuanceJob.tsapps/pos/src/components/GiftCardTenderStatus.tsapps/pos/src/components/RefundLineSelector.test.ts+9 more - apps/pos/src/components/ReceiptDeliveryOptions.test.tsapps/pos/src/components/ReceiptDeliveryOptions.tsapps/pos/src/index.ts+1 more
- ShippedREQ-POS-007
End-of-day reconciliation must produce a cash-drawer report and a shift summary.
6h agoapps/jobs/src/workers/shiftSummaryJob.tsapps/pos/src/receipt/shiftSummaryLines.test.tsapps/pos/src/receipt/shiftSummaryLines.ts+2 more - ShippedREQ-POS-020
A dedicated iPad POS application is required ??? browser-only is insufficient. Chosen platform: React Native + Expo with Expo Modules for native integrations and EAS Build for distribution. Rationale: single TypeScript stack shared with th…
6h agopackages/core/src/checkoutPricingReadiness/index.test.ts×4apps/web/src/app/api/pos/runtime/route.ts×2packages/api-contracts/src/posSaleSync.test.ts×2+4 more - ShippedREQ-POS-021
The app must achieve sub-second response for the critical path: scan ??? add line ??? total ??? tender ??? receipt.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-POS-022
The app must operate fully offline for at least 8 continuous hours of normal register activity, with local transaction durability across app restarts and device reboots.
6h agoapps/pos/src/flow/heldCarts.ts×3apps/pos/src/runtime/registerWorkbench.test.tspackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-POS-023
The app must sync background transactions to the server as connectivity permits, with conflict resolution per �17.
6h agoapps/pos/src/runtime/registerWorkbench.test.tspackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-POS-024
The app must integrate with Bluetooth barcode scanners (HID mode), ESC/POS thermal receipt printers, and electronic cash drawers (RJ-11 kick via receipt printer).
6h agopackages/events/src/domain/pos.ts×4apps/pos/src/components/NoSaleDrawerStatus.test.tsapps/pos/src/components/NoSaleDrawerStatus.ts+7 more - ShippedREQ-POS-025
The app must support tap-to-pay card acceptance via a certified payments SDK (Stripe Terminal, including Tap to Pay on iPhone/iPad), with PIN and signature flows where required.
6h agoapps/pos/src/hw/types.tspackages/core/src/retailRuntimeReadiness/index.tspackages/events/src/domain/pos.ts - ShippedREQ-POS-026
A shared core library (pricing, validation, tax calc preview, API client, typed domain models) must be published as a package consumable by both the Next.js web app and the Expo POS app to prevent rule drift between channels.
6h agopackages/core/src/checkoutPricingReadiness/index.test.tspackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-POS-572
POS label-printer status projection (apps/pos/src/components/LabelPrinterStatus.ts). Pure UI-runtime-free helper for the existing LabelPrintResult and bolt-label print context that maps ready, not-ready, printing, printed, and failed label…
6h agoapps/pos/src/components/PosReleaseGapSuiteStatus.test.ts×2apps/pos/src/components/LabelPrinterStatus.test.tsapps/pos/src/components/LabelPrinterStatus.ts - ShippedREQ-POS-700
The overnight POS register path must be guarded by the pos.register-session feature flag and must expose a disabled state that blocks sale completion without mutating the cart, tender state, hardware, or sync queue.
6h agopackages/core/src/posLaunchReadiness/index.test.ts×8packages/core/src/storefrontPosBridgeReadiness/index.test.ts×6apps/pos/src/flow/registerSession.test.ts×4+9 more - ShippedREQ-POS-701
The register path must derive its cashier-facing phase from the existing critical-path reducer and tender reducer: ready to scan, enter yardage, review cart, take payment, finalize sale, or blocked.
6h agoapps/pos/src/flow/registerSession.ts×2apps/pos/src/flow/registerSession.test.ts - ShippedREQ-POS-702
The register path must surface deterministic blockers before finalization, including empty cart, non-complete tender, disabled feature flag, and offline queue failure, without relying on native UI alerts.
6h agoapps/pos/src/flow/registerSession.ts×6apps/pos/src/flow/registerSession.test.ts - ShippedREQ-POS-703
Sale completion must enqueue a restart-durable offline mutation before printing a receipt or opening the cash drawer, so a completed tender is never lost because of hardware failure.
6h agoapps/pos/src/flow/registerSession.ts×3apps/pos/src/flow/registerSession.test.ts×2 - ShippedREQ-POS-704
Queued POS sale mutations must be JSON-serializable without bigint loss by storing minor-unit money and yardage sixteenths as base-10 strings.
6h agoapps/pos/src/flow/registerSession.ts×2apps/pos/src/flow/registerSession.test.ts - ShippedREQ-POS-705
Each queued sale mutation must carry an idempotency key scoped by tenant, device, sale id, and occurrence timestamp so reconnect sync can safely retry.
6h agoapps/pos/src/flow/registerSession.ts×2apps/pos/src/flow/registerSession.test.tsapps/pos/src/flow/saleSync.test.ts - ShippedREQ-POS-706
The queued sale mutation must include only the minimum non-PII register payload: tenant id, device id, optional cashier user id, cart line snapshots, totals, tender method, tender amounts, receipt intent, and source requirement ids.
6h agoapps/pos/src/flow/registerSession.ts×2apps/pos/src/flow/registerSession.test.ts - ShippedREQ-POS-707
Receipt printing must use the POS hardware adapter only, must produce a deterministic ESC/POS-ready print request, and must not block sale durability once the queue write succeeds.
6h agoapps/pos/src/flow/registerSession.test.ts×2apps/pos/src/flow/registerSession.ts×2 - ShippedREQ-POS-708
Cash-drawer opens after cash tender must use the sale-open reason with the queued sale id; card and store-credit tenders must not open the drawer.
6h agoapps/pos/src/flow/registerSession.ts×2apps/pos/src/flow/registerSession.test.ts - ShippedREQ-POS-709
Hardware failures during receipt print or cash-drawer open must return a cashier-safe warning while preserving the queued sale mutation for sync.
6h agoapps/pos/src/flow/registerSession.ts×2apps/pos/src/flow/registerSession.test.ts - ShippedREQ-POS-710
The register path must emit typed span-intent metadata for pos.tender and pos.receipt so the Expo runtime can bridge it to the telemetry wrapper without importing vendor SDKs.
6h agoapps/pos/src/flow/registerSession.ts×2apps/pos/src/flow/registerSession.test.ts - ShippedREQ-POS-711
The register readiness model must include sync queue status, pending mutation count, connectivity state, and a cashier-safe sync label for offline operation.
6h agoapps/pos/src/flow/registerSession.ts×2packages/core/src/storefrontPosBridgeReadiness/index.test.ts×2apps/pos/src/flow/registerSession.test.ts - ShippedREQ-POS-712
The register readiness model must include hardware status for scanner, receipt printer, cash drawer, and payment terminal without assuming any specific vendor model is present.
6h agoapps/pos/src/flow/registerSession.ts×2apps/pos/src/flow/registerSession.test.ts - ShippedREQ-POS-713
The register path must expose a compact dashboard-tile model showing register phase, pending offline sales, and blocking status for REQ-ANL-042.
6h agoapps/pos/src/flow/registerSession.ts×6apps/pos/src/flow/registerSession.test.ts×2 - ShippedREQ-POS-714
The POS package root must export the register-session contract so future Expo screens consume a stable public API instead of private flow files.
6h agoapps/pos/src/flow/registerSession.ts×3apps/pos/src/flow/registerSession.test.ts×2apps/pos/src/components/RegisterSessionStatus.test.ts+3 more - ShippedREQ-POS-715
Completed POS sales must sync through an authenticated server API that validates a JSON-safe sale payload, derives tenant identity from the Clerk organization, uses the POS sale UUID as the idempotent order id, and returns accepted or dupl…
6h agopackages/core/src/posLaunchReadiness/index.test.ts×4packages/api-contracts/src/posSaleSync.test.ts×3apps/pos/src/runtime/apiClient.test.ts×2+10 more - ShippedREQ-POS-716
POS sale sync must apply inventory authoritatively on the server by requiring a physical boltId for every fabric line, validating the bolt/SKU relationship under RLS, and decrementing remaining yardage through the atomic cut primitive in t…
6h agoapps/pos/src/flow/saleSync.test.tsapps/pos/src/runtime/registerWorkbench.test.tsapps/web/src/app/api/pos/sales/sync/route.ts+4 more - ShippedREQ-POS-717
The Expo POS web workbench must expose an offline sync-recovery panel that classifies queued, syncing, and failed sale mutations, shows pending value, age, retry state, and cashier-safe recovery guidance, and enables flush/retry actions on…
6h agoapps/pos/src/components/SyncRecoveryStatus.test.tsapps/pos/src/components/SyncRecoveryStatus.ts - ShippedREQ-POS-718
The Expo POS web workbench must expose a unified sales journal that combines durable queued sales and synced receipt previews into one audit surface with tender labels, total labels, receipt/refund affordance state, and failed-sale review…
6h agoapps/pos/src/components/SalesJournalStatus.test.tsapps/pos/src/components/SalesJournalStatus.ts - ShippedREQ-POS-719
The Expo POS web workbench must expose an inventory exception panel derived from local bolt reservations and queued sales, flagging low remaining yardage, unknown bolts, and over-reserved bolts before tender so cashiers do not unknowingly…
6h agoapps/pos/src/components/PosReleaseGapSuiteStatus.test.ts×2apps/pos/src/components/InventoryExceptionStatus.test.tsapps/pos/src/components/InventoryExceptionStatus.ts - ShippedREQ-POS-720
The Expo POS web workbench must expose a tender closeout audit panel that summarizes current staged tender legs, shift expected cash, and closeout variance without using floating-point money math.
6h agoapps/pos/src/components/TenderCloseoutAuditStatus.test.tsapps/pos/src/components/TenderCloseoutAuditStatus.ts - ShippedREQ-POS-721
The Expo POS web workbench must expose a staff handoff summary that combines register readiness, offline queue state, held carts, receipts, and completed refunds into a concise transfer checklist for the next cashier.
6h agoapps/pos/src/components/StaffHandoffStatus.test.tsapps/pos/src/components/StaffHandoffStatus.ts - ShippedREQ-POS-722
The Expo POS web workbench must expose a register command center that combines cart state, tender readiness, release readiness, offline queue state, and idle lock state into ranked cashier actions for scan, tender, queue, sync, and recover…
6h agoapps/pos/src/components/RegisterCommandCenterStatus.test.tsapps/pos/src/components/RegisterCommandCenterStatus.ts - ShippedREQ-POS-723
The Expo POS web workbench must expose an offline session durability panel that scores authenticated session continuity, network mode, offline queue health, held carts, and latest local snapshot freshness before the cashier continues offli…
6h agopackages/core/src/posLaunchReadiness/index.test.ts×3packages/core/src/posFinalizationReadiness/index.test.ts×2apps/pos/src/components/OfflineSessionDurabilityStatus.test.ts+6 more - ShippedREQ-POS-724
The Expo POS web workbench must expose a receipt issue queue that combines receipt print state, staged digital delivery jobs, and receipt reprint audit upload state so staff can recover customer receipt failures before closeout.
6h agopackages/core/src/posFinalizationReadiness/index.test.ts×9packages/core/src/posLaunchReadiness/index.test.ts×4apps/pos/src/components/PosReleaseGapSuiteStatus.test.ts×2+9 more - ShippedREQ-POS-725
The Expo POS web workbench must expose customer checkout readiness that summarizes attached customer state, store-credit availability, loyalty projection, and receipt-contact readiness before tender completion.
6h agopackages/core/src/posWorkbenchCommandReadiness/index.test.ts×7apps/pos/src/components/CustomerCheckoutReadinessStatus.test.tsapps/pos/src/components/CustomerCheckoutReadinessStatus.ts+2 more - ShippedREQ-POS-726
The Expo POS web workbench must expose a manager exception board that summarizes refunds, price overrides, line-void targets, no-sale drawer opens, and held carts so exception-heavy shifts can be reviewed before closeout or handoff.
6h agoapps/pos/src/components/ManagerExceptionBoardStatus.test.tsapps/pos/src/components/ManagerExceptionBoardStatus.tspackages/core/src/posLaunchReadiness/index.test.ts - ShippedREQ-POS-727
The Expo POS web workbench must expose a shift launch checklist that combines cashier auth, device registration, timeclock, opening float, hardware readiness, and offline queue state before a cashier starts selling.
6h agopackages/core/src/posLaunchReadiness/index.test.ts×4apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-728
The Expo POS web workbench must expose scan reliability status that combines scanner adapter readiness, active/cancelled read state, timeout outcome, last scan result, and dispatch diagnostics so staff can recover barcode entry issues quic…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-729
The Expo POS web workbench must expose tender settlement readiness that combines staged tender lines, remaining/change due, card terminal readiness, and offline queue blockers before a sale is queued.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-730
The Expo POS web workbench must expose customer display handoff readiness that combines customer-display adapter state, display payload totals, preview push count, attached customer context, and receipt contact state before checkout comple…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-731
The Expo POS web workbench must expose a closeout risk board that rolls up tender closeout, offline durability, receipt issue queue, and manager exception state into a final closeout decision.
6h agopackages/core/src/posWorkbenchCommandReadiness/index.test.ts×2apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-732
The Expo POS web workbench must expose a lane throughput board that combines active cart lines, held carts, offline queue pressure, synced receipts, busy state, and idle lock state into a cashier lane-capacity decision.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-733
The Expo POS web workbench must expose a cash control board that combines opening float, expected drawer cash, counted cash, closeout variance, no-sale drawer opens, and queued-sale blockers before shift close.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-734
The Expo POS web workbench must expose a customer recovery board that combines transaction lookup, refund flow, receipt issue queue, selected customer state, and completed refund count for post-sale service recovery.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-735
The Expo POS web workbench must expose an inventory service board that combines inventory reservation exceptions, cycle-count state, label-printer state, scale state, and offline queue pressure before cutting or printing labels.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-736
The Expo POS web workbench must expose a loyalty and stored-value board that combines selected customer, loyalty projection, store-credit suggestion, gift-card lookup, coupon state, and remaining tender amount before payment.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-737
The Expo POS web workbench must expose a peripheral operations board that combines required hardware health, optional peripheral readiness, printer adapter state, label-printer state, NFC readiness, scale readiness, and display readiness.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-738
The Expo POS web workbench must expose a training and demo readiness board that combines training-sale draft availability, demo catalog coverage, cashier authentication, device registration, and offline queue cleanliness before staff pract…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-739
The Expo POS web workbench must expose a receipt fulfillment board that combines receipt print state, receipt QR state, receipt delivery readiness, receipt issue queue state, reprint audit queue state, latest synced receipts, and printer r…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-740
The Expo POS web workbench must expose an offline recovery command board that combines connectivity state, offline queue pressure, active flush state, sync recovery state, offline durability state, and held-cart count before staff attempt…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-741
The Expo POS web workbench must expose a device operations board that combines device registration state, API runtime configuration, authenticated org context, Stripe reader mapping, hardware health, and connectivity state before a lane op…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-742
The Expo POS web workbench must expose a security controls board that combines cashier authentication, idle-lock state, manager exception state, price override state, drawer open audit count, and line-void target state before sensitive act…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-743
The Expo POS web workbench must expose a promotion and pricing board that combines coupon state, discount scan state, active price override state, applied discount amount, manager exception state, and remaining tender amount before checkou…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-744
The Expo POS web workbench must expose a post-sale audit board that combines sales journal state, synced receipt count, completed refund count, receipt reprint audit state, no-sale drawer open count, and failed queue count before closeout.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-745
The Expo POS web workbench must expose a continuity snapshot board that combines saved snapshot state, held-cart count, active cart line count, offline queue pressure, local event bus state, and completed receipt count for register restart…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-746
The Expo POS web workbench must expose a cart integrity board that combines checkout readiness, cart total audit state, cart conflict state, inventory exception state, active cart line count, and remaining tender amount before checkout han…
6h agopackages/core/src/posWorkbenchCommandReadiness/index.test.ts×2apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-747
The Expo POS web workbench must expose a tender method coverage board that combines available tender methods, selected tender method, card terminal readiness, drawer readiness, store-credit suggestion, gift-card lookup state, and staged ti…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-748
The Expo POS web workbench must expose a queue performance board that combines offline queue summary, sync recovery state, flush state, sales journal state, connectivity, and local event backlog before staff start queue recovery.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-749
The Expo POS web workbench must expose a cashier productivity board that combines cashier identity, timeclock state, active cart lines, synced receipts, completed refunds, held carts, and lane busy state for shift coaching.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-750
The Expo POS web workbench must expose a customer engagement board that combines selected customer, customer checkout readiness, loyalty projection, receipt delivery readiness, customer display state, and coupon state before customer hando…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-751
The Expo POS web workbench must expose an inventory cut readiness board that combines yardage rounding state, physical scale state, cycle-count state, inventory exception state, label printer readiness, and NFC readiness before fabric cutt…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-752
The Expo POS web workbench must expose an end-of-day command board that combines end-of-day flow state, shift summary state, cash control state, tender closeout state, post-sale audit state, and closeout risk state before shift close.
6h agopackages/core/src/posFinalizationReadiness/index.test.ts×3apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-753
The Expo POS web workbench must expose a checkout completion command board that combines cart integrity, tender settlement, tender method coverage, queue performance, receipt fulfillment, and hardware/peripheral readiness before the cashie…
6h agopackages/core/src/posFinalizationReadiness/index.test.ts×4apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-754
The Expo POS web workbench must expose a sync command health board that combines connectivity, queue performance, offline recovery, device operations, continuity snapshot, and local event backlog before staff flush or retry offline sale wo…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-755
The Expo POS web workbench must expose a register launch decision board that combines shift launch, device operations, security controls, peripheral operations, scan reliability, and training/demo readiness before a lane opens.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-756
The Expo POS web workbench must expose a payment assurance board that combines promotion/pricing state, loyalty and stored value state, customer checkout state, tender settlement state, tender method coverage, and queue health before payme…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-757
The Expo POS web workbench must expose a receipt recovery command board that combines receipt fulfillment, receipt issue queue, customer recovery, post-sale audit, printer readiness, and audit queue state before staff close a customer rece…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-758
The Expo POS web workbench must expose an inventory assurance board that combines inventory service, inventory cut readiness, cart integrity, scan reliability, queue performance, and label/NFC readiness before inventory-affecting checkout…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-759
The Expo POS web workbench must expose a customer service desk board that combines customer engagement, customer recovery, loyalty/stored value state, receipt fulfillment, transaction lookup state, and refund count for post-sale support.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-760
The Expo POS web workbench must expose a manager closeout command board that combines end-of-day command, closeout risk, cash control, security controls, manager exception state, and queue performance before managers close the register.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-761
The Expo POS web workbench must expose a critical path assurance board that combines scan reliability, cart integrity, checkout completion, payment assurance, lane throughput, and cashier productivity before staff decide the lane can proce…
6h agopackages/core/src/posWorkbenchCommandReadiness/index.test.ts×2apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-762
The Expo POS web workbench must expose an offline selling decision board that combines sync command health, offline recovery, offline durability, queue performance, cart integrity, and inventory assurance before staff continue selling with…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-763
The Expo POS web workbench must expose a hardware serviceability board that combines peripheral operations, device operations, receipt recovery, inventory assurance, scan reliability, and printer/terminal readiness before hardware-dependen…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-764
The Expo POS web workbench must expose a staff accountability board that combines cashier productivity, security controls, manager exception state, register launch decision, customer service desk, and manager closeout before shift handoff…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-765
The Expo POS web workbench must expose a closeout audit packet board that combines manager closeout, end-of-day command, receipt recovery, post-sale audit, cash control, and tender closeout before closeout records are treated as review-rea…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-766
The Expo POS web workbench must expose a customer handoff command board that combines customer engagement, payment assurance, receipt recovery, customer display handoff, customer service desk, and receipt fulfillment before the customer le…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-767
The Expo POS web workbench must expose a training mode control board that combines register launch decision, training/demo readiness, security controls, device operations, queue performance, and cashier productivity before staff practice t…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-768
The Expo POS web workbench must expose a release blocker matrix board that combines critical path assurance, offline selling decision, hardware serviceability, staff accountability, closeout audit packet, customer handoff, training mode co…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-769
The Expo POS web workbench must expose a sale floor go/no-go board that combines critical path assurance, offline selling decision, hardware serviceability, customer handoff, staff accountability, and release blocker matrix before floor le…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-770
The Expo POS web workbench must expose a network outage playbook board that combines offline selling decision, sync command health, offline recovery command, queue performance, continuity snapshot, and cart integrity before staff operate t…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-771
The Expo POS web workbench must expose a receipt counter recovery board that combines customer handoff, receipt recovery command, receipt fulfillment, customer service desk, post-sale audit, and printer readiness before staff dismiss recei…
6h agoapps/pos/src/components/WorkbenchReadinessSuiteStatus.test.ts×2apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-772
The Expo POS web workbench must expose an inventory risk command board that combines inventory assurance, inventory service, inventory cut readiness, cart integrity, offline selling decision, and scan reliability before inventory-affecting…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-773
The Expo POS web workbench must expose a cash room audit board that combines closeout audit packet, manager closeout, cash control, end-of-day command, tender closeout, and post-sale audit before cash records leave the register.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-774
The Expo POS web workbench must expose a device fleet launch board that combines hardware serviceability, device operations, peripheral operations, register launch decision, training mode control, and sync command health before a POS devic…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-775
The Expo POS web workbench must expose an associate coaching board that combines staff accountability, cashier productivity, security controls, customer engagement, training mode control, and customer service desk before manager coaching o…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-776
The Expo POS web workbench must expose a customer experience assurance board that combines customer handoff, customer engagement, payment assurance, receipt recovery, customer display handoff, and customer service desk before staff treat c…
6h agopackages/core/src/posWorkbenchCommandReadiness/index.test.ts×2apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-777
The Expo POS web workbench must expose a release war room board that combines release blocker matrix, sale floor go/no-go, network outage playbook, inventory risk command, cash room audit, and device fleet launch for a single launch-readin…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-778
The Expo POS web workbench must expose an incident escalation board that combines release blocker matrix, network outage playbook, hardware serviceability, receipt counter recovery, security controls, and manager closeout before support es…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-779
The Expo POS web workbench must expose a store opening readiness board that combines register launch decision, shift launch checklist, device operations, hardware serviceability, cash control, and training mode control before opening the l…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-780
The Expo POS web workbench must expose a store closing readiness board that combines closeout audit packet, manager closeout, cash room audit, receipt counter recovery, offline selling decision, and staff accountability before closing the…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-781
The Expo POS web workbench must expose a live lane supervisor board that combines sale floor go/no-go, lane throughput, critical path assurance, associate coaching, customer experience assurance, and incident escalation while a customer-fa…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-782
The Expo POS web workbench must expose an offline queue triage board that combines network outage playbook, sync command health, queue performance, receipt counter recovery, cash room audit, and failed queue count before staff retry offlin…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-783
The Expo POS web workbench must expose a payment recovery board that combines payment assurance, tender settlement, tender method coverage, receipt counter recovery, customer service desk, and manager exceptions before staff recover paymen…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-784
The Expo POS web workbench must expose a fabric counter assurance board that combines inventory risk command, inventory cut readiness, scan reliability, cart integrity, hardware serviceability, and queue performance before cutting fabric a…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-785
The Expo POS web workbench must expose a hardware pairing readiness board that combines device fleet launch, hardware serviceability, peripheral operations, device operations, scan reliability, and receipt counter recovery before pairing o…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-786
The Expo POS web workbench must expose a shift handoff packet board that combines staff accountability, associate coaching, store closing readiness, customer service desk, offline queue triage, and closeout audit packet before a cashier ha…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-787
The Expo POS web workbench must expose a refund authorization board that combines customer service desk, customer recovery, manager closeout, security controls, post-sale audit, and receipt counter recovery before refund work continues.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-788
The Expo POS web workbench must expose a training certification board that combines training mode control, associate coaching, store opening readiness, device fleet launch, sale floor go/no-go, and release war room before staff sign off tr…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-789
The Expo POS web workbench must expose a customer issue prevention board that combines customer experience assurance, customer handoff command, customer engagement, receipt counter recovery, payment recovery, and inventory risk command bef…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-790
The Expo POS web workbench must expose a launch rehearsal board that combines store opening readiness, release war room, device fleet launch, network outage playbook, cash room audit, and training certification before rehearsal is marked c…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-791
The Expo POS web workbench must expose a compliance evidence board that combines cash room audit, closeout audit packet, post-sale audit, security controls, incident escalation, and store closing readiness before audit evidence is consider…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-792
The Expo POS web workbench must expose an operator release cockpit board that combines release war room, live lane supervisor, offline queue triage, payment recovery, fabric counter assurance, hardware pairing readiness, shift handoff pack…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.tspackages/core/src/posFinalizationReadiness/index.test.ts - ShippedREQ-POS-793
The Expo POS web workbench must expose a register resilience board that combines operator release cockpit, sync command health, continuity snapshot, offline queue triage, network outage playbook, and device fleet launch before the register…
6h agopackages/core/src/posFinalizationReadiness/index.test.ts×4apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-794
The Expo POS web workbench must expose a tender risk board that combines payment recovery, payment assurance, tender settlement, tender method coverage, cash room audit, and manager exceptions before tender anomalies are dismissed.
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-795
The Expo POS web workbench must expose an inventory reconciliation board that combines fabric counter assurance, inventory risk command, inventory assurance, post-sale audit, queue performance, and compliance evidence before inventory disc…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-796
The Expo POS web workbench must expose a customer recovery command board that combines customer issue prevention, refund authorization, receipt counter recovery, customer service desk, customer experience assurance, and incident escalation…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-797
The Expo POS web workbench must expose a hardware incident board that combines hardware pairing readiness, hardware serviceability, device fleet launch, receipt counter recovery, incident escalation, and peripheral operations before hardwa…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-798
The Expo POS web workbench must expose a shift leader dashboard board that combines live lane supervisor, shift handoff packet, associate coaching, store opening readiness, store closing readiness, and operator release cockpit for lane-lea…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-799
The Expo POS web workbench must expose a training floor board that combines training certification, training mode control, associate coaching, customer issue prevention, hardware pairing readiness, and launch rehearsal before floor trainin…
6h agopackages/core/src/posLaunchReadiness/index.test.ts×3packages/core/src/releaseAcceptanceReadiness/index.test.ts×2apps/pos/src/components/ReleaseOperationsStatus.test.ts+2 more - ShippedREQ-POS-800
The Expo POS web workbench must expose a closeout compliance board that combines compliance evidence, store closing readiness, cash room audit, closeout audit packet, offline queue triage, and refund authorization before closeout complianc…
6h agopackages/core/src/releaseAcceptanceReadiness/index.test.ts×9packages/core/src/releaseCompletionReadiness/index.test.ts×4apps/pos/src/components/ReleaseOperationsStatus.test.ts+4 more - ShippedREQ-POS-801
The Expo POS web workbench must expose a disaster recovery drill board that combines network outage playbook, offline queue triage, continuity snapshot, device fleet launch, incident escalation, and operator release cockpit before recovery…
6h agopackages/core/src/posWorkbenchCommandReadiness/index.test.ts×8apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-802
The Expo POS web workbench must expose a release signoff packet board that combines operator release cockpit, launch rehearsal, compliance evidence, sale floor go/no-go, store opening readiness, and store closing readiness before go-live s…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-803
The Expo POS web workbench must expose a daily health pulse board that combines live lane supervisor, payment recovery, fabric counter assurance, hardware pairing readiness, customer issue prevention, and compliance evidence into a daily l…
6h agoapps/pos/src/components/WorkbenchReadinessSuiteStatus.test.ts×2apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-804
The Expo POS web workbench must expose an executive go-live command board that combines release signoff packet, daily health pulse, disaster recovery drill, shift leader dashboard, tender risk, and register resilience into the final execut…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-805
The Expo POS web workbench must expose a regional rollout readiness board that combines executive go-live command, store opening readiness, device fleet launch, training floor, disaster recovery drill, and closeout compliance before a stor…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-806
The Expo POS web workbench must expose a pilot store command board that combines regional rollout readiness, live lane supervisor, daily health pulse, hardware incident, tender risk, and inventory reconciliation before pilot expansion cont…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-807
The Expo POS web workbench must expose a multi-lane coordination board that combines register resilience, lane throughput, shift leader dashboard, cashier productivity, device operations, and hardware pairing readiness before multiple regi…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-808
The Expo POS web workbench must expose a support escalation closure board that combines hardware incident, customer recovery command, disaster recovery drill, incident escalation, compliance evidence, and tender risk before support escalat…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.tspackages/core/src/posFinalizationReadiness/index.test.ts - ShippedREQ-POS-809
The Expo POS web workbench must expose a revenue protection board that combines tender risk, payment recovery, refund authorization, cash room audit, security controls, and post-sale audit before cash or tender exposure is accepted.
6h agopackages/core/src/posFinalizationReadiness/index.test.ts×4apps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-810
The Expo POS web workbench must expose an inventory protection board that combines inventory reconciliation, fabric counter assurance, inventory risk command, inventory service, compliance evidence, and offline queue triage before inventor…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-811
The Expo POS web workbench must expose an experience protection board that combines customer recovery command, customer issue prevention, customer experience assurance, customer handoff command, receipt recovery command, and daily health p…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-812
The Expo POS web workbench must expose a store operations readiness board that combines shift leader dashboard, closeout compliance, register resilience, hardware incident, staff accountability, and manager closeout command before store op…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-813
The Expo POS web workbench must expose a release communications board that combines release signoff packet, executive go-live command, daily health pulse, incident escalation, training floor, and store opening readiness before launch commu…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-814
The Expo POS web workbench must expose a launch day command board that combines regional rollout readiness, pilot store command, multi-lane coordination, support escalation closure, revenue protection, and inventory protection into a same-…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-815
The Expo POS web workbench must expose a stabilization command board that combines launch day command, experience protection, store operations readiness, disaster recovery drill, closeout compliance, and executive go-live command before st…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.tsapps/pos/src/components/ReleaseOperationsStatus.ts - ShippedREQ-POS-816
The Expo POS web workbench must expose a release retrospective board that combines stabilization command, compliance evidence, post-sale audit, daily health pulse, inventory reconciliation, and customer recovery command before release lear…
6h agoapps/pos/src/components/ReleaseOperationsStatus.test.ts×2apps/pos/src/components/ReleaseOperationsStatus.ts×2packages/core/src/posFinalizationReadiness/index.test.ts+1 more - ShippedREQ-POS-817
The Expo POS web workbench must expose a deterministic end-to-end purchase test action that uses local sample catalog data and a cash test tender to exercise cart creation, tender staging, offline queueing, simulated accepted sync, and rec…
6h agoapps/pos/src/runtime/registerWorkbench.ts×2packages/core/src/posFinalizationReadiness/index.test.ts×2packages/core/src/releaseCompletionReadiness/index.test.ts×2+1 more - ShippedREQ-POS-818
The Expo POS web workbench must expose purchase-test evidence that shows the order ID, receipt total, post-sync queue state, and each completed step so an operator can verify the app is ready for a manual purchase test before using live au…
6h agoapps/pos/src/runtime/registerWorkbench.ts×6packages/core/src/posWorkbenchCommandReadiness/index.test.ts×5apps/pos/src/runtime/registerWorkbench.test.ts - ShippedREQ-POS-819
The Expo POS web workbench must expose a live API purchase-test readiness gate that blocks live sale-sync testing until the API origin, Clerk staff session, selected organization, device ID, registered device state, online connectivity, an…
6h agoapps/pos/src/components/WorkbenchReadinessSuiteStatus.test.ts×2apps/pos/src/runtime/registerWorkbench.ts×2apps/pos/src/runtime/registerWorkbench.test.ts - ShippedREQ-POS-820
The Expo POS web workbench must expose a live API purchase-test flow that stages a local sample-catalog cash sale into the offline queue, syncs that exact sale through /api/pos/sales/sync, and records receipt/order evidence from the API re…
6h agoapps/pos/src/runtime/registerWorkbench.ts×7apps/pos/src/runtime/registerWorkbench.test.ts×5apps/pos/src/index.test.ts×2 - ShippedREQ-POS-821
The Expo POS web workbench must expose an E2E test command center that rolls up local purchase-test evidence, live API purchase-test readiness, queued-sale state, receipt/recovery evidence, customer context, and cash-lane hardware readines…
6h agoapps/pos/src/runtime/registerWorkbench.test.ts×2apps/pos/src/runtime/registerWorkbench.ts×2 - ShippedREQ-POS-822
The Expo POS web workbench must provide a local test-lane preparation action that seeds safe workbench-only customer, cashier, timeclock, connectivity, opening-float, and cash-lane hardware state without faking Clerk authentication, select…
6h agoapps/pos/src/runtime/registerWorkbench.ts×2apps/pos/src/runtime/registerWorkbench.test.tspackages/core/src/posWorkbenchCommandReadiness/index.test.ts+1 more - ShippedREQ-POS-823
The Expo POS web workbench must expose manual E2E verification checks after live sale sync, including API order acceptance, receipt-history presence, offline queue clearance, receipt recovery readiness, and closeout safety, so a tester can…
6h agoapps/pos/src/runtime/registerWorkbench.ts×6packages/core/src/posFinalizationReadiness/index.test.ts×3packages/core/src/releaseAcceptanceReadiness/index.test.ts×3+8 more - ShippedREQ-POS-030
Devices must be enrollable to a store with per-device credentials and revocable tokens.
6h agoapps/pos/src/runtime/apiClient.test.ts×2apps/pos/src/session/types.ts×2apps/web/src/app/api/pos/runtime/route.ts×2+9 more - ShippedREQ-POS-031
Sensitive actions (refunds, price overrides, drawer opens outside a sale) must require a manager PIN or biometric step-up.
6h agoapps/pos/src/session/types.ts×3packages/events/src/domain/pos.ts×3apps/pos/src/runtime/registerWorkbench.test.ts×2+18 more - ShippedREQ-POS-501
Scaffold apps/pos as a TypeScript-first package for the React Native + Expo app (DEC-001 / REQ-POS-020). Strict TS via tsconfig.base.json, ESLint + Prettier wired to the root flat config, @bolttocart/core imported with types end-to-end, pn…
6h agoapps/pos/src/flow/criticalPath.test.tsapps/pos/src/index.tsapps/pos/src/screens/cart.ts+4 more - ShippedREQ-POS-503
Device-session abstraction (apps/pos/src/session/deviceSession.ts) and manager-PIN gate stub (apps/pos/src/session/managerGate.ts) per REQ-POS-030 / REQ-POS-031. DeviceSession wraps an injected DeviceSessionReader that the forthcoming Cler…
6h agoapps/pos/src/flow/noSaleDrawerOpen.tsapps/pos/src/hw/noopHardware.tsapps/pos/src/index.ts+6 more - ShippedREQ-POS-511
In-memory held-cart store (apps/pos/src/flow/heldCarts.ts) per REQ-POS-004 / REQ-POS-022. HeldCartStore (plain class, no framework dep) provides: park(state, label?) ??? serialises CriticalPathState via serializeCartSnapshot (REQ-POS-504),…
6h agoapps/pos/src/flow/heldCarts.test.tsapps/pos/src/flow/heldCarts.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-POS-512
End-of-day report builder + state machine (apps/pos/src/flow/endOfDayReport.ts). Pure reducer driving EndOfDayReportState union: idle | counting | confirming | complete | error. StartEndOfDayOptions: currency, openingFloatMinor, netCashSal…
6h agoapps/pos/src/components/EndOfDayStatus.test.tsapps/pos/src/components/EndOfDayStatus.tsapps/pos/src/flow/endOfDayReport.test.ts+2 more - ShippedREQ-POS-513
Refund flow state machine (apps/pos/src/flow/refundFlow.ts). Steps: idle | selecting-lines | selecting-tender | processing | complete | error. startRefund(state, cart, authorization, currency) ??? accepts ManagerAuthorization from the PIN…
6h agoapps/pos/src/flow/refundFlow.test.tsapps/pos/src/flow/refundFlow.tsapps/pos/src/flow/transactionLookup.ts+1 more - ShippedREQ-POS-514
Customer lookup module (apps/pos/src/flow/customerLookup.ts). PosApiClient interface: lookupCustomers(query: string): Promise<readonly PosCustomer[]> ??? injected; no direct fetch. PosCustomer: { customerId, displayName, email | null, phon…
6h agoapps/pos/src/components/CustomerLookupResults.test.tsapps/pos/src/components/CustomerLookupResults.tsapps/pos/src/flow/customerLookup.test.ts+3 more - ShippedREQ-POS-515
Offline queue (apps/pos/src/flow/offlineQueue.ts). OfflineQueueStorage interface: getItem/setItem/removeItem ??? injected (real: expo-secure-store; test: createInMemoryStorage()). OfflineQueueItem<T>: { id, payload, enqueuedAt: string, att…
6h agopackages/core/src/posOperationsReadiness/index.test.ts×4apps/pos/src/components/OfflineQueueStatus.test.tsapps/pos/src/components/OfflineQueueStatus.ts+4 more - ShippedREQ-POS-516
Split-tender keypad render model (apps/pos/src/components/SplitTenderKeypad.ts). SplitTenderKeypadModel: { remainingMinor, canFinalize, paidMinor, cartTotalMinor, currency, isComplete } (all amounts bigint). buildSplitTenderKeypad(state: T…
6h agoapps/pos/src/components/SplitTenderKeypad.test.tsapps/pos/src/components/SplitTenderKeypad.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-POS-517
Receipt delivery module (apps/pos/src/flow/receiptDelivery.ts). ReceiptDeliveryMethod = "email" | "sms". ReceiptDeliveryOptions: method, address, transactionAt, totalMinor: bigint, currency, tenantId, storeName. ReceiptDeliveryJobPayload:…
6h agoapps/pos/src/flow/receiptDelivery.test.tsapps/pos/src/flow/receiptDelivery.tspackages/core/src/publicExperienceReadiness/index.ts+2 more - ShippedREQ-POS-518
Discount scan handler (apps/pos/src/flow/discountScanHandler.ts). handleDiscountScan(rawPayload, isOnline) ??? parses COUPON:<code> prefix (case-insensitive, trims CR/LF); rejects with { kind: "offline-rejected", code } when isOnline=false…
6h agoapps/pos/src/cart/cartTotals.tsapps/pos/src/components/DiscountScanStatus.tsapps/pos/src/flow/discountScanHandler.test.ts+2 more - ShippedREQ-POS-523
Store-credit balance lookup module (apps/pos/src/flow/storeCreditBalance.ts). StoreCreditBalance: { customerId, balanceMinor: bigint, currency, asOf (ISO) }. StoreCreditClient interface injected. STORE_CREDIT_TTL_MS = 300_000. States: idle…
6h agoapps/pos/src/components/StoreCreditStatus.test.tsapps/pos/src/components/StoreCreditStatus.tsapps/pos/src/flow/storeCreditBalance.test.ts+2 more - ShippedREQ-POS-522
POS device registration state machine (apps/pos/src/flow/posDeviceRegistration.ts). Client-side state machine for registering a POS terminal against the pos_devices schema (REQ-ARC-513). PosDeviceProfile: { deviceId, stripeReaderId, displa…
6h agoapps/pos/src/components/DeviceRegistrationStatus.test.tsapps/pos/src/components/DeviceRegistrationStatus.tsapps/pos/src/flow/posDeviceRegistration.test.ts+2 more - ShippedREQ-POS-521
Cycle-count session flow module (apps/pos/src/flow/cycleCountSession.ts). Pure client-side state machine for the POS cycle-count workflow over the cycle_count_sessions / cycle_count_lines schema (REQ-ARC-512). States: idle | open | confirm…
6h agoapps/pos/src/components/CycleCountStatus.test.tsapps/pos/src/components/CycleCountStatus.tsapps/pos/src/flow/cycleCountSession.test.ts+2 more - ShippedREQ-POS-520
Transaction lookup module (apps/pos/src/flow/transactionLookup.ts). Retrieves a past POS transaction by receipt reference for refund initiation (REQ-POS-513). TransactionClient interface: lookupTransaction(ref: string): Promise<PastTransac…
6h agoapps/pos/src/components/TransactionLookupResult.test.tsapps/pos/src/components/TransactionLookupResult.tsapps/pos/src/flow/transactionLookup.test.ts+2 more - ShippedREQ-POS-519
Price-override flow state machine (apps/pos/src/flow/priceOverrideFlow.ts). Sensitive action per REQ-POS-031 / REQ-PRI-061 — caller must obtain a ManagerAuthorization from ManagerGate.requirePin("price-override", …) before invoking. Pure r…
6h agoapps/pos/src/cart/cartTotals.tsapps/pos/src/components/PriceOverrideStatus.test.tsapps/pos/src/components/PriceOverrideStatus.ts+4 more - ShippedREQ-POS-510
ScanDispatch module (apps/pos/src/flow/scanDispatch.ts) bridging parseScan() (REQ-POS-505) and CriticalPathState (REQ-POS-502). dispatchScan(state, rawPayload, resolver): Promise<ScanDispatchResult> returns a discriminated union: { kind: "…
6h agoapps/pos/src/flow/criticalPath.tsapps/pos/src/flow/scanDispatch.test.tsapps/pos/src/flow/scanDispatch.ts+3 more - ShippedREQ-POS-509
Tender state machine (apps/pos/src/flow/tender.ts). Pure reducer driving TenderState union: idle | selecting-method | awaiting-card-read | awaiting-cash-entry | completing | complete | error. TenderMethod = "card" | "cash" | "store-credit"…
6h agoapps/pos/src/flow/storeCreditBalance.tsapps/pos/src/flow/tender.test.tsapps/pos/src/flow/tender.ts+1 more - ShippedREQ-POS-508
Receipt line builder + 40-column ESC/POS renderer (apps/pos/src/receipt/receiptBuilder.ts). buildReceipt(cart, tenderResult, options): ReceiptModel — pure function composing: header (storeName, terminalId, transactionAt); ReceiptLine[] per…
6h agoapps/pos/src/hw/receiptPrinterExt.test.tsapps/pos/src/receipt/receiptBuilder.test.tsapps/pos/src/receipt/receiptBuilder.ts+1 more - ShippedREQ-POS-507
YardageKeypad state machine (apps/pos/src/components/YardageKeypad.tsx). Pure-TypeScript keypad for fractional yardage entry per REQ-POS-002. Reducer functions: pressDigit(state, d) appends a decimal digit to the bigint-sixteenths accumula…
6h agoapps/pos/src/components/YardageKeypad.test.tsapps/pos/src/components/YardageKeypad.tsxpackages/core/src/publicExperienceReadiness/index.ts+1 more - ShippedREQ-POS-506
CartLineList render-model builder (apps/pos/src/components/CartLineList.tsx). Pure function buildCartLineList(cart: CartValue): CartLineListModel projects each CartItem into a CartLineModel exposing: skuId (bolt scan identifier), displayNa…
6h agopackages/events/src/domain/pos.ts×2apps/pos/src/components/CartLineList.test.tsapps/pos/src/components/CartLineList.tsx+2 more - ShippedREQ-POS-505
Scanner-payload parser for the POS (apps/pos/src/scan/parser.ts) supporting REQ-POS-001 / REQ-POS-003 / REQ-POS-024 / REQ-INV-050. Decodes BOLT:<uuid> and BOLT:<uuid>:<yardage-sixteenths> bolt-label payloads from a Bluetooth HID scanner in…
6h agoapps/pos/src/hw/nfcWriter.ts×2apps/pos/src/flow/scanDispatch.tsapps/pos/src/index.ts+4 more - ShippedREQ-POS-504
Cart snapshot for the POS critical path (apps/pos/src/flow/snapshot.ts). serializeCartSnapshot(state) renders a CriticalPathState to a JSON string where every bigint (yardage sixteenths, per-yard minor price) is a decimal string and every…
6h agoapps/pos/src/flow/heldCarts.ts×2apps/pos/src/flow/snapshot.test.tsapps/pos/src/flow/snapshot.ts+1 more - ShippedREQ-POS-544
Cart-line display-string builder (apps/pos/src/cart/buildLineItem.ts). Pure buildLineItemDisplay({ designerName, collectionName }): string derives the short subtitle shown under each cart line: both populated → "Designer · Collection" (mid…
6h agoapps/pos/src/components/LineItemDisplayStatus.test.ts×2apps/pos/src/cart/buildLineItem.test.tsapps/pos/src/cart/buildLineItem.ts+1 more - ShippedREQ-POS-545
Cart totals breakdown for the POS (apps/pos/src/cart/cartTotals.ts). Pure computeCartTotals({ lines, discountMinor }): { subtotalMinor, discountMinor, taxMinor, totalMinor } collapses cart lines into the four-number breakdown the UI / rece…
6h agoapps/pos/src/receipt/buildReceiptLines.ts×2apps/pos/src/cart/cartTotals.test.tsapps/pos/src/cart/cartTotals.ts+3 more - ShippedREQ-POS-547
Yardage string → nearest-1/16-yard rounding helper (apps/pos/src/cut/roundToSixteenth.ts). Pure roundToSixteenth(input: string): bigint snaps cashier-entered yardage to the canonical 1/16-yard grid defined by REQ-INV-001. Accepts three sha…
6h agopackages/core/src/storefrontPosBridgeReadiness/index.test.ts×4apps/pos/src/components/PosReleaseGapSuiteStatus.test.tsapps/pos/src/components/PosReleaseGapSuiteStatus.ts+7 more - ShippedREQ-POS-548
BoltToCart NFC URI-record parser (apps/pos/src/scan/parseBoltTag.ts). Pure parseBoltTag(input: string): BoltTagParseResult classifies NDEF URI payloads carrying the canonical btc://bolt/<uuid> form that the mobile NFC reader emits directly…
6h agoapps/pos/src/nfc/buildBoltTagPayload.ts×3apps/pos/src/nfc/buildBoltTagPayload.test.ts×2apps/pos/src/scan/parseBoltTag.test.ts+1 more - ShippedREQ-POS-549
TenderKind enum + cashier-facing label map (apps/pos/src/tender/tenderKindLabel.ts). Defines the internal discriminator TenderKind = "card_present" | "cash" | "gift_card" | "house_credit" | "split" used by the POS tender state machine, rec…
6h agoapps/pos/src/tender/tenderKindLabel.test.tsapps/pos/src/tender/tenderKindLabel.ts - ShippedREQ-POS-502
POS critical-path skeleton (scan → yardage → cart → tender) per REQ-POS-001 / REQ-POS-002. Pure reducer (apps/pos/src/flow/criticalPath.ts) drives an immutable CriticalPathState; placeholder screen modules (apps/pos/src/screens/*.ts) are U…
6h agoapps/pos/src/index.ts×3packages/events/src/domain/pos.ts×2packages/events/src/registry.test.ts×2+7 more - ShippedREQ-POS-524
Loyalty-points earn projection (apps/pos/src/flow/loyaltyEarnProjection.ts). Pure buildLoyaltyEarnProjection(cartTotalMinor, rateNumerator, rateDenominator) bigint floor division. Guard: rateDenominator > 0n; 0n when cartTotalMinor=0n. 7 u…
6h agoapps/pos/src/components/LoyaltyEarnProjectionStatus.test.tsapps/pos/src/components/LoyaltyEarnProjectionStatus.tsapps/pos/src/flow/loyaltyEarnProjection.test.ts+3 more - ShippedREQ-POS-525
Gift-card tender leg (apps/pos/src/flow/giftCardTender.ts). Injected GiftCardClient.lookupBalance. State machine idle|entering-code|looking-up|found|insufficient|applied|error. appliedMinor = min(balance, remaining) bigint. 14 unit tests.
6h agopackages/core/src/posOperationsReadiness/index.test.ts×4packages/core/src/publicExperienceReadiness/index.test.ts×3apps/pos/src/components/GiftCardTenderStatus.ts+3 more - ShippedREQ-POS-526
Coupon application flow (apps/pos/src/flow/couponFlow.ts). Injected CouponClient.validateCoupon. State machine idle|entering|validating|applied|rejected|error. 13 unit tests.
6h agoapps/pos/src/components/CouponStatus.test.tsapps/pos/src/components/CouponStatus.tsapps/pos/src/flow/couponFlow.test.ts+1 more - ShippedREQ-POS-527
No-sale drawer-open flow (apps/pos/src/flow/noSaleDrawerOpen.ts). buildNoSaleOpenCommand(opts) validates non-empty authorizedByUserId. 8 unit tests.
6h agoapps/pos/src/flow/noSaleDrawerOpen.test.tsapps/pos/src/flow/noSaleDrawerOpen.ts - ShippedREQ-POS-528
Custom manual-entry product line (apps/pos/src/flow/customLine.ts). buildCustomLine(opts) builds CustomCartLine with skuId=CUSTOM-<uuid> and lineTotalMinor=floor(price*yardage/16n). 10 unit tests.
6h agoapps/pos/src/components/CustomLineStatus.test.ts×2apps/pos/src/index.ts×2apps/pos/src/components/CustomLineStatus.ts+3 more - ShippedREQ-POS-529
Cash-denomination change suggestion (apps/pos/src/flow/changeSuggestion.ts). computeChangeDenominations greedy bigint algorithm. US_DENOMINATIONS (8 denominations). 9 unit tests.
6h agoapps/pos/src/components/ChangeSuggestionStatus.test.tsapps/pos/src/components/ChangeSuggestionStatus.tsapps/pos/src/flow/changeSuggestion.test.ts+1 more - ShippedREQ-POS-530
Cart-line void flow (apps/pos/src/flow/lineVoidFlow.ts). applyLineVoid(cart, opts) pure function. Guards: non-empty auth token, lineIndex in range. 11 unit tests.
6h agoapps/pos/src/components/LineVoidStatus.test.tsapps/pos/src/components/LineVoidStatus.tsapps/pos/src/flow/lineVoidFlow.test.ts+2 more - ShippedREQ-POS-531
POS connectivity-status monitor (apps/pos/src/flow/connectivityMonitor.ts). Injected Fetcher. States: online/offline/degraded. onStateChange unsubscribe. 10 unit tests.
6h agoapps/pos/src/components/ConnectivityStatus.test.ts×2apps/pos/src/components/ConnectivityStatus.tsapps/pos/src/flow/connectivityMonitor.test.ts+3 more - ShippedREQ-POS-532
Offline-queue flush state machine (apps/pos/src/flow/offlineQueueFlush.ts). idle|flushing|complete|error. Pure transitions. 10 unit tests.
6h agoapps/pos/src/components/OfflineFlushStatus.test.tsapps/pos/src/components/OfflineFlushStatus.tsapps/pos/src/flow/offlineQueueFlush.test.ts+1 more - ShippedREQ-POS-533
Session idle-lock module (apps/pos/src/session/idleLock.ts). Injected clock+timer factory. recordActivity/lock/onLock/destroy. 9 unit tests.
6h agopackages/core/src/checkoutPricingReadiness/index.test.ts×4apps/pos/src/components/IdleLockStatus.test.tsapps/pos/src/components/IdleLockStatus.ts+2 more - ShippedREQ-POS-534
Staff clock-in/clock-out stub (apps/pos/src/flow/staffTimeclock.ts). clocked-out|clocked-in|error. getElapsedMs bigint ms. 10 unit tests.
6h agopackages/core/src/checkoutPricingReadiness/index.test.ts×2apps/pos/src/components/StaffTimeclockStatus.tsapps/pos/src/flow/staffTimeclock.test.ts+2 more - ShippedREQ-POS-535
POS OTel span emitter (apps/pos/src/telemetry/posTelemetry.ts). Injected SpanEmitter. pos.scan/pos.add_line/pos.tender/pos.receipt. 11 unit tests.
6h agoapps/pos/src/telemetry/posTelemetry.test.tsapps/pos/src/telemetry/posTelemetry.ts - ShippedREQ-POS-536
SKU low-stock badge (apps/pos/src/components/LowStockBadge.ts). computeStockBadge right-arrow ok|low|out. remainingYards via formatYardageMixed. 8 unit tests.
6h agoapps/pos/src/components/LowStockBadge.test.tsapps/pos/src/components/LowStockBadge.ts - ShippedREQ-POS-537
Hardware error remediation registry (apps/pos/src/hw/errorRemediation.ts). HardwareErrorCode closed union (8 codes). getRemediation(code). 6 tests covering all codes.
6h agoapps/pos/src/flow/criticalPath.test.tsapps/pos/src/hw/errorRemediation.test.tsapps/pos/src/hw/errorRemediation.ts - ShippedREQ-POS-538
Tip prompt render model (apps/pos/src/flow/tipPrompt.ts). buildTipPrompt bigint floor division. DEFAULT_TIP_PRESETS (0/15/18/20%). applyCustomTip validates >= 0n. 9 unit tests.
6h agoapps/pos/src/components/TipPromptStatus.test.tsapps/pos/src/components/TipPromptStatus.tsapps/pos/src/flow/tipPrompt.test.ts+2 more - ShippedREQ-POS-539
Float denomination entry (apps/pos/src/flow/floatEntry.ts). floatEntryInit/setDenominationCount/clearFloat pure reducers. bigint totalMinor. 10 unit tests.
6h agopackages/core/src/posOperationsReadiness/index.test.ts×4apps/pos/src/components/FloatEntryStatus.test.tsapps/pos/src/components/FloatEntryStatus.ts+3 more - ShippedREQ-POS-540
POS search-result ranker (apps/pos/src/flow/skuRanker.ts). scoreSkuResult 100/80/60/40/20/0. rankSkuResults stable descending sort. 13 unit tests.
6h agoapps/pos/src/flow/skuRanker.test.ts×2apps/pos/src/components/LoyaltyPointsDisplay.test.tsapps/pos/src/flow/skuRanker.ts - ShippedREQ-POS-541
No-sale drawer-open flow (apps/pos/src/flow/noSaleFlow.ts) with states idle | selecting-reason | confirming | opened | error, manager-authorization guard on startNoSale, reason selection + confirmation transitions, cancelNoSale from non-op…
6h agoapps/pos/src/components/NoSaleFlowStatus.test.tsapps/pos/src/components/NoSaleFlowStatus.tsapps/pos/src/flow/noSaleFlow.test.ts - ShippedREQ-POS-542
Coupon-application render model (apps/pos/src/flow/couponApplication.ts) wraps handleDiscountScan + computeDiscountMinor into a pure state machine (idle | scanning | decoded | verifying | applied | rejected | error) and includes CartWithCo…
6h agoapps/pos/src/cart/cartTotals.tsapps/pos/src/components/CouponApplicationStatus.test.tsapps/pos/src/components/CouponApplicationStatus.ts+1 more - ShippedREQ-POS-543
Entitlement-selection render model (apps/pos/src/flow/entitlementSelector.ts) with states idle | loaded | selected | applied, expiry-aware selection (nowIso guard), bigint discount projection via computeDiscountMinor, and backward-compatib…
6h agoapps/pos/src/components/EntitlementSelectorStatus.test.tsapps/pos/src/components/EntitlementSelectorStatus.tsapps/pos/src/flow/entitlementSelector.test.ts - ShippedREQ-POS-550
Printed-receipt line-array builder (apps/pos/src/receipt/buildReceiptLines.ts). Pure buildReceiptLines(input) returns a readonly string[] of 40-column rows (RECEIPT_WIDTH = 40) ready to feed directly to a thermal-printer adapter's printLin…
6h agoapps/pos/src/components/ReceiptLinesStatus.test.tsapps/pos/src/components/ReceiptLinesStatus.tsapps/pos/src/receipt/buildReceiptLines.test.ts+1 more - ShippedREQ-POS-551
POS idle-timeout timer (apps/pos/src/session/idleTimeout.ts). Pure dependency-injected timer: createIdleTimer({ host, timeoutMs?, onIdle }) returns an IdleTimer controller with start() / recordActivity() / stop() and observable status ("ar…
6h agoapps/pos/src/components/PosReleaseGapSuiteStatus.test.ts×2apps/pos/src/session/idleTimeout.ts×2apps/pos/src/components/IdleTimeoutStatus.test.ts+2 more - ShippedREQ-POS-552
Persisted held carts must be supported by a POS storage wrapper around the existing held-cart state, using an injected string key-value storage interface with no Expo/runtime imports. The wrapper stores serialized cart snapshots, lists hol…
6h agoapps/pos/src/components/PersistedHeldCartStatus.test.tsapps/pos/src/components/PersistedHeldCartStatus.tsapps/pos/src/index.ts - ShippedREQ-POS-553
The POS must include a pure receipt-reprint flow for completed transactions. The flow accepts a looked-up completed transaction and an injected receipt printer, exposes states for idle, ready, printing, complete, and error, guards against…
6h agoapps/pos/src/components/ReceiptReprintStatus.test.tsapps/pos/src/components/ReceiptReprintStatus.tsapps/pos/src/flow/receiptReprint.test.ts+3 more - ShippedREQ-POS-556
POS scan-dispatch status projection (apps/pos/src/components/ScanDispatchStatus.ts). Pure UI-runtime-free helper for the existing scanDispatch result union that maps added, yardage-hint-updated, parse-error, and resolve-error outcomes to c…
6h agoapps/pos/src/components/ScanDispatchStatus.test.tsapps/pos/src/components/ScanDispatchStatus.ts - ShippedREQ-POS-565
POS receipt-delivery queue status projection (apps/pos/src/components/ReceiptDeliveryStatus.ts). Pure UI-runtime-free helper for the existing prepareReceiptDelivery flow that maps print, email, and SMS receipt choices into cashier-facing q…
6h agoapps/pos/src/components/ReceiptDeliveryStatus.test.ts×2apps/pos/src/components/ReceiptDeliveryStatus.ts - ShippedREQ-POS-569
POS manager-gate attempt status projection (apps/pos/src/components/ManagerGateStatus.ts). Pure UI-runtime-free helper for the existing ManagerGateResult and ManagerGateDenialReason types that maps granted, mismatch, locked-out, and no-ver…
6h agopackages/core/src/posOperationsReadiness/index.test.ts×4apps/pos/src/components/ManagerGateStatus.test.ts×2apps/pos/src/components/ManagerGateStatus.ts - ShippedREQ-POS-555
POS gift-card balance lookup status projection (apps/pos/src/components/GiftCardBalanceStatus.ts). Pure UI-runtime-free helper for the existing giftCardBalance flow that renders idle, looking-up, found, not-found, and error states into cas…
6h agoapps/pos/src/components/GiftCardBalanceStatus.ts - ShippedREQ-POS-554
POS NFC write flow status projection (apps/pos/src/components/NfcWriteStatus.ts). Pure UI-runtime-free helper for the existing nfcWriteFlow state machine that maps each step (idle, confirming, writing, complete, error) to cashier-facing la…
6h agopackages/core/src/posOperationsReadiness/index.test.ts×4apps/pos/src/components/NfcWriteStatus.test.tsapps/pos/src/components/NfcWriteStatus.ts - ShippedREQ-POS-557
POS shift-summary receipt-line status projection (apps/pos/src/components/ShiftSummaryLinesStatus.ts). Pure UI-runtime-free helper for the existing shiftSummaryLines receipt builder that exposes line count, 40-column width health, cash/car…
6h agoapps/pos/src/components/ShiftSummaryLinesStatus.test.tsapps/pos/src/components/ShiftSummaryLinesStatus.ts - ShippedREQ-POS-558
POS critical-path status projection (apps/pos/src/components/CriticalPathStatus.ts). Pure UI-runtime-free helper for the existing CriticalPathState reducer that maps scan, yardage, cart, and tender steps to cashier-facing labels, primary n…
6h agoapps/pos/src/components/CriticalPathStatus.test.tsapps/pos/src/components/CriticalPathStatus.ts - ShippedREQ-POS-559
POS cart-snapshot restore status projection (apps/pos/src/components/CartSnapshotStatus.ts). Pure UI-runtime-free helper around the existing cart snapshot serializer/deserializer that maps save-ready, restored, empty, incompatible, and inv…
6h agoapps/pos/src/components/CartSnapshotStatus.test.tsapps/pos/src/components/CartSnapshotStatus.ts - ShippedREQ-POS-560
POS SKU-ranker explanation status projection (apps/pos/src/components/SkuRankerStatus.ts). Pure UI-runtime-free helper for the existing SKU search ranker that maps a query and result list to ranked display rows with integer score, match re…
6h agoapps/pos/src/components/SkuRankerStatus.test.ts×2apps/pos/src/components/SkuRankerStatus.ts - ShippedREQ-POS-561
POS customer-display payload status projection (apps/pos/src/components/CustomerDisplayStatus.ts). Pure UI-runtime-free helper for the existing buildPosDisplayPayload customer-facing display payload that maps cart total, item count, curren…
6h agoapps/pos/src/components/CustomerDisplayStatus.test.ts×2apps/pos/src/components/CustomerDisplayStatus.ts - ShippedREQ-POS-562
POS physical-scale yardage suggestion status projection (apps/pos/src/components/PhysicalScaleStatus.ts). Pure UI-runtime-free helper for the existing physical-scale reading and buildYardageSuggestionFromWeight function that maps ready, no…
6h agoapps/pos/src/components/PhysicalScaleStatus.test.ts×2apps/pos/src/components/PhysicalScaleStatus.ts - ShippedREQ-POS-563
POS hardware runbook status projection (apps/pos/src/components/HardwareRunbookStatus.ts). Pure UI-runtime-free helper for the existing hardware remediation registry and runbook URL builder that maps a HardwareErrorCode to cashier-facing r…
6h agoapps/pos/src/components/HardwareRunbookStatus.test.ts×2apps/pos/src/components/HardwareRunbookStatus.ts - ShippedREQ-POS-564
POS scanner-timeout outcome status projection (apps/pos/src/components/ScannerTimeoutStatus.ts). Pure UI-runtime-free helper for the existing scanner-timeout flow that maps a scan result string, timeout/null result, timeout window, and opt…
6h agoapps/pos/src/components/ScannerTimeoutStatus.test.ts×2apps/pos/src/components/ScannerTimeoutStatus.ts - ShippedREQ-POS-566
POS refund-flow status projection (apps/pos/src/components/RefundFlowStatus.ts). Pure UI-runtime-free helper for the existing RefundFlowState reducer that maps idle, selecting-lines, selecting-tender, processing, complete, and error states…
6h agoapps/pos/src/components/RefundFlowStatus.test.ts×2apps/pos/src/components/RefundFlowStatus.ts - ShippedREQ-POS-567
POS tender-flow status projection (apps/pos/src/components/TenderFlowStatus.ts). Pure UI-runtime-free helper for the existing TenderState reducer that maps idle, selecting-method, awaiting-card-read, awaiting-cash-entry, completing, comple…
6h agoapps/pos/src/components/TenderFlowStatus.test.ts×2apps/pos/src/components/TenderFlowStatus.ts - ShippedREQ-POS-568
POS device-session status projection (apps/pos/src/components/DeviceSessionStatus.ts). Pure UI-runtime-free helper for the existing DeviceSessionSnapshot and DeviceSessionInfo types that maps valid, not-enrolled, revoked, expired, and offl…
6h agoapps/pos/src/components/DeviceSessionStatus.test.ts×2apps/pos/src/components/DeviceSessionStatus.tspackages/core/src/posOperationsReadiness/index.test.ts - ShippedREQ-POS-570
POS local-event-bus snapshot status projection (apps/pos/src/components/LocalEventBusStatus.ts). Pure UI-runtime-free helper for the existing LocalPosEvent snapshot shape that maps an immutable event snapshot into cashier/developer-facing…
6h agoapps/pos/src/components/LocalEventBusStatus.test.ts×2apps/pos/src/components/LocalEventBusStatus.ts - ShippedREQ-POS-571
POS connectivity-monitor status projection (apps/pos/src/components/ConnectivityMonitorStatus.ts). Pure UI-runtime-free helper for the existing ConnectivityState monitor shape that maps online, degraded, and offline states plus poll-window…
6h agoapps/pos/src/components/ConnectivityMonitorStatus.test.ts×2apps/pos/src/components/ConnectivityMonitorStatus.ts - ShippedREQ-POS-573
POS receipt-print job status projection (apps/pos/src/components/ReceiptPrintJobStatus.ts). Pure UI-runtime-free helper for the existing PrintRequest and HardwareResult receipt-printer contract that maps queued, printing, printed, failed,…
6h agoapps/pos/src/components/ReceiptPrintJobStatus.test.tsapps/pos/src/components/ReceiptPrintJobStatus.ts - ShippedREQ-POS-574
POS receipt QR-code print status projection (apps/pos/src/components/ReceiptQrCodeStatus.ts). Pure UI-runtime-free helper for the existing ReceiptPrinter.printQrCode(data, size) contract that maps idle, queued, printing, printed, and faile…
6h agoapps/pos/src/components/ReceiptQrCodeStatus.test.tsapps/pos/src/components/ReceiptQrCodeStatus.ts - ShippedREQ-POS-575
POS receipt text-print status projection (apps/pos/src/components/ReceiptTextPrintStatus.ts). Pure UI-runtime-free helper for the existing ReceiptPrinter.printText(lines) contract that maps idle, queued, printing, printed, and failed prefo…
6h agoapps/pos/src/components/ReceiptTextPrintStatus.test.tsapps/pos/src/components/ReceiptTextPrintStatus.ts - ShippedREQ-POS-576
POS cash-drawer open-reason status projection (apps/pos/src/components/CashDrawerOpenReasonStatus.ts). Pure UI-runtime-free helper for the existing CashDrawerOpenReason contract that maps sale, no-sale, and manager-override drawer-open rea…
6h agoapps/pos/src/components/CashDrawerOpenReasonStatus.ts - ShippedREQ-POS-577
POS scanner-cancellation status projection (apps/pos/src/components/ScannerCancellationStatus.ts). Pure UI-runtime-free helper for the existing ScannerCancellationToken contract that maps idle, active, cancelled, completed, and failed scan…
6h agoapps/pos/src/components/ScannerCancellationStatus.ts - ShippedREQ-POS-578
POS cash-drawer last-opened status projection (apps/pos/src/components/CashDrawerLastOpenedStatus.ts). Pure UI-runtime-free helper for the existing CashDrawer.lastOpenedAt() result that maps never-opened, recent, stale, future-clock, and i…
6h agoapps/pos/src/components/CashDrawerLastOpenedStatus.ts - ShippedREQ-POS-579
POS cash-drawer open-result status projection (apps/pos/src/components/CashDrawerOpenResultStatus.ts). Pure UI-runtime-free helper for the existing HardwareResult returned by CashDrawer.open(reason) that maps idle/no-result, opening, opene…
6h agoapps/pos/src/components/CashDrawerOpenResultStatus.ts - ShippedREQ-POS-580
POS cash-drawer shift-close checklist status projection (apps/pos/src/components/CashDrawerShiftCloseStatus.ts). Pure UI-runtime-free helper for caller-provided drawer shift-close state that maps closeout step, physical drawer status, last…
6h agoapps/pos/src/components/CashDrawerShiftCloseStatus.ts - ShippedREQ-POS-581
POS cash-drawer variance-review status projection (apps/pos/src/components/CashDrawerVarianceReviewStatus.ts). Pure UI-runtime-free helper for caller-provided drawer expected/count cash amounts and reviewer state that maps balanced, under,…
6h agoapps/pos/src/components/CashDrawerVarianceReviewStatus.ts - ShippedREQ-POS-582
POS cash-drawer safe-drop status projection (apps/pos/src/components/CashDrawerSafeDropStatus.ts). Pure UI-runtime-free helper for caller-provided safe-drop recommendation and register drawer-cash amounts that maps not-needed, recommended,…
6h agoapps/pos/src/components/CashDrawerSafeDropStatus.ts - ShippedREQ-POS-583
POS cash-drawer safe-drop receipt status projection (apps/pos/src/components/CashDrawerSafeDropReceiptStatus.ts). Pure UI-runtime-free helper for caller-provided safe-drop receipt metadata and print-result state that maps idle, preparing,…
6h agoapps/pos/src/components/CashDrawerSafeDropReceiptStatus.tspackages/core/src/posOperationsReadiness/index.test.ts - ShippedREQ-POS-584
POS cash-drawer safe-drop custody status projection (apps/pos/src/components/CashDrawerSafeDropCustodyStatus.ts). Pure UI-runtime-free helper for caller-provided safe-drop custody metadata that maps unrecorded, needs-envelope, needs-witnes…
6h agopackages/core/src/posOperationsReadiness/index.test.ts×4apps/pos/src/components/CashDrawerSafeDropCustodyStatus.ts - ShippedREQ-POS-585
POS cash-drawer safe-drop audit status projection (apps/pos/src/components/CashDrawerSafeDropAuditStatus.ts). Pure UI-runtime-free helper for caller-provided safe-drop audit metadata that maps missing-record, draft, pending-manager-review,…
6h agoapps/pos/src/components/CashDrawerSafeDropAuditStatus.ts - ShippedREQ-POS-586
POS cash-drawer safe-drop deposit-batch status projection (apps/pos/src/components/CashDrawerSafeDropDepositBatchStatus.ts). Pure UI-runtime-free helper for caller-provided safe-drop deposit-batch metadata that maps unqueued, queued, ready…
6h agoapps/pos/src/components/CashDrawerSafeDropDepositBatchStatus.ts - ShippedREQ-POS-587
POS cash-drawer safe-drop bank-deposit handoff status projection (apps/pos/src/components/CashDrawerSafeDropBankDepositStatus.ts). Pure UI-runtime-free helper for caller-provided safe-drop bank-deposit handoff metadata that maps not-starte…
6h agoapps/pos/src/components/CashDrawerSafeDropBankDepositStatus.ts - ShippedREQ-POS-588
POS cash-drawer safe-drop exception-resolution status projection (apps/pos/src/components/CashDrawerSafeDropExceptionResolutionStatus.ts). Pure UI-runtime-free helper for caller-provided safe-drop exception metadata that maps none, open, i…
6h agoapps/pos/src/components/CashDrawerSafeDropExceptionResolutionStatus.ts - ShippedREQ-POS-589
POS cash-drawer safe-drop reconciliation status projection (apps/pos/src/components/CashDrawerSafeDropReconciliationStatus.ts). Pure UI-runtime-free helper for caller-provided safe-drop reconciliation metadata that maps not-started, matchi…
6h agoapps/pos/src/components/CashDrawerSafeDropReconciliationStatus.ts - ShippedREQ-POS-590
POS cash-drawer safe-drop compliance-report status projection (apps/pos/src/components/CashDrawerSafeDropComplianceReportStatus.ts). Pure UI-runtime-free helper for caller-provided safe-drop compliance-report metadata that maps not-started…
6h agoapps/pos/src/components/CashDrawerSafeDropComplianceReportStatus.ts - ShippedREQ-POS-591
POS receipt-reprint audit record builder (apps/pos/src/flow/receiptReprintAudit.ts). Pure helper for completed receipt-reprint flow states that returns audit-safe metadata for pos.receipt.reprinted, including transaction ID, receipt refere…
6h agoapps/pos/src/flow/receiptReprintAudit.test.tsapps/pos/src/flow/receiptReprintAudit.ts - ShippedREQ-POS-592
POS receipt-reprint audit status projection (apps/pos/src/components/ReceiptReprintAuditStatus.ts). Pure UI-runtime-free helper for receipt-reprint audit outcomes that maps idle, recording, recorded, and error states into cashier/manager-f…
6h agoapps/pos/src/components/ReceiptReprintAuditStatus.test.tsapps/pos/src/components/ReceiptReprintAuditStatus.ts - ShippedREQ-POS-593
POS receipt-reprint audit queue status projection (apps/pos/src/components/ReceiptReprintAuditQueueStatus.ts). Pure UI-runtime-free helper for caller-provided receipt-reprint audit queue metadata that maps empty, queued, uploading, uploade…
6h agoapps/pos/src/components/ReceiptReprintAuditQueueStatus.test.tsapps/pos/src/components/ReceiptReprintAuditQueueStatus.ts - ShippedREQ-POS-594
POS receipt-reprint audit public exports (apps/pos/src/index.ts). The @bolttocart/pos package root must export the receipt-reprint audit status and audit queue status projection builders plus their public model/input/action types so Expo s…
6h agopackages/core/src/storefrontPosBridgeReadiness/index.test.ts×4apps/pos/src/index.test.tsapps/pos/src/index.ts - ShippedREQ-POS-595
(AI-proposed; parent REQ-POS-006, REQ-POS-022, REQ-POS-023, REQ-POS-591) POS receipt-reprint audit queue reducer (apps/pos/src/flow/receiptReprintAuditQueue.ts). Pure helper for staging completed receipt-reprint audit records locally befor…
6h agoapps/pos/src/flow/receiptReprintAuditQueue.test.tsapps/pos/src/index.test.tsapps/pos/src/index.ts - ShippedREQ-POS-596
POS cart-edit public exports (apps/pos/src/index.ts). AI-proposed clarification of REQ-POS-004 and REQ-POS-502: the @bolttocart/pos package root must export the existing pure cart-edit reducers removeCartLine and updateCartLineYardage so E…
6h agoapps/pos/src/components/CartEditStatus.tsapps/pos/src/index.test.tsapps/pos/src/index.ts - ShippedREQ-POS-597
POS line-item display public exports (apps/pos/src/index.ts). AI-proposed clarification of REQ-POS-004, REQ-POS-502, and REQ-POS-544: the @bolttocart/pos package root must export the existing pure line-item display status builder plus its…
6h agoapps/pos/src/index.test.tsapps/pos/src/index.ts - ShippedREQ-POS-598
POS cart-edit status projection (apps/pos/src/components/CartEditStatus.ts). AI-proposed clarification of REQ-POS-004, REQ-POS-502, and REQ-POS-596: the POS must expose a pure UI-runtime-free projection for the mid-transaction line edit su…
6h agoapps/pos/src/components/CartEditStatus.test.tsapps/pos/src/components/CartEditStatus.tsapps/pos/src/index.test.ts - ShippedREQ-POS-599
POS receipt-reprint audit queue status adapter (apps/pos/src/components/ReceiptReprintAuditQueueStatus.ts). AI-proposed clarification of REQ-POS-006, REQ-POS-022, REQ-POS-023, REQ-POS-593, and REQ-POS-595: the POS package must provide a pu…
6h agoapps/pos/src/components/ReceiptReprintAuditQueueStatus.test.tsapps/pos/src/components/ReceiptReprintAuditQueueStatus.tsapps/pos/src/index.test.ts - ShippedREQ-POS-600
POS checkout-readiness status projection (apps/pos/src/components/CheckoutReadinessStatus.ts). AI-proposed clarification of REQ-POS-001, REQ-POS-005, and REQ-POS-021: before a cashier can leave cart review for tender selection, the POS mus…
6h agopackages/core/src/posOperationsReadiness/index.test.ts×3apps/pos/src/components/CheckoutReadinessStatus.test.tsapps/pos/src/components/CheckoutReadinessStatus.ts+3 more - ShippedREQ-POS-601
POS cart-line list public exports (apps/pos/src/index.ts). AI-proposed clarification of REQ-POS-004, REQ-POS-506, and REQ-POS-544: the @bolttocart/pos package root must export the existing pure cart-line list projection and designer/collec…
6h agopackages/core/src/posOperationsReadiness/index.test.ts×2apps/pos/src/index.test.tsapps/pos/src/index.ts - ShippedREQ-POS-602
POS cash-drawer open status public exports (apps/pos/src/index.ts). AI-proposed clarification of REQ-POS-024, REQ-POS-031, REQ-POS-576, REQ-POS-578, and REQ-POS-579: the @bolttocart/pos package root must export the existing pure cash-drawe…
6h agoapps/pos/src/index.test.tsapps/pos/src/index.ts - ShippedREQ-POS-603
POS SKU-search public exports (apps/pos/src/index.ts). AI-proposed clarification of REQ-POS-003 and REQ-POS-026: the @bolttocart/pos package root must export the existing pure SKU-search state machine and SKU-search result projection so Ex…
6h agoapps/pos/src/index.ts×2apps/pos/src/index.test.ts - ShippedREQ-POS-604
POS cart totals public exports (apps/pos/src/index.ts). AI-proposed clarification of REQ-POS-004, REQ-POS-502, REQ-POS-545, and REQ-POS-550: the @bolttocart/pos package root must export the existing pure cart totals helper, stub tax consta…
6h agoapps/pos/src/index.test.tsapps/pos/src/index.ts - ShippedREQ-POS-605
(AI-proposed; parent REQ-POS-001, REQ-POS-004, REQ-POS-022, REQ-POS-023, REQ-SYN-011, REQ-SYN-020) POS cart conflict status projection (apps/pos/src/components/CartConflictStatus.ts). Pure UI-runtime-free helper for the reconciliation bann…
6h agoapps/pos/src/components/CartConflictStatus.test.ts×2apps/pos/src/components/CartConflictStatus.tsapps/pos/src/index.test.ts+1 more - ShippedREQ-POS-606
POS scan-dispatch public exports (apps/pos/src/index.ts). AI-proposed clarification of REQ-POS-001, REQ-POS-003, REQ-POS-020, REQ-POS-502, REQ-POS-510, and REQ-POS-556: the @bolttocart/pos package root must export the existing pure scan-di…
6h agoapps/pos/src/index.ts×2packages/core/src/storefrontPosBridgeReadiness/index.test.ts×2apps/pos/src/components/PosReleaseGapSuiteStatus.test.ts+3 more
REQ-ECOE-commerce Storefront86 shipped0 wip6 todo93%
- ShippedREQ-ECO-001
Each store gets a storefront on a branded subdomain and optionally a custom domain with SSL provisioned automatically (see �29). The apex bolttocart.com hosts only platform marketing / sign-up surfaces ??? storefront paths (/shop, /cart, /…
6h agopackages/core/src/customerCommerceReadiness/index.test.ts×2packages/core/src/retailRuntimeReadiness/index.test.ts×2packages/testing/src/catalog.test.ts×2+10 more - ShippedREQ-ECO-002
Storefronts must share the same inventory, pricing, and promotion engines as the POS (�3.1, �7).
6h agopackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-ECO-003
Support yardage-based purchasing with minimum cut (default � yard) and increment (default � yard) configurable per product.
48m agoapps/web/src/components/AddToCartForm.tsx×4apps/web/src/app/(storefront)/cart/actions.ts×2apps/web/src/app/globals.css×2+10 more - ShippedREQ-ECO-004
Product detail pages must show real-time availability, remnant availability, related kits/patterns, and substitutions when out of stock.
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsx×3apps/web/src/lib/storefront.ts×2packages/db/src/repositories/skus.ts×2+10 more - ShippedREQ-ECO-005
Checkout must support guest and authenticated purchase, address validation, shipping method selection, tax computation, payment, and order confirmation within the UX latency targets in �28.
48m agoapps/web/src/app/(storefront)/cart/actions.ts×2apps/web/src/app/(storefront)/cart/page.tsxapps/web/src/app/(storefront)/events/[slug]/actions.ts+8 more - ShippedREQ-ECO-006
Order workflow: Received ??? Cut ??? Pack ??? Ship ??? Delivered, with partial fulfillment permitted.
48m agoapps/web/src/app/(storefront)/cart/confirmation/page.tsxpackages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-ECO-007
Storefront pages must be server-rendered or statically pre-rendered for SEO, with structured data (Product, Offer, Breadcrumb, Event) and auto-generated sitemaps.
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsx×3apps/web/src/lib/dropStructuredData.ts×2apps/web/src/app/(storefront)/shop/[slug]/opengraph-image.tsx+7 more - ShippedREQ-ECO-008
Optional one-way integrations with external storefronts (Shopify, WooCommerce) must be available as add-ons; BoltToCart remains the inventory source of truth.
6h agopackages/core/src/retailRuntimeReadiness/index.test.ts×3packages/core/src/customerCommerceReadiness/index.tspackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-ECO-500
The /shop/[slug] product detail page's Offer JSON-LD must carry a UnitPriceSpecification declaring unitCode: "YRD" (UN/CEFACT yard) with a referenceQuantity of 1 yard for unitOfSale === "by_yard" SKUs, so Google Shopping / Merchant / Bing…
6h agopackages/core/src/commerceReadiness/index.test.ts×2packages/core/src/commerceReadiness/index.ts×2apps/web/src/lib/productStructuredData.test.ts+3 more - ShippedREQ-ECO-501
The /shop index "Browse by???" nav must list every facet-index sibling (/shop/designers, /shop/collections, /shop/colors, /shop/fibers, /shop/widths ??? see REQ-SRC-500 / REQ-SRC-501) in a single alphabetized data-driven list so new facet…
6h agoapps/web/src/app/(storefront)/shop/page.tsx×2packages/core/src/commerceReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts+1 more - ShippedREQ-ECO-502
The /shop/[slug] PDP must render a RelatedItemsStrip below the soft-match "Related fabrics" shelf, returning up to 6 SKUs matching the seed on both designer AND fiberContent. Lives in a dedicated loadRelatedByDesignerAndFiber loader so the…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxapps/web/src/components/RelatedItemsStrip.tsxapps/web/src/lib/productStructuredData.ts+4 more - ShippedREQ-ECO-503
The /shop PLP must render a ShopEmptyState block when the filter-and-sort combination lands on zero SKUs. The block surfaces (1) the current active filter chips as one-tap "remove this facet" links (reusing ActiveFilterChips so single-chip…
6h agoapps/web/src/components/ShopEmptyState.tsxpackages/core/src/commerceReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts+1 more - ShippedREQ-ECO-504
The /shop/[slug] PDP JSON-LD must include Product.isRelatedTo as an array of up to 6 @id references pointing at the same roster rendered in the RelatedItemsStrip (REQ-ECO-502) ??? keeping the structured-data claim in lockstep with the visi…
6h agoapps/web/src/lib/productStructuredData.ts×2apps/web/src/lib/productStructuredData.test.tspackages/core/src/commerceReadiness/index.ts+2 more - ShippedREQ-ECO-505
The /shop/[slug] route must serve a per-slug OpenGraph card at /shop/{slug}/opengraph-image (Next.js metadata-convention colocated asset) that renders the product name, per-yard price, designer, and fiber content inside the platform OgBolt…
6h agoapps/web/src/lib/productStructuredData.test.ts×4apps/web/src/app/(storefront)/shop/[slug]/opengraph-image.tsx×2apps/web/src/lib/productStructuredData.ts×2+4 more - ShippedREQ-ECO-506
The /shop/[slug] PDP BreadcrumbList JSON-LD must be extended from "Home ??? Shop ??? [Product]" to include the SKU's collection (when non-null) as an intermediate crumb pointing at /shop?collection=<value> and the designer (when non-null)…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsx×3packages/core/src/commerceReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts+1 more - ShippedREQ-ECO-507
The /shop/collections route exposes a facet-index page listing every fabric collection name (with current cuttable-SKU counts) as a bookmarkable discovery surface, deep-linking to /shop?collection=<value> for the filtered catalog view. Mir…
6h agoapps/web/src/app/(storefront)/shop/collections/page.tsxpackages/core/src/commerceReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts+1 more - ShippedREQ-ECO-509
The /shop/colors route exposes a color facet-index page listing every color tag in the catalog (with current cuttable-SKU counts and visual swatch dots) as a bookmarkable discovery surface, deep-linking to /shop?color=<value> for the filte…
6h agoapps/web/src/app/(storefront)/shop/colors/page.tsxpackages/core/src/commerceReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts+1 more - ShippedREQ-ECO-510
The tenant sitemap (sitemap.ts tenant branch) must include /shop/fibers, /shop/widths, and /events/instructors as static entries so these discovery surfaces (REQ-SRC-500, REQ-SRC-501, REQ-EVT-505) are visible to crawlers. Each gets priorit…
6h agoapps/web/src/app/sitemap.tspackages/core/src/commerceReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts+1 more - ShippedREQ-ECO-511
The /visualizer route must serve a colocated opengraph-image.tsx (Edge runtime, no DB call) rendering "Quilt Designer" / "Design. Preview. Add to cart." inside the platform OgBoltCard frame. Page metadata.openGraph.images references this r…
6h agoapps/web/src/app/(storefront)/shop/collections/opengraph-image.tsxapps/web/src/app/(storefront)/shop/colors/opengraph-image.tsxapps/web/src/app/(storefront)/shop/designers/opengraph-image.tsx+7 more - ShippedREQ-ECO-512
The /visualizer page must emit a JSON-LD @graph with a WebPage node and BreadcrumbList (Home ??? Quilt Designer) to match the structured-data posture of /drops and /events. ItemList is intentionally omitted ??? the fabric palette is client…
6h agopackages/core/src/customerCommerceReadiness/index.test.ts×3apps/web/src/app/(storefront)/visualizer/page.tsxpackages/core/src/commerceReadiness/index.ts+2 more - ShippedREQ-ECO-518
The /shop PLP header gains a "New arrivals" link pointing to /shop?new=1 alongside the RSS autodiscovery link (REQ-ECO-518).
6h agoapps/web/src/app/(storefront)/shop/page.tsxpackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-545
Tenant storefronts must render /shop through a schema-driven theme/template engine backed by the store's persisted storefront_theme_config. The engine must support six fabric-retail templates (boutique, modern, designer, discount, workshop…
6h agopackages/core/src/commerceReadiness/index.test.ts×2packages/core/src/storefrontPosBridgeReadiness/index.test.ts×2apps/web/src/lib/storefrontThemeConfig.test.ts+6 more - ShippedREQ-ECO-521
The /shop/[slug] PDP SpecList Width row links to /shop/widths when bolt.widthInches is non-null, doubling it as a discovery path. Value displays as N" (WOF). Same href + aria-label as Designer and Collection rows. No DB change.
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxpackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-523
Cart summary Shipping row gains a truck icon for visual distinction from the yardage/items rows (REQ-ECO-523).
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-524
The /cart order-summary shows a full breakdown when a coupon is applied: Subtotal row, coupon-discount line (code + negative emerald amount), and a Total row (subtotal minus discountMinor, bigint). No extra rows when no coupon is active.
2h agoapps/web/src/app/(storefront)/cart/page.tsxapps/web/src/app/globals.csspackages/core/src/commerceReadiness/index.ts+1 more - ShippedREQ-ECO-525
The /shop/[slug] PDP SpecList emits a Fiber row when fiberContent is non-null. The row label ("Fiber") links to /shop/fibers and the value links to /shop?fiber=<value>, matching the Collection row pattern (REQ-ECO-506). No DB change.
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxpackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-526
The /shop/[slug] PDP JSON-LD Product.additionalProperty array carries each non-null spec field as a schema.org/PropertyValue entry (fiberContent, widthInches). weightGsm and originCountry are deferred pending schema migration. Enables Goog…
6h agoapps/web/src/lib/productStructuredData.ts×2packages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-529
The /shop/[slug] PDP "Recently viewed" strip limit raised from 4 to 6 (REQ-ECO-529). Strip is already last in render order (after RelatedFabrics and RelatedItemsStrip) and already hides when the cookie list is empty. Uses the RelatedCardSt…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxpackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-534
DEFERRED-AUDIT: Neither shippingEstimator (packages/core) nor a preferred fulfillmentMode field on the cart state currently exists. Both are prerequisites for the "Estimated delivery window" line. This requirement is deferred until: (1) a…
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-535
The /shop page quick-filter strip must include a third shortcut, "Remnants & last cuts", linking to /shop?low-yardage=1 alongside "New arrivals" and "Back in stock". The link must live in the existing <ul aria-label="Quick filters">, prese…
6h agoapps/web/src/app/(storefront)/shop/page.tsxpackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-536
The /shop/[slug] PDP Specs "Width" row must mirror the Fiber row's two-intent discovery model. When widthInches is non-null, the row label links to /shop/widths with an accessible label for browsing all widths, while the row value links to…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxpackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-537
The /shop/[slug] PDP Care block must provide fiber discovery links whenever fiberContent is present. If keyword-based care tips render, append links to /shop?fiber=<fiberContent> and /shop/fibers. If no known care keyword matches, render a…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxpackages/core/src/commerceReadiness/index.tspackages/core/src/storefrontPosBridgeReadiness/index.test.ts+1 more - ShippedREQ-ECO-533
The /cart line-item row "Save for later" button is now hidden when the SKU is already on the customer's wishlist. heartedIds are loaded from loadHeartedSkuIds(cartSkuIds) and checked per item. The saveCartItemForLaterFormAction (already pr…
2h agoapps/web/src/app/(storefront)/cart/page.tsx×2packages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-532
The /shop filter rail gains a "Remnants & last cuts" toggle (Yardage section) that filters to SKUs with availableSixteenths between 1 and MIN_YARDAGE_SIXTEENTHS * 2n (1 yd). Parsed as ?low-yardage=1; the web loader translates it to minAvai…
6h agoapps/web/src/lib/storefront.ts×2apps/web/src/components/StorefrontFilters.tsxpackages/core/src/commerceReadiness/index.ts+3 more - ShippedREQ-ECO-531
The /shop sort dropdown gains price-per-yard-asc (label: "Per yard???") and price-per-yard-desc (label: "Per yard???") sort keys. Both order by pricePerYardMinor (same predicate as price-low/price-high); the separate keys surface the unit…
6h agoapps/web/src/lib/storefront.ts×2packages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-530
The /shop PLP adds a FilterSummaryPill server component that renders "N fabrics ? M filters ? remove all" above the ActiveFilterChips when at least one predicate is active. "Remove all" links to /shop. No new props; uses the already-presen…
6h agoapps/web/src/app/(storefront)/shop/page.tsx×2packages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-528
The /shop PLP header gains "New arrivals" and "Back in stock" quick-filter links pointing at /shop?new=only and /shop?restocked=1. restockedOnly is parsed in parseStorefrontFilters, included in hasActiveFilters, serialised by buildShopHref…
6h agoapps/web/src/lib/storefront.ts×3apps/web/src/app/(storefront)/shop/page.tsxpackages/core/src/commerceReadiness/index.ts+3 more - ShippedREQ-ECO-527
DEFERRED AUDIT ? /shop/themes facet-index page: the catalog schema has no themeTag column as of 2026-04-23. No migration added. Revisit when the merchandising schema gains a theme/style tag (reserved REQ-ID: REQ-ECO-527). Pattern would mir…
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-508
The /cart page must render a coupon-code entry field (REQ-ECO-508, REQ-PRI-050 cart-time validation). A client component CartCouponSection renders either the code-entry form or the applied-coupon chip. The applyCouponCodeAction server acti…
48m agoapps/web/src/app/(storefront)/cart/actions.ts×3apps/web/src/app/(storefront)/cart/couponCookie.tsapps/web/src/components/CartCouponSection.tsx+3 more - ShippedREQ-ECO-538
The /cart page must run a live tenant-scoped availability recheck for every cart line before rendering checkout actions. Lines whose requested yardage exceeds currently cuttable inventory must show an inline correction state with the reque…
6h agopackages/core/src/storefrontPosBridgeReadiness/index.test.ts×8packages/core/src/commerceReadiness/index.test.ts×4packages/core/src/commerceReadiness/index.ts+2 more - ShippedREQ-ECO-539
The /cart page must expose a print-friendly quote view for in-store handoff. The printed quote includes store name, generated timestamp, cart line names, yardage, unit prices, subtotal, applied coupon preview if present, and a scannable or…
48m agoapps/web/src/app/(storefront)/cart/actions.tspackages/core/src/commerceReadiness/index.tspackages/core/src/storefrontPosBridgeReadiness/index.test.ts+1 more - ShippedREQ-ECO-540
The /shop/[slug] PDP yardage selector must render a deterministic line-total preview and remaining-yardage warning as the shopper changes yardage. The preview uses bigint minor-unit math, honors the existing minimum/increment rules, and su…
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-541
The /shop listing must provide a URL-driven "available today" filter that returns only SKUs with at least one cuttable bolt above the configured minimum cut. The filter composes with existing designer, collection, color, fiber, width, sear…
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-542
The storefront shell cart indicator must display the current cart item count and subtotal from the existing cart cookie model on storefront pages where cookies are available. The indicator links to /cart, degrades to count-only when subtot…
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-543
The /cart/confirmation page must render a next-step panel for overnight MVP orders that distinguishes pickup, shipping, and class/event follow-up paths where that metadata exists, and otherwise shows a generic "order received" state. The p…
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-544
The storefront /shop and /cart pages must emit product analytics funnel intents through apps/web/src/lib/telemetry.ts for cart-viewed, checkout-blocked-by-inventory, quote-printed, and checkout-started. Payloads include tenant id, cart lin…
48m agoapps/web/src/app/(storefront)/cart/actions.tspackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-558
The /cart print quote must include a generated timestamp and the resolved tenant storefront label so an in-store handoff can be reconciled to the right shop and print moment without creating an order.
6h agopackages/core/src/commerceReadiness/index.tspackages/core/src/storefrontPosBridgeReadiness/index.test.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts+1 more - ShippedREQ-ECO-559
Cart availability correction alerts must deep-link to the affected cart line so a shopper with a long cart can jump from the warning to the exact item that needs adjustment.
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-560
The disabled checkout state on /cart must disclose the number of blocking availability corrections, not only a generic disabled reason.
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-561
The cart quote print button must expose a pending state via visible text and an ARIA live announcement while the telemetry action records the print intent.
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-562
The /cart/confirmation next-step panel must include an admin handoff link for demo operators without implying real payment or fulfillment occurred.
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-563
The /shop quick-filter strip must include a "Clear quick filters" escape when any quick-filter style predicate is active.
6h agopackages/core/src/storefrontPosBridgeReadiness/index.test.ts×4packages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-564
The /shop/[slug] availability panel must show the minimum cut rule alongside current availability so stock state and purchasing constraint are visible before the yardage form.
6h agopackages/core/src/commerceReadiness/index.tspackages/demo-data/src/packs/0036_commerce_readiness_suite.ts - ShippedREQ-ECO-565
The storefront shell cart link must expose the subtotal as visible text on tablet/desktop and as a screen-reader-only subtotal on smaller viewports.
6h agopackages/core/src/storefrontPosBridgeReadiness/index.test.ts×5packages/core/src/commerceReadiness/index.test.tspackages/core/src/commerceReadiness/index.ts+2 more - ShippedREQ-ECO-566
The storefront /cart checkout path must replace the simulated v0 checkout with a production checkout flow that supports guest and authenticated customers, collects or confirms customer contact data, shipping or pickup address, delivery met…
2h agoapps/web/src/lib/launchSmokeEvidence.test.ts×6apps/web/src/lib/demoStripeCheckout.ts - Not startedREQ-ECO-567
Checkout must create an atomic inventory reservation or hold for each cart line before payment capture. Holds must be tenant-scoped, expire automatically, preserve fixed-point yardage, prevent concurrent oversells, expose insufficient-yard…
- ShippedREQ-ECO-568
Checkout must use tenant-configured tax and fulfillment settings to quote shipping, pickup, and tax before payment. The quote must show line subtotal, discount, shipping, tax, and total in integer minor units, must be revalidated server-si…
2h agopackages/core/src/checkoutQuote/index.ts×3apps/web/src/app/(storefront)/cart/page.tsx×2packages/db/src/repositories/stores.ts+2 more - ShippedREQ-ECO-569
Storefront catalog pages must support publication-quality product data for MVP SKUs: public slug, publish/draft state, SKU code/barcode where available, designer, collection, colorway, dominant colors, color tags, fiber content, width, pro…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxapps/web/src/lib/catalogProductCompleteness.ts - ShippedREQ-ECO-570
Tenant storefronts must surface launch-critical trust and support information before checkout: store support email or phone, pickup/shipping availability, return/cancellation policy, class/event cancellation policy where classes are enable…
6h agoapps/web/src/components/StorefrontShell.tsx - ShippedREQ-ECO-571
Cart and checkout-adjacent storefront surfaces must show a shopper-facing checkout readiness panel before activation. The panel must distinguish quote-only checks from durable checkout guarantees, list blocking cart issues such as unavaila…
48m agoapps/web/src/app/(storefront)/cart/page.tsx×2apps/web/src/app/(storefront)/cart/actions.tsapps/web/src/app/(storefront)/cart/confirmation/page.tsx+1 more - ShippedREQ-ECO-572
Storefront cart and checkout-adjacent pages must make unavailable next steps self-recovering. When checkout remains disabled, the cart must show the exact blocker category, the admin-owned setting or inventory state that can clear it, whet…
2h agoapps/web/src/app/(storefront)/cart/page.tsxapps/web/src/lib/cartCheckoutReadiness.ts - ShippedREQ-ECO-573
Storefront checkout-blocked states must preserve shopper intent across recovery actions. When a line must be edited, removed, saved for later, or revisited from a product page, the cart must expose stable anchors and return links so the sh…
6h agoapps/web/src/lib/cartRecoveryIntent.ts - ShippedREQ-ECO-574
Storefront product pages reached from a cart recovery path must show a return affordance back to the exact cart line or summary that sent the shopper there. The return target must be sanitized to the current tenant cart route, must not lea…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxapps/web/src/lib/cartRecoveryIntent.ts - ShippedREQ-ECO-575
Storefront product recovery context must carry through every PDP exit that preserves shopping intent. Add-to-cart success, wishlist save, share/print affordances, related-product pivots, and recently-viewed navigation must either preserve…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxapps/web/src/components/RecentlyViewedStrip.tsxapps/web/src/components/RelatedItemsStrip.tsx+1 more - ShippedREQ-ECO-576
Cart-recovery mode must expose an explicit shopper exit control on product pages and comparison shelves. When a shopper follows a recovery link from /cart, the PDP must explain which cart context is active, offer a clear "continue shopping…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsx×2apps/web/src/components/RecentlyViewedStrip.tsxapps/web/src/components/RelatedItemsStrip.tsx+1 more - ShippedREQ-ECO-577
Cart-recovery opt-out must be durable for the remainder of the browsing session. When a shopper exits recovery mode, subsequent PDP, related-product, and recently-viewed navigation must avoid re-attaching stale returnTo values unless the s…
6h agoapps/web/src/lib/cartRecoveryIntent.ts - ShippedREQ-ECO-578
Cart-recovery banners must identify the active cart context in shopper-readable terms before linking back. When the recovery target is a line anchor, the PDP must show the affected cart line name, requested yardage, current availability st…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxapps/web/src/lib/cartRecoveryIntent.ts - ShippedREQ-ECO-579
Cart-recovery banners must expose the smallest shopper-safe next action when the original cart line cannot be restored. If the line was removed, saved for later, or no longer sellable, the PDP must show whether the shopper can add the fabr…
6h agoapps/web/src/app/(storefront)/shop/[slug]/page.tsxapps/web/src/lib/cartRecoveryIntent.ts - ShippedREQ-ECO-580
PDP add-to-cart recovery must preserve the shopper's selected yardage and recovery intent when a server-side cart mutation fails because availability changed. The error state must explain whether the shopper can retry with a smaller cut, s…
6h agoapps/web/src/lib/cartRecoveryIntent.ts×3apps/web/src/components/AddToCartForm.tsxapps/web/src/lib/cartRecoveryIntent.test.ts - ShippedREQ-ECO-581
PDP add-to-cart recovery must expose a machine-readable recovery payload for browser smoke tests and support handoff. When availability changes after the page loads, the failed add-to-cart state must include the originally selected yardage…
6h agoapps/web/src/lib/cartRecoveryIntent.ts×3apps/web/src/components/AddToCartForm.tsx×2apps/web/src/lib/cartRecoveryIntent.test.ts×2 - ShippedREQ-ECO-582
Checkout contact capture must be resumable and validation-aware for guest and authenticated shoppers. The checkout flow must collect email, phone when required by the selected fulfillment method, marketing-consent state, and customer-accou…
2h agoapps/web/src/components/CheckoutReviewControls.tsx×2apps/web/src/lib/checkoutContactCapture.ts - ShippedREQ-ECO-583
Checkout fulfillment selection must support a single-page handoff between pickup and shipping without recomputing unrelated cart state. Pickup must show store instructions, service window, support contact, and any cutoff warning; shipping…
2h agoapps/web/src/components/CheckoutReviewControls.tsx×2apps/web/src/lib/cartCheckoutFulfillment.ts - Not startedREQ-ECO-584
Checkout order creation must use an idempotent attempt record before redirecting to any payment confirmation surface. The attempt must store tenant, cart hash, selected contact, fulfillment method, quote version, inventory-hold IDs, paymen…
- ShippedREQ-ECO-585
Checkout address validation must produce a privacy-safe validation envelope before payment. The envelope must distinguish incomplete, unserviceable, corrected, and accepted addresses; persist only normalized non-sensitive delivery assumpti…
2h agoapps/web/src/components/CheckoutReviewControls.tsxapps/web/src/lib/cartCheckoutFulfillment.ts - ShippedREQ-ECO-586
Checkout payment handoff must remain unavailable until contact, fulfillment, address validation, quote revalidation, and inventory holds are all ready. The UI must explain which prerequisite blocks card collection, keep hosted payment fiel…
48m agoapps/web/src/components/CheckoutReviewControls.tsx×2apps/web/src/app/(storefront)/cart/actions.tsapps/web/src/app/(storefront)/cart/confirmation/page.tsx+1 more - ShippedREQ-ECO-587
Checkout quote replay must bind every payment attempt to a versioned, privacy-safe quote token. The token must include tenant, cart hash, fulfillment choice, normalized delivery assumptions, tax/shipping settings version, inventory-hold re…
48m agoapps/web/src/components/CheckoutReviewControls.tsx×2apps/web/src/app/(storefront)/cart/confirmation/page.tsxapps/web/src/app/(storefront)/cart/page.tsx+1 more - ShippedREQ-ECO-588
Checkout confirmation must distinguish quote-only review, payment authorized, order created, and fulfillment queued states. Each state must show the shopper what has and has not happened, expose safe next actions, avoid implying a durable…
48m agoapps/web/src/app/(storefront)/cart/confirmation/page.tsxapps/web/src/lib/checkoutConfirmationState.ts - ShippedREQ-ECO-589
Checkout attempt state must move from browser-submitted replay tokens to a server-owned attempt record before payment intent creation. The record must store the token hash, tenant, cart hash, checkout settings hash, fulfillment choice, nor…
2h agoapps/web/src/lib/checkoutAttemptLedger.ts×4apps/web/src/lib/demoStripeCheckout.ts×2apps/web/src/lib/checkoutAttemptLedger.test.ts - ShippedREQ-ECO-590
Checkout payment creation must revalidate coupon, tax, fulfillment, delivery, and cart availability inputs against the latest tenant settings immediately before creating or resuming a payment intent. If the quoted total changes, the shoppe…
48m agoapps/web/src/app/(storefront)/cart/actions.tsapps/web/src/app/(storefront)/cart/page.tsxapps/web/src/components/CheckoutReviewControls.tsx+1 more - Not startedREQ-ECO-591
Checkout must promote the current quote-only review into a durable payment handoff only after a server-owned attempt row has been locked for update, the cart hash still matches the shopper-visible cart, the applied coupon campaign/code is…
- ShippedREQ-ECO-592
Checkout recovery must support a payment-provider interruption path for shoppers who close the browser, return from a failed hosted payment flow, or retry after a webhook delay. The recovery state must resume the same attempt, show the las…
48m agoapps/web/src/lib/checkoutAttemptLedger.ts×4apps/web/src/app/(storefront)/cart/confirmation/page.tsx×2apps/web/src/lib/demoStripeCheckout.ts×2+1 more - ShippedREQ-ECO-593
Checkout contact and fulfillment drafts must be normalized into a server-validated attempt envelope before payment handoff. The envelope must store only the contact fields needed for order creation, normalized delivery assumptions, selecte…
2h agoapps/web/src/lib/checkoutAttemptEnvelope.ts×3apps/web/src/components/CheckoutReviewControls.tsx - ShippedREQ-ECO-594
Checkout payment handoff must expose an idempotent retry state machine for hosted-payment returns. The state machine must distinguish ready_for_payment, payment_started, payment_returned_unpaid, payment_authorized, order_creation_retryable…
48m agoapps/web/src/lib/checkoutPaymentRetryState.ts×4apps/web/src/lib/demoStripeCheckout.ts×2apps/web/src/app/(storefront)/cart/confirmation/page.tsx+1 more - ShippedREQ-ECO-595
Checkout confirmation must verify hosted-payment return state against a server-owned attempt record before showing payment_authorized, order_created, or fulfillment_queued. The verification must match tenant, attempt ID, cart hash, provide…
2m agoapps/web/src/lib/checkoutReturnVerification.ts×5apps/web/src/app/(storefront)/cart/confirmation/page.tsxapps/web/src/lib/checkoutAttemptSummary.test.ts+3 more - ShippedREQ-ECO-596
Checkout recovery must persist a customer-safe attempt summary that survives reloads, bookmarks, and cross-device support handoff. The summary must include attempt reference, lifecycle state, quote total, fulfillment choice, safe delivery…
48m agoapps/web/src/lib/checkoutAttemptSummary.ts×3apps/web/src/app/(storefront)/cart/confirmation/page.tsxapps/web/src/lib/checkoutAttemptSummary.test.ts - ShippedREQ-ECO-597
Checkout must persist a server-owned attempt ledger before hosted payment redirect. The ledger must store tenant, attempt reference, cart hash, quote version, payment amount, currency, provider session reference hash, lifecycle state, and…
48m agoapps/web/src/lib/checkoutAttemptLedger.ts×4apps/web/src/lib/demoStripeCheckout.ts×2apps/web/src/app/(storefront)/cart/confirmation/page.tsx+2 more - Not startedREQ-ECO-598
Checkout order creation must run through an idempotent post-payment worker that can resume from payment_authorized to order_created without duplicate orders, duplicate fulfillment rows, duplicate loyalty earns, or duplicate shopper notific…
- ShippedREQ-ECO-599
Checkout attempt records must be sealed against browser tampering before any payment provider handoff. The server-owned record must include a signature or database identity that covers tenant, attempt reference, cart hash, quote version, p…
48m agoapps/web/src/lib/checkoutAttemptLedger.ts×5apps/web/src/app/(storefront)/cart/confirmation/page.tsxapps/web/src/env.ts+1 more - ShippedREQ-ECO-600
Checkout confirmation must reconcile the server attempt ledger with the payment webhook lifecycle before exposing order or fulfillment progress. A hosted-payment return may show payment_authorized only after the ledger and provider session…
2m agoapps/web/src/app/(storefront)/cart/confirmation/page.tsxapps/web/src/lib/checkoutReturnVerification.tspackages/core/src/payments/index.ts - Not startedREQ-ECO-601
Live checkout must persist sealed attempt state in a tenant-scoped database table before enabling production payment capture. The table must store tenant, attempt reference, cart hash, checkout settings hash, quote version, payment amount,…
- Not startedREQ-ECO-602
Checkout confirmation must merge hosted-payment returns with webhook-confirmed payment state using a deterministic precedence rule. The page may show payment_authorized from a verified return, but order number, receipt links, fulfillment q…
- ShippedREQ-ECO-603
Storefront checkout payment collection must use an in-app Stripe surface such as Embedded Checkout or Stripe Elements mounted on a BoltToCart route. The server may create or retrieve Stripe Checkout Sessions, PaymentIntents, SetupIntents,…
2m agoapps/web/src/lib/demoStripeEmbeddedCheckoutHandoff.ts×3packages/core/src/payments/index.ts×3apps/web/src/lib/demoStripeCheckout.ts×2+6 more
REQ-FULFulfillment, Shipping & Returns478 shipped1 wip6 todo99%
- ShippedREQ-FUL-001
Provide a pick-and-pack UI that batches cuts across orders by bolt for efficiency.
6h agopackages/core/src/storeOperationsReadiness/index.test.ts×4packages/core/src/retailRuntimeReadiness/index.test.ts×2packages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-FUL-002
Integrate with shipping-rate and label providers to quote rates at checkout, purchase labels, and capture tracking numbers.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - packages/core/src/retailRuntimeReadiness/index.ts
- packages/core/src/retailRuntimeReadiness/index.ts
- ShippedREQ-FUL-005
Returns: configurable policy per product class. Default: cut fabric is non-returnable; precuts, notions, and unopened kits are returnable within a configurable window.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-FUL-006
Refunds must support original-tender, store credit, and gift card, with tax correctly reversed.
6h agopackages/core/src/retailRuntimeReadiness/index.ts - ShippedREQ-FUL-007
RMA workflow must generate a prepaid label when the store policy allows, and reconcile inventory on receipt.
6h agopackages/core/src/retailRuntimeReadiness/index.test.tspackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/storeOperationsReadiness/index.test.ts - ShippedREQ-FUL-503
Creates /admin/fulfillment/[orderId]/page.tsx (fulfillment detail page) with an inline "Send shipping notification" form. The Server Action emits an email.queued@1 event into the transactional outbox with templateKey: "order_shipped" — reu…
6h agoapps/web/src/app/admin/fulfillment/[orderId]/actions.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsx×2apps/web/src/app/admin/fulfillment/[orderId]/SendShippingNotificationForm.tsx+1 more - ShippedREQ-FUL-504
/admin/fulfillment grid adds a URL-driven status filter chip row (pending / processing / ready_for_pickup / fulfilled / cancelled) via buildFulfillmentHref(status) helper. The default view (?status= absent) still shows the active pick queu…
6h agoapps/web/src/app/admin/fulfillment/page.tsx×5apps/web/src/app/admin/fulfillment/[orderId]/return/RmaForm.tsxapps/web/src/app/admin/fulfillment/[orderId]/return/actions.ts+1 more - ShippedREQ-FUL-505
STOP — rma.reasonText column does not exist in the orders schema. Adding a reason field requires a schema migration — coordination-lane work.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2packages/db/src/migrations/0034_return_authorizations.sql×2apps/web/src/app/admin/fulfillment/[orderId]/ship/actions.ts+3 more - ShippedREQ-FUL-502
/admin/fulfillment/[orderId]/return RMA initiation page. Captures return reason (dropdown), refund amount (max = order total), and internal notes. Execution (Stripe refund, refunded status, order.refunded@1 event) deferred to carrier-API +…
6h agoapps/web/src/app/admin/orders/[id]/page.tsx - ShippedREQ-FUL-501
/admin/fulfillment/[orderId]/ship shipping rate capture page. Carrier dropdown, tracking number, and shipping cost fields. Label purchase and order-status advancement deferred to carrier-API integration outside this lane's path fence.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsxapps/web/src/app/admin/orders/[id]/page.tsx - ShippedREQ-FUL-500
/admin/fulfillment pick-and-pack queue. Lists pending/processing/ready_for_pickup orders oldest-first with status badges, channel, total, and Ship/View action buttons. Inline Drizzle SELECT (no ordersRepo.list yet). Bolt grouping placehold…
6h agopackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×6packages/core/src/fulfillmentAdminReadiness/index.test.ts×6apps/web/src/app/admin/fulfillment/_lib/fulfillmentAdminSuite.test.ts×4+5 more - ShippedREQ-FUL-506
The /admin/fulfillment queue must add URL-driven channel filter chips for all, storefront, POS, API, imported, and unknown-source orders, preserving the active status filter and showing per-channel counts from the loaded order window.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentAdminSuite.test.ts×2apps/web/src/app/admin/fulfillment/BulkFulfillmentActions.tsxpackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts - ShippedREQ-FUL-507
The /admin/fulfillment/fulfillment.csv export must honor the same ?status= and ?channel= filters as the on-screen fulfillment queue so downloaded pick lists match the visible cohort.
6h agoapps/web/src/app/admin/fulfillment/fulfillment.csv/route.ts - ShippedREQ-FUL-508
The /admin/fulfillment table must render human-readable source labels instead of raw source strings while preserving the raw value in a title for debugging.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-509
The /admin/fulfillment summary strip must include an oldest-visible-order age tile so staff can spot stale pick queues without scanning every row.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-510
The /admin/fulfillment table must include a per-row copy-order-id affordance for warehouse/support handoffs.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-511
The /admin/fulfillment/[orderId] detail page must include a copy-order-id affordance in the header/action area.
6h agopackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-512
The /admin/fulfillment/[orderId] detail page must render a read-only fulfillment checklist for placed, picking, ready, shipped/fulfilled, and notification-eligible states, derived only from the persisted order status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-513
/admin/fulfillment must render an active-filter summary whenever status or channel filters are active, including a clear-all link back to the default active queue.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-514
/admin/fulfillment must include a visible total value tile summing the currently filtered queue's order totals in minor-unit-safe integer math.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-515
/admin/fulfillment/[orderId] must expose a print-pick-sheet action in the header action strip, hidden from print output.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-516
/admin/fulfillment/[orderId] must expose a copy-payment-reference affordance when the order carries a Stripe PaymentIntent id.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx×2 - ShippedREQ-FUL-517
/admin/fulfillment/[orderId] must render human-readable source labels while preserving the raw source value in a title attribute.
6h agopackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×2packages/core/src/fulfillmentAdminReadiness/index.test.tspackages/demo-data/src/packs/0073_admin_fulfillment_launch_readiness_suite.ts - ShippedREQ-FUL-518
/admin/fulfillment/fulfillment.csv must include total_minor alongside the human-readable USD amount for reconciliation-safe imports.
6h agopackages/core/src/fulfillmentAdminReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/fulfillment.csv/route.tspackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts - ShippedREQ-FUL-519
/admin/fulfillment/fulfillment.csv must include customer_id as a separate column so staff can join exports back to customer records without parsing email.
6h agopackages/core/src/storeOperationsReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/fulfillment.csv/route.ts - ShippedREQ-FUL-520
/admin/fulfillment/fulfillment.csv must include placed_at as a full ISO-8601 timestamp in addition to the date-only placed field.
6h agopackages/core/src/storeOperationsReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/fulfillment.csv/route.ts - ShippedREQ-FUL-521
/admin/fulfillment must expose a copy-visible-order-ids action when the filtered queue has rows, copying one UUID per line for warehouse and support handoffs.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-522
/admin/fulfillment must expose a print-current-view action for the currently visible fulfillment queue, hidden from print output.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-523
/admin/fulfillment status filter chips must show per-status counts computed from the channel-filtered loaded order window, plus an active-queue count for the default view.
6h agoapps/web/src/app/admin/fulfillment/page.tsx×2 - ShippedREQ-FUL-524
/admin/fulfillment empty states must name the active status/channel filters and include a clear-all link whenever filters are hiding all rows.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-525
/admin/fulfillment placed-date cells must expose the full placed timestamp in a title while keeping the compact date text visible.
6h agoapps/web/src/app/admin/fulfillment/page.tsxpackages/core/src/fulfillmentAdminReadiness/index.test.ts - ShippedREQ-FUL-526
/admin/fulfillment/[orderId]/ship must expose a copy-order-id affordance in the header/action area for shipping desk handoffs.
6h agopackages/core/src/fulfillmentAdminReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-527
/admin/fulfillment/[orderId]/ship must expose a print-shipping-worksheet action, hidden from print output.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-528
/admin/fulfillment/[orderId]/ship must expose a copy-payment-reference affordance when the order carries a Stripe PaymentIntent id.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-529
/admin/fulfillment/[orderId]/ship must render a human-readable source label while preserving the raw source value in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-530
/admin/fulfillment/[orderId]/ship must render a read-only shipping checklist for ready status, manual label purchase, tracking capture, and notification follow-up, derived only from persisted order fields and the existing workflow.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-531
/admin/fulfillment/[orderId]/return must expose a copy-order-id affordance in the header/action area for RMA handoffs.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentAdminSuite.test.ts×3apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-532
/admin/fulfillment/[orderId]/return must expose a print-RMA-worksheet action, hidden from print output.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-533
/admin/fulfillment/[orderId]/return must expose a copy-payment-reference affordance when the order carries a Stripe PaymentIntent id.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-534
/admin/fulfillment/[orderId]/return must render a human-readable source label while preserving the raw source value in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-535
/admin/fulfillment/[orderId]/return must render a read-only RMA eligibility checklist for fulfilled status, manual refund processing, reason capture, and inventory review follow-up, derived only from persisted order fields and the existing…
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-536
/admin/fulfillment row actions must include a direct pick-sheet link to /admin/fulfillment/[orderId] so warehouse staff do not have to detour through the full order detail page.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-537
/admin/fulfillment truncated order identifiers must preserve the full order id in a title attribute for visual verification during support calls.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-538
/admin/fulfillment placed-date cells must include a compact relative age beside the date so stale rows are visible without scanning the summary strip.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-539
/admin/fulfillment summary strip must include a pending-order count for the currently filtered queue.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-540
/admin/fulfillment summary strip must include a processing-order count for the currently filtered queue.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-541
/admin/fulfillment summary strip must include a ready-for-pickup count for the currently filtered queue.
6h agoapps/web/src/app/admin/fulfillment/page.tsx - ShippedREQ-FUL-542
/admin/fulfillment/[orderId] placed-date summary must preserve the full placed timestamp in a title attribute while keeping the compact date visible.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-543
/admin/fulfillment/[orderId] must expose a copy-fulfillment-handoff-summary action containing order id, status, source, total, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-544
/admin/fulfillment/[orderId] status badges must preserve the raw persisted status in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-545
/admin/fulfillment/[orderId] action navigation must expose a Return/RMA link for fulfilled orders, using the existing RMA flow.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentAdminReadiness/index.test.ts - ShippedREQ-FUL-546
/admin/fulfillment/[orderId]/ship must expose a copy-shipping-handoff-summary action containing order id, status, source, total, and placed timestamp.
6h agopackages/core/src/fulfillmentAdminReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-547
/admin/fulfillment/[orderId]/ship must render a status badge in the header with the raw persisted status preserved in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-548
/admin/fulfillment/[orderId]/ship navigation must include a link back to the fulfillment pick sheet for the same order.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-549
/admin/fulfillment/[orderId]/return must expose a copy-RMA-handoff-summary action containing order id, status, source, total, and eligibility.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-550
/admin/fulfillment/[orderId]/return navigation must include a link back to the fulfillment pick sheet for the same order.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-551
/admin/fulfillment/[orderId] page headings that render truncated order ids must preserve the full order id in a title attribute for support verification.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-552
/admin/fulfillment/[orderId] breadcrumb current-page crumbs that render truncated order ids must preserve the full order id in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-553
/admin/fulfillment/[orderId] must show the associated customer_id with a copy affordance when present, and an honest guest-order fallback when absent.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx×2 - ShippedREQ-FUL-554
/admin/fulfillment/[orderId] must show total_minor beside the formatted currency total for reconciliation-safe support handoffs.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-555
/admin/fulfillment/[orderId] must show a relative placed-age tile derived from created_at so stale pick sheets are obvious at detail depth.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-556
/admin/fulfillment/[orderId]/ship headings that render truncated order ids must preserve the full order id in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsxapps/web/src/app/admin/fulfillment/_lib/fulfillmentAdminSuite.test.ts - ShippedREQ-FUL-557
/admin/fulfillment/[orderId]/ship must show the associated customer_id with a copy affordance when present, and an honest guest-order fallback when absent.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-558
/admin/fulfillment/[orderId]/ship must show total_minor beside the formatted currency total for reconciliation-safe shipping handoffs.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×3 - ShippedREQ-FUL-559
/admin/fulfillment/[orderId]/ship must show a relative placed-age tile derived from created_at.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-560
/admin/fulfillment/[orderId]/ship shipping checklist rows must preserve the persisted order status in each row's title attribute so staff can debug why a row reads ready/pending.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsxpackages/core/src/fulfillmentAdminReadiness/index.test.ts - ShippedREQ-FUL-561
/admin/fulfillment/[orderId]/return headings that render truncated order ids must preserve the full order id in a title attribute.
6h agopackages/core/src/fulfillmentAdminReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-562
/admin/fulfillment/[orderId]/return must render the current status as a badge with the raw persisted status preserved in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-563
/admin/fulfillment/[orderId]/return must show the associated customer_id with a copy affordance when present, and an honest guest-order fallback when absent.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×3 - ShippedREQ-FUL-564
/admin/fulfillment/[orderId]/return must show total_minor beside the formatted currency total for reconciliation-safe RMA handoffs.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-565
/admin/fulfillment/[orderId]/return RMA checklist rows must preserve the persisted order status in each row's title attribute so staff can debug eligibility without inspecting raw data elsewhere.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-566
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include total_minor, source code, and customer id/guest status for audit-safe support escalation.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-567
/admin/fulfillment/[orderId] source summary tiles must show the raw persisted source code visibly beside the friendly source label.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-568
/admin/fulfillment/[orderId] placed timestamp tiles must preserve the exact ISO timestamp in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-569
/admin/fulfillment/[orderId] payment reference tiles must render an explicit "Not recorded" fallback instead of disappearing when no payment reference exists.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-570
/admin/fulfillment/[orderId] placed timestamp tiles must expose a copy affordance for the exact ISO timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-571
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include total_minor, source code, customer id/guest status, payment reference/fallback, and exact placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-572
/admin/fulfillment/[orderId]/ship placed timestamp tiles must preserve and copy the exact ISO timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-573
/admin/fulfillment/[orderId]/ship source summary tiles must show the raw persisted source code visibly beside the friendly source label.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-574
/admin/fulfillment/[orderId]/ship payment reference tiles must preserve the raw payment reference in a title attribute when present.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-575
/admin/fulfillment/[orderId]/ship manual-label notes must include the short order id so printed worksheets remain identifiable when separated from the page header.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-576
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include total_minor, source code, customer id/guest status, payment reference/fallback, and exact placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-577
/admin/fulfillment/[orderId]/return placed timestamp tiles must preserve and copy the exact ISO timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-578
/admin/fulfillment/[orderId]/return source summary tiles must show the raw persisted source code visibly beside the friendly source label.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-579
/admin/fulfillment/[orderId]/return RMA eligibility tiles must preserve the raw persisted order status in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-580
/admin/fulfillment/[orderId]/return blocked-return alerts must preserve the raw persisted order status in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentAdminReadiness/index.test.ts - ShippedREQ-FUL-581
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include the admin route path for support pastebacks.
6h agopackages/core/src/fulfillmentAdminReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/_lib/fulfillmentAdminSuite.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-582
/admin/fulfillment/[orderId] summary tiles must include the full order id with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx×2 - ShippedREQ-FUL-583
/admin/fulfillment/[orderId] summary tiles must include the raw persisted status with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx×2 - ShippedREQ-FUL-584
/admin/fulfillment/[orderId] source summary tiles must expose a copy affordance for the raw source code.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-585
/admin/fulfillment/[orderId] blocked shipping-notification notices must preserve the raw persisted status in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-586
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include the admin route path and shippable eligibility.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-587
/admin/fulfillment/[orderId]/ship summary tiles must include the full order id with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-588
/admin/fulfillment/[orderId]/ship summary tiles must include the raw persisted status with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-589
/admin/fulfillment/[orderId]/ship source summary tiles must expose a copy affordance for the raw source code.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-590
/admin/fulfillment/[orderId]/ship blocked-shipping alerts must preserve the raw persisted status in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-591
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include the admin route path and RMA route path.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-592
/admin/fulfillment/[orderId]/return summary tiles must include the full order id with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-593
/admin/fulfillment/[orderId]/return summary tiles must include the raw persisted status with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-594
/admin/fulfillment/[orderId]/return source summary tiles must expose a copy affordance for the raw source code.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-595
/admin/fulfillment/[orderId]/return payment reference tiles must preserve the raw payment reference in a title attribute when present.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-596
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include shipping-notification eligibility.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-597
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include the next recommended fulfillment action.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-598
/admin/fulfillment/[orderId] summary tiles must include the admin route path with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-599
/admin/fulfillment/[orderId] summary tiles must include shipping-notification eligibility with raw status preserved in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentAdminSuite.test.ts×4packages/core/src/fulfillmentAdminReadiness/index.test.ts×3apps/web/src/app/admin/fulfillment/_lib/fulfillmentControlSuite.test.ts+2 more - ShippedREQ-FUL-600
/admin/fulfillment/[orderId] order-action navigation links must preserve each destination path in a title attribute for support verification.
6h agopackages/core/src/fulfillmentControlReadiness/index.test.ts×6apps/web/src/app/admin/fulfillment/_lib/fulfillmentControlSuite.test.ts×4apps/web/src/app/admin/fulfillment/_lib/fulfillmentAdminSuite.test.ts+2 more - ShippedREQ-FUL-601
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include the next recommended shipping action.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-602
/admin/fulfillment/[orderId]/ship summary tiles must include the ship route path with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-603
/admin/fulfillment/[orderId]/ship summary tiles must include shippable eligibility with raw status preserved in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-604
/admin/fulfillment/[orderId]/ship manual-label worksheet notes must preserve the full order id in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-605
/admin/fulfillment/[orderId]/ship confirm-shipment submit buttons must preserve the ready-to-fulfilled status transition in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-606
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include the next recommended RMA action.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentControlSuite.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-607
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include the intended order status after RMA confirmation.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-608
/admin/fulfillment/[orderId]/return summary tiles must include the RMA route path with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-609
/admin/fulfillment/[orderId]/return RMA eligibility tiles must expose a copy affordance for the visible eligibility value.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-610
/admin/fulfillment/[orderId]/return navigation links must preserve each destination path in a title attribute for support verification.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×3 - ShippedREQ-FUL-611
/admin/fulfillment/[orderId] formatted total tiles must preserve raw total_minor in a title attribute for reconciliation.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-612
/admin/fulfillment/[orderId] total-minor tiles must expose a copy affordance for support reconciliation.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-613
/admin/fulfillment/[orderId] guest customer fallbacks must preserve guest_order in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-614
/admin/fulfillment/[orderId] missing payment-reference fallbacks must preserve not_recorded in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-615
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a reconciliation key combining order id and total_minor.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentControlReadiness/index.test.ts - ShippedREQ-FUL-616
/admin/fulfillment/[orderId]/ship formatted total tiles must preserve raw total_minor in a title attribute for reconciliation.
6h agopackages/core/src/fulfillmentControlReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-617
/admin/fulfillment/[orderId]/ship total-minor tiles must expose a copy affordance for support reconciliation.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-618
/admin/fulfillment/[orderId]/ship guest customer fallbacks must preserve guest_order in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-619
/admin/fulfillment/[orderId]/ship missing payment-reference fallbacks must preserve not_recorded in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-620
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a reconciliation key combining order id and total_minor.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×3 - ShippedREQ-FUL-621
/admin/fulfillment/[orderId]/return formatted total context must preserve raw total_minor in a title attribute for reconciliation.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-622
/admin/fulfillment/[orderId]/return total-minor tiles must expose a copy affordance for support reconciliation.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-623
/admin/fulfillment/[orderId]/return guest customer fallbacks must preserve guest_order in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-624
/admin/fulfillment/[orderId]/return missing payment-reference fallbacks must preserve not_recorded in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-625
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a reconciliation key combining order id and total_minor.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-626
/admin/fulfillment/[orderId] summary tiles must include the reconciliation key with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-627
/admin/fulfillment/[orderId] summary tiles must include the next recommended fulfillment action with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-628
/admin/fulfillment/[orderId] customer-id tiles must preserve the raw customer id in a title attribute when present.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-629
/admin/fulfillment/[orderId] payment-reference tiles must preserve the raw payment reference in a title attribute when present.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-630
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include full-order, shipping, and RMA route paths.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-631
/admin/fulfillment/[orderId]/ship summary tiles must include the reconciliation key with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentControlSuite.test.ts×3apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-632
/admin/fulfillment/[orderId]/ship shippable eligibility tiles must expose a copy affordance for the visible eligibility value.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-633
/admin/fulfillment/[orderId]/ship summary tiles must include the next recommended shipping action with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-634
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include the target status after shipment confirmation.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-635
/admin/fulfillment/[orderId]/ship navigation links must preserve each destination path in a title attribute for support verification.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×3packages/core/src/fulfillmentControlReadiness/index.test.ts - ShippedREQ-FUL-636
/admin/fulfillment/[orderId]/return summary tiles must include the reconciliation key with a copy affordance.
6h agopackages/core/src/fulfillmentControlReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-637
/admin/fulfillment/[orderId]/return summary tiles must include the next recommended RMA action with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-638
/admin/fulfillment/[orderId]/return summary tiles must include the RMA target status with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-639
/admin/fulfillment/[orderId]/return customer-id tiles must preserve the raw customer id in a title attribute when present.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-640
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include the full order detail route path.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-641
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include customer and payment proof tokens for guest/not-recorded cases.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-642
/admin/fulfillment/[orderId] summary tiles must include a status/source proof key with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-643
/admin/fulfillment/[orderId] shipping-notification eligibility tiles must expose a copy affordance for the visible eligibility value.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-644
/admin/fulfillment/[orderId] placed-age tiles must preserve the exact placed timestamp in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-645
/admin/fulfillment/[orderId] total-minor tile values must preserve the raw minor-unit value in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-646
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include full-order and pick-sheet route paths.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-647
/admin/fulfillment/[orderId]/ship summary tiles must include the shipment target status with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-648
/admin/fulfillment/[orderId]/ship customer-id tiles must preserve the raw customer id in a title attribute when present.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-649
/admin/fulfillment/[orderId]/ship placed-age tiles must preserve the exact placed timestamp in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-650
/admin/fulfillment/[orderId]/ship total-minor tile values must preserve the raw minor-unit value in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-651
/admin/fulfillment/[orderId]/return summary tiles must include the full order detail route path with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-652
/admin/fulfillment/[orderId]/return total-minor tile values must preserve the raw minor-unit value in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-653
/admin/fulfillment/[orderId]/return placed-age tiles must preserve the exact placed timestamp in a title attribute.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-654
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include customer and payment proof tokens for guest/not-recorded cases.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-655
/admin/fulfillment/[orderId]/return summary tiles must include a status/source proof key with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2packages/core/src/fulfillmentControlReadiness/index.test.ts - ShippedREQ-FUL-656
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a route bundle containing fulfillment, full-order, shipping, and RMA paths.
6h agopackages/core/src/fulfillmentControlReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsxapps/web/src/app/admin/fulfillment/_lib/fulfillmentControlSuite.test.ts - ShippedREQ-FUL-657
/admin/fulfillment/[orderId] summary tiles must include the route bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx×2 - ShippedREQ-FUL-658
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a readiness bundle combining order status, notification eligibility, and next action.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-659
/admin/fulfillment/[orderId] summary tiles must include the readiness bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx×2 - ShippedREQ-FUL-660
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the full route bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-661
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a route bundle containing ship, full-order, and pick-sheet paths.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-662
/admin/fulfillment/[orderId]/ship summary tiles must include the route bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-663
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a readiness bundle combining status, shippable eligibility, next action, and target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-664
/admin/fulfillment/[orderId]/ship summary tiles must include the readiness bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-665
/admin/fulfillment/[orderId]/ship manual-label notes must preserve the shipment target status in machine-readable hover context.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-666
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a route bundle containing RMA, fulfillment, and full-order paths.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-667
/admin/fulfillment/[orderId]/return summary tiles must include the route bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-668
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a readiness bundle combining status, RMA eligibility, next action, and target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-669
/admin/fulfillment/[orderId]/return summary tiles must include the readiness bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-670
/admin/fulfillment/[orderId]/return blocked-return alerts must preserve the RMA target status in machine-readable hover context.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentControlReadiness/index.test.ts - ShippedREQ-FUL-671
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include the fulfillment queue path.
6h agopackages/core/src/fulfillmentControlReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-672
/admin/fulfillment/[orderId] summary tiles must include the fulfillment queue path with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx×2 - ShippedREQ-FUL-673
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an operator bundle combining order id, status, source, and reconciliation key.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-674
/admin/fulfillment/[orderId] summary tiles must include the operator bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx×2 - ShippedREQ-FUL-675
/admin/fulfillment/[orderId] checklist rows must preserve the fulfillment readiness bundle in machine-readable hover context.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-676
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include the fulfillment queue path.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-677
/admin/fulfillment/[orderId]/ship summary tiles must include the fulfillment queue path with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-678
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an operator bundle combining order id, status, source, and reconciliation key.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-679
/admin/fulfillment/[orderId]/ship summary tiles must include the operator bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-680
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the shipping route bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-681
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include the fulfillment queue path.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentControlSuite.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-682
/admin/fulfillment/[orderId]/return summary tiles must include the fulfillment queue path with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-683
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an operator bundle combining order id, status, source, and reconciliation key.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-684
/admin/fulfillment/[orderId]/return summary tiles must include the operator bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-685
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the RMA route bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2packages/core/src/fulfillmentControlReadiness/index.test.ts - ShippedREQ-FUL-686
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a control bundle combining queue path, operator bundle, and readiness bundle.
6h agopackages/core/src/fulfillmentControlReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-687
/admin/fulfillment/[orderId] summary tiles must include the control bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx×2 - ShippedREQ-FUL-688
/admin/fulfillment/[orderId] blocked shipping-notification notes must preserve the readiness bundle in machine-readable hover context.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-689
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the operator bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-690
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the control bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-691
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a control bundle combining queue path, operator bundle, and readiness bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-692
/admin/fulfillment/[orderId]/ship summary tiles must include the control bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-693
/admin/fulfillment/[orderId]/ship blocked-shipping alerts must preserve the shipping readiness bundle in machine-readable hover context.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-694
/admin/fulfillment/[orderId]/ship checklist rows must preserve the shipping readiness bundle in machine-readable hover context.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-695
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the operator bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-696
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a control bundle combining queue path, operator bundle, and readiness bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-697
/admin/fulfillment/[orderId]/return summary tiles must include the control bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-698
/admin/fulfillment/[orderId]/return blocked-return alerts must preserve the RMA readiness bundle in machine-readable hover context.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-699
/admin/fulfillment/[orderId]/return checklist rows must preserve the RMA readiness bundle in machine-readable hover context.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentControlSuite.test.ts×4packages/core/src/fulfillmentControlReadiness/index.test.ts×3apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx+3 more - ShippedREQ-FUL-700
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the operator bundle.
6h agopackages/core/src/fulfillmentOperationsHandoffReadiness/index.test.ts×6apps/web/src/app/admin/fulfillment/_lib/fulfillmentOperationsSuite.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx+3 more - ShippedREQ-FUL-701
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an audit bundle combining control bundle, status/source key, placed timestamp, and payment proof token.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-702
/admin/fulfillment/[orderId] summary tiles must include the audit bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-703
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a support bundle combining customer proof token, payment proof token, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-704
/admin/fulfillment/[orderId] summary tiles must include the support bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-705
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the audit bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-706
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an audit bundle combining control bundle, route bundle, placed timestamp, and payment proof token.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentOperationsSuite.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-707
/admin/fulfillment/[orderId]/ship summary tiles must include the audit bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-708
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a support bundle combining customer proof token, payment proof token, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-709
/admin/fulfillment/[orderId]/ship summary tiles must include the support bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-710
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the control bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-711
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an audit bundle combining control bundle, status/source key, placed timestamp, and payment proof token.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-712
/admin/fulfillment/[orderId]/return summary tiles must include the audit bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-713
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a support bundle combining customer proof token, payment proof token, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-714
/admin/fulfillment/[orderId]/return summary tiles must include the support bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-715
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the control bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentOperationsHandoffReadiness/index.test.ts - ShippedREQ-FUL-716
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a timeline bundle combining placed timestamp, next action, and shipping-notification eligibility.
6h agopackages/core/src/fulfillmentOperationsHandoffReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-717
/admin/fulfillment/[orderId] summary tiles must include the timeline bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-718
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an exception bundle combining status/source key, control bundle, and support bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-719
/admin/fulfillment/[orderId] summary tiles must include the exception bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-720
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the support bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-721
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a timeline bundle combining placed timestamp, next shipping action, and shipment target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-722
/admin/fulfillment/[orderId]/ship summary tiles must include the timeline bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-723
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an exception bundle combining shippable eligibility, control bundle, and support bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-724
/admin/fulfillment/[orderId]/ship summary tiles must include the exception bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-725
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the audit bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-726
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a timeline bundle combining placed timestamp, next RMA action, and RMA target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-727
/admin/fulfillment/[orderId]/return summary tiles must include the timeline bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-728
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an exception bundle combining RMA eligibility, control bundle, and support bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-729
/admin/fulfillment/[orderId]/return summary tiles must include the exception bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-730
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the audit bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentOperationsHandoffReadiness/index.test.tspackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-731
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an operations bundle combining route bundle, timeline bundle, and exception bundle.
6h agopackages/core/src/fulfillmentReleaseReadiness/index.test.ts×8packages/core/src/fulfillmentOperationsHandoffReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/_lib/fulfillmentOperationsSuite.test.ts×3+2 more - ShippedREQ-FUL-732
/admin/fulfillment/[orderId] summary tiles must include the operations bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-733
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a print bundle combining short order id, placed timestamp, and next action.
6h agopackages/core/src/fulfillmentReleaseReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-734
/admin/fulfillment/[orderId] summary tiles must include the print bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-735
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the exception bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-736
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an operations bundle combining route bundle, timeline bundle, and exception bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-737
/admin/fulfillment/[orderId]/ship summary tiles must include the operations bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-738
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a print bundle combining short order id, placed timestamp, and next shipping action.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-739
/admin/fulfillment/[orderId]/ship summary tiles must include the print bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2 - ShippedREQ-FUL-740
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the support bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-741
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an operations bundle combining route bundle, timeline bundle, and exception bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-742
/admin/fulfillment/[orderId]/return summary tiles must include the operations bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-743
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a print bundle combining short order id, placed timestamp, and next RMA action.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-744
/admin/fulfillment/[orderId]/return summary tiles must include the print bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-745
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the support bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-746
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a command bundle combining control, operations, and print bundles.
6h agopackages/core/src/fulfillmentReleaseReadiness/index.test.ts×6apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-747
/admin/fulfillment/[orderId] summary tiles must include the command bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-748
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an escalation bundle combining support, exception, and audit bundles.
6h agopackages/core/src/fulfillmentReleaseReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-749
/admin/fulfillment/[orderId] summary tiles must include the escalation bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-750
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the command bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-751
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a command bundle combining control, operations, and print bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-752
/admin/fulfillment/[orderId]/ship summary tiles must include the command bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-753
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an escalation bundle combining support, exception, and audit bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-754
/admin/fulfillment/[orderId]/ship summary tiles must include the escalation bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-755
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the command bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-756
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a command bundle combining control, operations, and print bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxapps/web/src/app/admin/fulfillment/_lib/fulfillmentOperationsSuite.test.ts - ShippedREQ-FUL-757
/admin/fulfillment/[orderId]/return summary tiles must include the command bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-758
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an escalation bundle combining support, exception, and audit bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-759
/admin/fulfillment/[orderId]/return summary tiles must include the escalation bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-760
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the command bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentOperationsHandoffReadiness/index.test.tspackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-761
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a runbook bundle combining route, readiness, and command bundles.
6h agopackages/core/src/fulfillmentReleaseReadiness/index.test.ts×5packages/core/src/fulfillmentOperationsHandoffReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-762
/admin/fulfillment/[orderId] summary tiles must include the runbook bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-763
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a recovery bundle combining escalation, support, and timeline bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-764
/admin/fulfillment/[orderId] summary tiles must include the recovery bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-765
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the recovery bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-766
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a runbook bundle combining route, readiness, and command bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-767
/admin/fulfillment/[orderId]/ship summary tiles must include the runbook bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-768
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a recovery bundle combining escalation, support, and timeline bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-769
/admin/fulfillment/[orderId]/ship summary tiles must include the recovery bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-770
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the recovery bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.ts - ShippedREQ-FUL-771
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a runbook bundle combining route, readiness, and command bundles.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×8packages/demo-data/src/packs/0068_fulfillment_continuity_readiness_suite.ts - ShippedREQ-FUL-772
/admin/fulfillment/[orderId]/return summary tiles must include the runbook bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2packages/core/src/fulfillmentContinuityReadiness/index.test.ts - ShippedREQ-FUL-773
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a recovery bundle combining escalation, support, and timeline bundles.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-774
/admin/fulfillment/[orderId]/return summary tiles must include the recovery bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2packages/core/src/fulfillmentContinuityReadiness/index.test.ts - ShippedREQ-FUL-775
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the recovery bundle.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-776
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a dispatch bundle combining route, command, and recovery bundles.
6h agopackages/core/src/fulfillmentReleaseReadiness/index.test.ts×5packages/core/src/fulfillmentContinuityReadiness/index.test.ts×3apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-777
/admin/fulfillment/[orderId] summary tiles must include the dispatch bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-778
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an archive bundle combining audit, runbook, and print bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.tspackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-779
/admin/fulfillment/[orderId] summary tiles must include the archive bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-780
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the dispatch bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-781
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a dispatch bundle combining route, command, and recovery bundles.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentOperationsSuite.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-782
/admin/fulfillment/[orderId]/ship summary tiles must include the dispatch bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-783
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an archive bundle combining audit, runbook, and print bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-784
/admin/fulfillment/[orderId]/ship summary tiles must include the archive bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-785
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the dispatch bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-786
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a dispatch bundle combining route, command, and recovery bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-787
/admin/fulfillment/[orderId]/return summary tiles must include the dispatch bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-788
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an archive bundle combining audit, runbook, and print bundles.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-789
/admin/fulfillment/[orderId]/return summary tiles must include the archive bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-790
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the dispatch bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.tspackages/core/src/fulfillmentOperationsHandoffReadiness/index.test.ts+1 more - ShippedREQ-FUL-791
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a verification bundle combining dispatch bundle, archive bundle, and reconciliation key.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×5packages/core/src/fulfillmentReleaseReadiness/index.test.ts×5packages/core/src/fulfillmentOperationsHandoffReadiness/index.test.ts×4+1 more - ShippedREQ-FUL-792
/admin/fulfillment/[orderId] summary tiles must include the verification bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-793
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a closeout bundle combining verification bundle, placed timestamp, and total minor units.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.tspackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-794
/admin/fulfillment/[orderId] summary tiles must include the closeout bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-795
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the verification bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-796
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a verification bundle combining dispatch bundle, archive bundle, and reconciliation key.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-797
/admin/fulfillment/[orderId]/ship summary tiles must include the verification bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-798
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a closeout bundle combining verification bundle, placed timestamp, and total minor units.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-799
/admin/fulfillment/[orderId]/ship summary tiles must include the closeout bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentOperationsSuite.test.ts×4packages/core/src/fulfillmentOperationsHandoffReadiness/index.test.ts×3packages/demo-data/src/packs/0032_fulfillment_operations_suite.ts+1 more - ShippedREQ-FUL-800
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the verification bundle.
6h agopackages/core/src/fulfillmentSignoffReadiness/index.test.ts×6apps/pos/src/components/PosReleaseGapSuiteStatus.test.tsapps/pos/src/components/PosReleaseGapSuiteStatus.ts+4 more - ShippedREQ-FUL-801
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a verification bundle combining dispatch bundle, archive bundle, and reconciliation key.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-802
/admin/fulfillment/[orderId]/return summary tiles must include the verification bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-803
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a closeout bundle combining verification bundle, placed timestamp, and total minor units.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-804
/admin/fulfillment/[orderId]/return summary tiles must include the closeout bundle with a copy affordance.
6h agoapps/pos/src/components/PosReleaseGapSuiteStatus.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-805
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the verification bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.tspackages/core/src/fulfillmentSignoffReadiness/index.test.ts - ShippedREQ-FUL-806
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a signoff bundle combining closeout bundle, readiness bundle, and next action.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×6packages/core/src/fulfillmentSignoffReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-807
/admin/fulfillment/[orderId] summary tiles must include the signoff bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-808
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a retention bundle combining signoff bundle, archive bundle, and placed timestamp.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-809
/admin/fulfillment/[orderId] summary tiles must include the retention bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-810
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the signoff bundle.
6h agoapps/pos/src/components/PosReleaseGapSuiteStatus.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-811
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a signoff bundle combining closeout bundle, readiness bundle, and shipment target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-812
/admin/fulfillment/[orderId]/ship summary tiles must include the signoff bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-813
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a retention bundle combining signoff bundle, archive bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-814
/admin/fulfillment/[orderId]/ship summary tiles must include the retention bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-815
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the signoff bundle.
6h agoapps/pos/src/components/PosReleaseGapSuiteStatus.test.tsapps/pos/src/components/PosReleaseGapSuiteStatus.tsapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-816
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a signoff bundle combining closeout bundle, readiness bundle, and RMA target status.
6h agoapps/pos/src/components/PosReleaseGapSuiteStatus.test.tsapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-817
/admin/fulfillment/[orderId]/return summary tiles must include the signoff bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-818
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a retention bundle combining signoff bundle, archive bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-819
/admin/fulfillment/[orderId]/return summary tiles must include the retention bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-820
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the signoff bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.tspackages/core/src/fulfillmentReleaseReadiness/index.test.ts+1 more - ShippedREQ-FUL-821
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a compliance bundle combining retention bundle, verification bundle, and status/source key.
6h agopackages/core/src/fulfillmentSignoffReadiness/index.test.ts×4packages/core/src/fulfillmentContinuityReadiness/index.test.ts×3packages/core/src/fulfillmentReleaseReadiness/index.test.ts×3+1 more - ShippedREQ-FUL-822
/admin/fulfillment/[orderId] summary tiles must include the compliance bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-823
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an evidence bundle combining compliance bundle, support bundle, and placed timestamp.
6h agopackages/core/src/fulfillmentReleaseReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.ts - ShippedREQ-FUL-824
/admin/fulfillment/[orderId] summary tiles must include the evidence bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-825
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the compliance bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-826
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a compliance bundle combining retention bundle, verification bundle, and shipment target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-827
/admin/fulfillment/[orderId]/ship summary tiles must include the compliance bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-828
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an evidence bundle combining compliance bundle, support bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-829
/admin/fulfillment/[orderId]/ship summary tiles must include the evidence bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-830
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the compliance bundle.
6h agopackages/core/src/fulfillmentReleaseReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsxpackages/demo-data/src/packs/0070_fulfillment_release_readiness_suite.ts - ShippedREQ-FUL-831
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a compliance bundle combining retention bundle, verification bundle, and RMA target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentReleaseReadiness/index.test.ts - ShippedREQ-FUL-832
/admin/fulfillment/[orderId]/return summary tiles must include the compliance bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-833
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an evidence bundle combining compliance bundle, support bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-834
/admin/fulfillment/[orderId]/return summary tiles must include the evidence bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx×2 - ShippedREQ-FUL-835
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the compliance bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.tspackages/core/src/fulfillmentSignoffReadiness/index.test.ts - ShippedREQ-FUL-836
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a custody bundle combining evidence bundle, control bundle, and operator bundle.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×5packages/core/src/fulfillmentSignoffReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-837
/admin/fulfillment/[orderId] summary tiles must include the custody bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-838
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an attestation bundle combining custody bundle, compliance bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.ts - ShippedREQ-FUL-839
/admin/fulfillment/[orderId] summary tiles must include the attestation bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-840
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the custody bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-841
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a custody bundle combining evidence bundle, control bundle, and operator bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-842
/admin/fulfillment/[orderId]/ship summary tiles must include the custody bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-843
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an attestation bundle combining custody bundle, compliance bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-844
/admin/fulfillment/[orderId]/ship summary tiles must include the attestation bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-845
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the custody bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-846
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a custody bundle combining evidence bundle, control bundle, and operator bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-847
/admin/fulfillment/[orderId]/return summary tiles must include the custody bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-848
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an attestation bundle combining custody bundle, compliance bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-849
/admin/fulfillment/[orderId]/return summary tiles must include the attestation bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-850
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the custody bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.tspackages/core/src/fulfillmentSignoffReadiness/index.test.ts - ShippedREQ-FUL-851
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a resolution bundle combining attestation bundle, closeout bundle, and reconciliation key.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×5packages/core/src/fulfillmentSignoffReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-852
/admin/fulfillment/[orderId] summary tiles must include the resolution bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-853
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a ledger bundle combining resolution bundle, custody bundle, and total minor units.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.ts - ShippedREQ-FUL-854
/admin/fulfillment/[orderId] summary tiles must include the ledger bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-855
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the resolution bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-856
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a resolution bundle combining attestation bundle, closeout bundle, and reconciliation key.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-857
/admin/fulfillment/[orderId]/ship summary tiles must include the resolution bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-858
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a ledger bundle combining resolution bundle, custody bundle, and total minor units.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-859
/admin/fulfillment/[orderId]/ship summary tiles must include the ledger bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-860
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the resolution bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-861
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a resolution bundle combining attestation bundle, closeout bundle, and reconciliation key.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-862
/admin/fulfillment/[orderId]/return summary tiles must include the resolution bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-863
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a ledger bundle combining resolution bundle, custody bundle, and total minor units.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-864
/admin/fulfillment/[orderId]/return summary tiles must include the ledger bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-865
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the resolution bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentContinuityReadiness/index.test.ts - ShippedREQ-FUL-866
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a settlement bundle combining ledger bundle, retention bundle, and status/source key.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×3apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-867
/admin/fulfillment/[orderId] summary tiles must include the settlement bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-868
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a docket bundle combining settlement bundle, resolution bundle, and placed timestamp.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-869
/admin/fulfillment/[orderId] summary tiles must include the docket bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-870
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the settlement bundle.
6h agopackages/core/src/fulfillmentContinuityReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/_lib/fulfillmentBundleSuite.test.tspackages/core/src/fulfillmentClosureAuditReadiness/index.test.ts+2 more - ShippedREQ-FUL-871
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a settlement bundle combining ledger bundle, retention bundle, and shipment target status.
6h agopackages/core/src/fulfillmentHandoffReadiness/index.test.ts×8packages/core/src/fulfillmentClosureAuditReadiness/index.test.ts×6apps/web/src/app/admin/fulfillment/_lib/fulfillmentBundleSuite.test.ts×4+5 more - ShippedREQ-FUL-872
/admin/fulfillment/[orderId]/ship summary tiles must include the settlement bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2packages/core/src/fulfillmentClosureAuditReadiness/index.test.tspackages/core/src/fulfillmentHandoffReadiness/index.test.ts - ShippedREQ-FUL-873
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a docket bundle combining settlement bundle, resolution bundle, and placed timestamp.
6h agopackages/core/src/fulfillmentHandoffReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-874
/admin/fulfillment/[orderId]/ship summary tiles must include the docket bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx×2packages/core/src/fulfillmentHandoffReadiness/index.test.ts - ShippedREQ-FUL-875
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the settlement bundle.
6h agopackages/core/src/fulfillmentClosureAuditReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsxpackages/core/src/fulfillmentHandoffReadiness/index.test.ts - ShippedREQ-FUL-876
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a settlement bundle combining ledger bundle, retention bundle, and RMA target status.
6h agopackages/core/src/fulfillmentClosureAuditReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/_lib/fulfillmentBundleSuite.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-877
/admin/fulfillment/[orderId]/return summary tiles must include the settlement bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-878
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a docket bundle combining settlement bundle, resolution bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-879
/admin/fulfillment/[orderId]/return summary tiles must include the docket bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-880
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the settlement bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.tspackages/core/src/fulfillmentHandoffReadiness/index.test.ts - ShippedREQ-FUL-881
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a manifest bundle combining docket bundle, dispatch bundle, and route bundle.
6h agopackages/core/src/fulfillmentClosureAuditReadiness/index.test.ts×7packages/core/src/fulfillmentHandoffReadiness/index.test.ts×5apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-882
/admin/fulfillment/[orderId] summary tiles must include the manifest bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-883
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a release bundle combining manifest bundle, settlement bundle, and next action.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.tspackages/core/src/fulfillmentHandoffReadiness/index.test.ts - ShippedREQ-FUL-884
/admin/fulfillment/[orderId] summary tiles must include the release bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-885
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the manifest bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-886
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a manifest bundle combining docket bundle, dispatch bundle, and route bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-887
/admin/fulfillment/[orderId]/ship summary tiles must include the manifest bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-888
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a release bundle combining manifest bundle, settlement bundle, and shipment target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-889
/admin/fulfillment/[orderId]/ship summary tiles must include the release bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-890
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the manifest bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-891
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a manifest bundle combining docket bundle, dispatch bundle, and route bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-892
/admin/fulfillment/[orderId]/return summary tiles must include the manifest bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-893
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a release bundle combining manifest bundle, settlement bundle, and RMA target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-894
/admin/fulfillment/[orderId]/return summary tiles must include the release bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-895
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the manifest bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.tspackages/core/src/fulfillmentHandoffReadiness/index.test.ts - ShippedREQ-FUL-896
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a certification bundle combining release bundle, manifest bundle, and readiness bundle.
6h agopackages/core/src/fulfillmentHandoffReadiness/index.test.ts×6packages/core/src/fulfillmentClosureAuditReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-897
/admin/fulfillment/[orderId] summary tiles must include the certification bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.ts - ShippedREQ-FUL-898
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an export bundle combining certification bundle, docket bundle, and placed timestamp.
6h agopackages/core/src/fulfillmentHandoffReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-899
/admin/fulfillment/[orderId] summary tiles must include the export bundle with a copy affordance.
6h agopackages/core/src/fulfillmentSignoffReadiness/index.test.ts×3packages/demo-data/src/packs/0046_fulfillment_signoff_readiness_suite.ts - ShippedREQ-FUL-900
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the certification bundle.
6h agopackages/core/src/releaseCompletionReadiness/index.test.ts×6packages/core/src/releaseAcceptanceReadiness/index.test.ts×4packages/demo-data/src/packs/0049_release_completion_readiness_suite.ts - ShippedREQ-FUL-901
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a certification bundle combining release bundle, manifest bundle, and readiness bundle.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentBundleSuite.test.ts×3apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-902
/admin/fulfillment/[orderId]/ship summary tiles must include the certification bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-903
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an export bundle combining certification bundle, docket bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-904
/admin/fulfillment/[orderId]/ship summary tiles must include the export bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-905
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the certification bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-906
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a certification bundle combining release bundle, manifest bundle, and readiness bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-907
/admin/fulfillment/[orderId]/return summary tiles must include the certification bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-908
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an export bundle combining certification bundle, docket bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-909
/admin/fulfillment/[orderId]/return summary tiles must include the export bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-910
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the certification bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.tspackages/core/src/fulfillmentHandoffReadiness/index.test.ts - ShippedREQ-FUL-911
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a handoff bundle combining export bundle, certification bundle, and route bundle.
6h agopackages/core/src/fulfillmentHandoffReadiness/index.test.ts×5packages/core/src/fulfillmentClosureAuditReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-912
/admin/fulfillment/[orderId] summary tiles must include the handoff bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-913
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a clearance bundle combining handoff bundle, release bundle, and next action.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.tspackages/core/src/fulfillmentHandoffReadiness/index.test.ts - ShippedREQ-FUL-914
/admin/fulfillment/[orderId] summary tiles must include the clearance bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-915
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the handoff bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-916
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a handoff bundle combining export bundle, certification bundle, and route bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-917
/admin/fulfillment/[orderId]/ship summary tiles must include the handoff bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-918
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a clearance bundle combining handoff bundle, release bundle, and shipment target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-919
/admin/fulfillment/[orderId]/ship summary tiles must include the clearance bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-920
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the handoff bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-921
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a handoff bundle combining export bundle, certification bundle, and route bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-922
/admin/fulfillment/[orderId]/return summary tiles must include the handoff bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-923
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a clearance bundle combining handoff bundle, release bundle, and RMA target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-924
/admin/fulfillment/[orderId]/return summary tiles must include the clearance bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/releaseAcceptanceReadiness/index.test.ts - ShippedREQ-FUL-925
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the handoff bundle.
6h agopackages/core/src/releaseAcceptanceReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/releaseCompletionReadiness/index.test.ts - ShippedREQ-FUL-926
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an authorization bundle combining clearance bundle, handoff bundle, and readiness bundle.
6h agopackages/core/src/releaseCompletionReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/page.tsxapps/web/src/app/admin/fulfillment/_lib/fulfillmentBundleSuite.test.ts+2 more - ShippedREQ-FUL-927
/admin/fulfillment/[orderId] summary tiles must include the authorization bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-928
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a finalization bundle combining authorization bundle, export bundle, and next action.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.tspackages/core/src/fulfillmentHandoffReadiness/index.test.ts - ShippedREQ-FUL-929
/admin/fulfillment/[orderId] summary tiles must include the finalization bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-930
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the authorization bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-931
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an authorization bundle combining clearance bundle, handoff bundle, and readiness bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-932
/admin/fulfillment/[orderId]/ship summary tiles must include the authorization bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-933
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a finalization bundle combining authorization bundle, export bundle, and shipment target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-934
/admin/fulfillment/[orderId]/ship summary tiles must include the finalization bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-935
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the authorization bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-936
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an authorization bundle combining clearance bundle, handoff bundle, and readiness bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-937
/admin/fulfillment/[orderId]/return summary tiles must include the authorization bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-938
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a finalization bundle combining authorization bundle, export bundle, and RMA target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-939
/admin/fulfillment/[orderId]/return summary tiles must include the finalization bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-940
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the authorization bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.tspackages/core/src/fulfillmentHandoffReadiness/index.test.ts+1 more - ShippedREQ-FUL-941
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include an approval bundle combining finalization bundle, authorization bundle, and readiness bundle.
6h agopackages/core/src/fulfillmentHandoffReadiness/index.test.ts×5packages/core/src/fulfillmentClosureAuditReadiness/index.test.ts×4packages/core/src/releaseCompletionReadiness/index.test.ts×4+1 more - ShippedREQ-FUL-942
/admin/fulfillment/[orderId] summary tiles must include the approval bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-943
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a completion bundle combining approval bundle, clearance bundle, and next action.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.tspackages/core/src/fulfillmentHandoffReadiness/index.test.ts - ShippedREQ-FUL-944
/admin/fulfillment/[orderId] summary tiles must include the completion bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-945
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the approval bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-946
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include an approval bundle combining finalization bundle, authorization bundle, and readiness bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-947
/admin/fulfillment/[orderId]/ship summary tiles must include the approval bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-948
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a completion bundle combining approval bundle, clearance bundle, and shipment target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-949
/admin/fulfillment/[orderId]/ship summary tiles must include the completion bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsxpackages/core/src/releaseAcceptanceReadiness/index.test.ts - ShippedREQ-FUL-950
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the approval bundle.
6h agopackages/core/src/releaseAcceptanceReadiness/index.test.ts×4apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-951
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include an approval bundle combining finalization bundle, authorization bundle, and readiness bundle.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentBundleSuite.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-952
/admin/fulfillment/[orderId]/return summary tiles must include the approval bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-953
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a completion bundle combining approval bundle, clearance bundle, and RMA target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-954
/admin/fulfillment/[orderId]/return summary tiles must include the completion bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-955
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the approval bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-956
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a closure bundle combining completion bundle, finalization bundle, and next action.
6h agopackages/core/src/releaseCompletionReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.ts+1 more - ShippedREQ-FUL-957
/admin/fulfillment/[orderId] summary tiles must include the closure bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-958
/admin/fulfillment/[orderId] copy-fulfillment-handoff summaries must include a confirmation bundle combining closure bundle, route bundle, and placed timestamp.
6h agopackages/core/src/fulfillmentHandoffReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/[orderId]/page.tsxpackages/core/src/fulfillmentClosureAuditReadiness/index.test.ts - ShippedREQ-FUL-959
/admin/fulfillment/[orderId] summary tiles must include the confirmation bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-960
/admin/fulfillment/[orderId] order-action navigation must expose a copy affordance for the closure bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/page.tsx - ShippedREQ-FUL-961
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a closure bundle combining completion bundle, finalization bundle, and shipment target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-962
/admin/fulfillment/[orderId]/ship summary tiles must include the closure bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-963
/admin/fulfillment/[orderId]/ship copy-shipping-handoff summaries must include a confirmation bundle combining closure bundle, route bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-964
/admin/fulfillment/[orderId]/ship summary tiles must include the confirmation bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-965
/admin/fulfillment/[orderId]/ship navigation must expose a copy affordance for the closure bundle.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx - ShippedREQ-FUL-966
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a closure bundle combining completion bundle, finalization bundle, and RMA target status.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-967
/admin/fulfillment/[orderId]/return summary tiles must include the closure bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-968
/admin/fulfillment/[orderId]/return copy-RMA-handoff summaries must include a confirmation bundle combining closure bundle, route bundle, and placed timestamp.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-969
/admin/fulfillment/[orderId]/return summary tiles must include the confirmation bundle with a copy affordance.
6h agoapps/web/src/app/admin/fulfillment/[orderId]/return/page.tsx - ShippedREQ-FUL-970
/admin/fulfillment/[orderId]/return navigation must expose a copy affordance for the closure bundle.
6h agoapps/web/src/app/admin/fulfillment/_lib/fulfillmentBundleSuite.test.ts×4packages/core/src/fulfillmentClosureAuditReadiness/index.test.ts×4packages/core/src/fulfillmentHandoffReadiness/index.test.ts×4+7 more - In progressREQ-FUL-971
/admin/fulfillment must be line-aware for web orders. The queue must show each order's cut lines, requested yardage, selected or suggested bolt(s), shortage/substitution status, partial fulfillment state, packing/shipping requirements, cus…
packages/core/src/releaseAcceptanceReadiness/index.test.ts×2apps/web/src/app/admin/fulfillment/_lib/fulfillmentBundleSuite.test.tspackages/core/src/fulfillmentClosureAuditReadiness/index.test.ts - Not startedREQ-FUL-972
Checkout fulfillment handoff must convert inventory holds into line-aware fulfillment work exactly once after payment authorization. Each created fulfillment row must retain SKU, requested yardage, selected bolt or shortage status, pickup/…
- Not startedREQ-FUL-973
Checkout-created fulfillment work must expose a line-level exception queue for shortages, substitutions, and partial cuts. Each exception row must link back to the order line, requested yardage, hold or bolt selection, shopper-safe resolut…
- Not startedREQ-FUL-974
Admin fulfillment must consume checkout-created line exceptions directly from the checkout fulfillment handoff. The fulfillment detail page must show shortage, substitution, partial-cut, and cancelled-hold exceptions with order-line linkag…
- Not startedREQ-FUL-975
Fulfillment detail must record a checkout-originated exception transition log for shortage, substitution, partial-cut, cancelled-hold, and staff override states. Each transition must retain previous status, next status, actor, allowed next…
- Not startedREQ-FUL-976
Fulfillment queues must block ready, fulfilled, shipped, and pickup-complete transitions while checkout-originated exceptions remain unresolved. The blocking state must name each affected order line, exception type, shopper-safe resolution…
- Not startedREQ-FUL-977
Fulfillment queues must surface checkout-originated hold-release deadlines for every line created from a payment-authorized attempt. Staff must see hold expiration, selected bolt or shortage status, allowed cut/pack/pickup/ship actions, an…
REQ-DRPProduct Drops26 shipped0 wip0 todo100%
- ShippedREQ-DRP-524
The /drops/[slug]/opengraph-image badge now uses relative time for scheduled drops: "Opens in Nd/Nh/Nm" rather than a wall-clock timestamp. Live drops show "Live now"; ended shows "Ended". The full date range remains in the subtitle. Runti…
6h agoapps/web/src/app/(storefront)/drops/[slug]/opengraph-image.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+2 more - ShippedREQ-DRP-525
The /drops index must render an active-filter summary when any status, category, or when filter is active. The summary shows the filtered result count, the number of active filters, individual one-tap remove links for each active filter, a…
6h agoapps/web/src/app/(storefront)/drops/page.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+2 more - ShippedREQ-DRP-526
The /drops index card must show a non-JavaScript schedule line in addition to the live countdown. Scheduled cards show Opens <date>, live cards show Closes <date>, and ended cards show Ended <date>, each using a <time dateTime=...> element…
6h agoapps/web/src/app/(storefront)/drops/page.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+2 more - ShippedREQ-DRP-527
The /drops/[slug] SKU grid must visibly mark fabrics whose remainingSixteenths is 0n as sold out. Sold-out cards keep their PDP link for reference, render a "Sold out" badge, use muted card styling, and include "sold out" in the link's acc…
6h agopackages/core/src/creativeCommerceReadiness/index.test.ts×3apps/web/src/app/(storefront)/drops/[slug]/page.tsxpackages/core/src/creativeCommerceReadiness/index.ts+6 more - ShippedREQ-DRP-523
The /drops/[slug] share row (ProductShareButton) is now always visible (including for ended drops) and passes the canonical drop URL explicitly. Previously gated on status !== "ended" and used window.location.href as fallback. Same a11y po…
6h agopackages/core/src/storefrontExperienceReadiness/index.test.ts×4apps/web/src/app/(storefront)/drops/[slug]/page.tsxpackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-DRP-522
The /drops/rss.xml channel <image> element now points at /drops/opengraph-image (via the imagePath param added to renderChannelImage) so feed readers render the branded drop OG card alongside items. renderChannelImage defaults to the brand…
6h agoapps/web/src/app/(storefront)/drops/rss.xml/route.tsapps/web/src/lib/rssChannelImage.tspackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-DRP-521
The /drops/[slug] Event JSON-LD node gains a keywords field joining drop.categories with ", " (comma-space). Omitted when categories is empty to avoid a malformed empty-string claim (REQ-DRP-521).
6h agoapps/web/src/lib/dropStructuredData.tspackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+2 more - ShippedREQ-DRP-520
The /drops/[slug]/calendar.ics VEVENT DESCRIPTION now includes "Includes N fabrics" and the first three SKU names (as a bullet list) when drop.skus.length > 0. Additional SKUs are summarised as "... and N more". DTSTART/DTEND/STATUS unchan…
6h agoapps/web/src/app/(storefront)/drops/[slug]/calendar.ics/route.tspackages/core/src/commerceReadiness/index.test.tspackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-DRP-519
The /drops/[slug]/opengraph-image card stamps eyebrow="LIVE" when drop.status === "live", replacing the default "Drop" eyebrow. All other statuses keep "Drop". The change makes unfurled share links in chat / social communicate live status…
6h agoapps/web/src/app/(storefront)/drops/[slug]/opengraph-image.tsxpackages/core/src/commerceReadiness/index.test.tspackages/core/src/commerceReadiness/index.ts+4 more - ShippedREQ-DRP-001
Drops are scheduled, time-bounded releases with per-product inventory caps, per-customer purchase limits, optional waitlists, and countdown timers.
6h agopackages/core/src/engagementExperienceReadiness/index.test.ts×9packages/core/src/customerJourneyReadiness/index.test.ts×4packages/core/src/creativeCommerceReadiness/index.test.ts×2+19 more - ShippedREQ-DRP-002
At drop-open, the system must place high-demand items behind a fair queue that assigns a deterministic position per customer/session and admits traffic at a rate the checkout path can absorb.
6h agoapps/web/src/app/(storefront)/drops/[slug]/page.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+3 more - ShippedREQ-DRP-003
Inventory must be held against a cart with a time-to-live (default 5 minutes) and released automatically on expiry; holds must be atomic and immune to double-booking even under thundering-herd load.
6h agoapps/web/src/app/(storefront)/drops/[slug]/page.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+3 more - ShippedREQ-DRP-004
The system must apply per-customer rate limits and bot mitigation (device/session signals plus a challenge when risk is high).
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.ts+2 more - ShippedREQ-DRP-005
Drop analytics must report queue-entry rate, sell-through time, conversion, abandonment, and attribution.
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.ts+2 more - ShippedREQ-DRP-500
The /drops/[slug] JSON-LD must include an Event node (alongside the existing WebPage / BreadcrumbList / ItemList) with startDate, endDate, eventAttendanceMode: OnlineEventAttendanceMode, VirtualLocation, organizer, and an eventStatus mappe…
6h agoapps/web/src/lib/dropStructuredData.test.ts×3apps/web/src/lib/dropStructuredData.ts×2packages/core/src/commerceReadiness/index.ts×2+5 more - ShippedREQ-DRP-501
The /drops/[slug] Event node must carry an offers AggregateOffer child summarizing the drop's SKU lineup: lowPrice / highPrice derived from the min/max pricePerYardMinor across drop.skus, priceCurrency pinned to the lineup's currency, offe…
6h agoapps/web/src/lib/dropStructuredData.ts×5apps/web/src/lib/dropStructuredData.test.ts×3apps/web/src/lib/eventStructuredData.ts+4 more - ShippedREQ-DRP-502
The /drops landing page must render a URL-driven filter rail with facet groups status (live | scheduled | ended), category, and when (week | month | past). Every chip is a server-rendered <Link> resolved through buildDropsFilterHref; no cl…
6h agoapps/web/src/app/(storefront)/drops/categories/page.tsx×2apps/web/src/lib/drops.ts×2apps/web/src/components/DropsFilterRail.tsx+5 more - ShippedREQ-DRP-503
The /drops/[slug] page must render a "Related drops" strip below the SKU grid, server-rendered in the initial SSR payload. Queries up to 6 other scheduled or live drops that share at least one category (trimmed, case-insensitive) with the…
6h agoapps/web/src/components/RelatedCardStrip.tsx×3apps/web/src/lib/drops.ts×3apps/web/src/app/(storefront)/drops/[slug]/page.tsx+4 more - ShippedREQ-DRP-504
The /drops/[slug] page must render an UrgencyBadge next to DropCountdown, surfacing a single loss-averse nudge based on a fixed priority table: (1) ending-soon when the drop is live and endAt - now ??? 60min ("Ending in under 1h"); (2) low…
6h agoapps/web/src/components/UrgencyBadge.logic.tsapps/web/src/components/UrgencyBadge.tsxpackages/core/src/commerceReadiness/index.ts+3 more - ShippedREQ-DRP-505
The /drops listing page must carry a real metadata export and a colocated opengraph-image.tsx tuned to "Upcoming fabric drops" search intent.
6h agoapps/web/src/app/(storefront)/drops/page.tsx×2packages/core/src/commerceReadiness/index.test.ts×2apps/web/src/app/(storefront)/drops/opengraph-image.tsx+4 more - ShippedREQ-DRP-506
A Route Handler at /drops/[slug]/calendar.ics must serve a valid RFC 5545 VCALENDAR containing a single VEVENT for the drop. Fields: SUMMARY (<drop name> opens), DTSTART / DTEND (UTC), DESCRIPTION (drop description + "The drop opens at..."…
6h agoapps/web/src/components/DropCalendarLinks.tsx×2apps/web/src/app/(storefront)/drops/[slug]/calendar.ics/route.tsapps/web/src/app/admin/drops/[slug]/edit/page.tsx+5 more - ShippedREQ-DRP-507
The /drops/[slug] route must serve a per-slug OpenGraph card at /drops/{slug}/opengraph-image that renders the drop name, a status pill ("Live now" / "Opens {date}" / "Ended"), and formatted date range inside the platform OgBoltCard frame.…
6h agoapps/web/src/app/(storefront)/drops/[slug]/opengraph-image.tsx×3apps/web/src/app/(storefront)/drops/[slug]/page.tsxapps/web/src/lib/dropStructuredData.ts+4 more - ShippedREQ-DRP-508
DropCountdown must apply the same boundary-based aria-live="polite" debounce that EventCountdown uses (REQ-EVT-503): a sibling role="status" aria-live="polite" aria-atomic="true" region announces remaining time only at day / hour / 10-min…
6h agoapps/web/src/components/DropCountdown.tsx×2packages/core/src/commerceReadiness/index.tspackages/core/src/creativeCommerceReadiness/index.ts+2 more - ShippedREQ-DRP-509
The /drops/[slug] Event JSON-LD must carry an image field pointing at the per-slug OG card route (/drops/{slug}/opengraph-image, REQ-DRP-507). Mirrors the REQ-EVT-507 pattern. The OG route degrades to a branded generic card rather than 404…
6h agoapps/web/src/lib/dropStructuredData.test.tsapps/web/src/lib/dropStructuredData.tspackages/core/src/commerceReadiness/index.ts+3 more - ShippedREQ-DRP-511
The /drops/categories page has a colocated opengraph-image.tsx (static, Edge, no DB call) rendering "Shop by Category" inside OgBoltCard. Page metadata.openGraph.images wired for legacy crawlers. Tenant sitemap entry updated to priority: 0…
6h agoapps/web/src/app/(storefront)/drops/categories/opengraph-image.tsxapps/web/src/app/(storefront)/drops/categories/page.tsxpackages/core/src/commerceReadiness/index.ts+4 more - ShippedREQ-DRP-514
Route Handler at /drops/opml.xml: OPML 2.0 document listing /drops/rss.xml as a subscribable outline entry. Cache-Control: public, s-maxage=86400. /drops listing page alternates.types["text/x-opml"] wired (REQ-DRP-514).
6h agoapps/web/src/app/(storefront)/drops/opml.xml/route.tsapps/web/src/app/(storefront)/drops/page.tsxpackages/core/src/commerceReadiness/index.ts+4 more
REQ-EVTEvents & Ticketing37 shipped0 wip0 todo100%
- ShippedREQ-EVT-522
The /events/[slug] Event JSON-LD node carries maximumAttendeeCapacity (from event.capacity) and remainingAttendeeCapacity (from event.remainingCapacity = capacity - activeTicketCount) when capacity is non-null. Google Events card surfaces…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-EVT-521
The /events/[slug] iCal VEVENT ORGANIZER CN is now derived from the event's instructor name when present, falling back to "BoltToCart". mailto: stays noreply@<host>. Preserves RFC 5545 ORGANIZER shape (REQ-EVT-521).
6h agoapps/web/src/app/(storefront)/events/[slug]/calendar.ics/route.tspackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+2 more - ShippedREQ-EVT-525
The /events/instructors facet-index instructor cards show a "Next class: May 15 at 2:30 PM" line computed as the instructor's earliest future scheduled event. Uses the new dateRangeLabel helper in formattingLocale.ts. Omitted when there is…
6h agoapps/web/src/lib/events.ts×3apps/web/src/app/(storefront)/events/instructors/page.tsxapps/web/src/lib/formattingLocale.ts+4 more - ShippedREQ-EVT-526
The /events index must render an active-filter summary when any instructor, when, or price filter is active. The summary shows the filtered class count, the number of active filters, individual one-tap remove links for each active filter,…
6h agoapps/web/src/app/(storefront)/events/eventsIndexViewModel.test.tsapps/web/src/app/(storefront)/events/eventsIndexViewModel.tspackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-527
The /events index event cards must include an explicit CTA line at the bottom of each card. Scheduled, not-full classes render "Reserve a seat"; full, live, ended, or otherwise unavailable classes render "View details". This is display-onl…
6h agoapps/web/src/app/(storefront)/events/eventsIndexViewModel.test.tsapps/web/src/app/(storefront)/events/eventsIndexViewModel.tspackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-528
The /events/[slug] unavailable-registration notice must provide context-specific recovery links. Full scheduled classes link to /events?instructor=<instructorName> as "More from this instructor" and to /events?when=month as "Browse upcomin…
6h agopackages/core/src/creativeCommerceReadiness/index.test.ts×3packages/core/src/engagementExperienceReadiness/index.test.ts×3packages/core/src/storefrontExperienceReadiness/index.test.ts×3+7 more - ShippedREQ-EVT-524
The /events/[slug] page renders a WishlistHeart when the event is registerable (future-dated, not full, status===scheduled). Uses event.id as the wishlist identifier. Hidden for ended/cancelled/full events. Same a11y posture as the PDP hea…
6h agopackages/core/src/serviceCommerceReadiness/index.test.ts×3apps/web/src/app/(storefront)/events/[slug]/page.tsx×2packages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-500
The /events/[slug] Event JSON-LD must carry a performer Person node (instructor name + url, per REQ-EVT-002) and an organizer Organization node (name + url) matching the Organization shape /drops/[slug] emits per REQ-DRP-500, so event- and…
6h agoapps/web/src/lib/eventStructuredData.ts×3apps/web/src/lib/eventStructuredData.test.ts×2packages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-501
The /events/[slug] Event node's offers child must be shaped as an AggregateOffer (parity with REQ-DRP-501) with lowPrice / highPrice / priceCurrency / availability / offerCount / validThrough. Today the v0 single-ticket model collapses low…
6h agoapps/web/src/lib/eventStructuredData.ts×2apps/web/src/lib/eventStructuredData.test.tspackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-502
The /events/[slug] Event JSON-LD must complete the set of Google-required Event fields by carrying a structured location, an absolute image URL, and a bounded description. location is emitted only when events.location is present: a value s…
6h agoapps/web/src/lib/eventStructuredData.test.ts×6apps/web/src/lib/eventStructuredData.ts×5apps/web/src/app/(storefront)/events/[slug]/opengraph-image.tsx+5 more - ShippedREQ-EVT-503
The /events/[slug] page must render an EventCountdown component above the fold, ticking down to startsAt in the shopper's timezone and mirroring DropCountdown's public prop shape so the two countdowns stay interchangeable at the surface le…
6h agoapps/web/src/components/EventCountdown.logic.test.ts×2apps/web/src/components/EventCountdown.logic.ts×2apps/web/src/components/DropCountdown.tsx+5 more - ShippedREQ-EVT-504
The /events/[slug] page must render a "More from this instructor" related-events strip below the main content, server-rendered in the initial SSR payload. Queries up to 6 nearest-upcoming events (status scheduled or live, excluding the cur…
6h agoapps/web/src/components/RelatedCardStrip.tsx×3apps/web/src/lib/events.ts×2apps/web/src/app/(storefront)/drops/[slug]/page.tsx+6 more - ShippedREQ-EVT-505
A facet-index surface at /events/instructors must list every instructor with at least one upcoming class (scheduled or live), each row carrying a deterministic initials-avatar tile, display name, bio excerpt (??? 160 chars, word-boundary e…
6h agoapps/web/src/app/(storefront)/events/instructors/page.tsx×2apps/web/src/lib/events.ts×2apps/web/src/app/(storefront)/events/instructors/loading.tsx+5 more - ShippedREQ-EVT-506
The /events landing page must render a URL-driven filter rail with facet groups instructor, when (week | month | past), and price (free | paid). Every chip is a server-rendered <Link> that updates / clears a single facet via buildEventsFil…
6h agoapps/web/src/components/EventsFilterRail.tsx×2apps/web/src/lib/dropsFilters.ts×2apps/web/src/lib/eventsFilters.ts+4 more - ShippedREQ-EVT-507
The /events/[slug] route must serve a per-slug OpenGraph card at /events/{slug}/opengraph-image (Next.js metadata-convention colocated asset) that renders the class title, instructor, and formatted start date (Weekday, Mon D, H:MM AM) insi…
6h agoapps/web/src/app/(storefront)/events/[slug]/opengraph-image.tsx×2apps/web/src/app/(storefront)/drops/[slug]/page.tsxapps/web/src/lib/dropStructuredData.ts+6 more - ShippedREQ-EVT-508
A Route Handler at /events/[slug]/calendar.ics must serve a valid RFC 5545 VCALENDAR containing a single VEVENT with the full set of fields:
6h agoapps/web/src/components/EventCalendarLinks.tsx×4apps/web/src/app/(storefront)/drops/[slug]/calendar.ics/route.tsapps/web/src/app/(storefront)/events/[slug]/calendar.ics/route.ts+5 more - ShippedREQ-EVT-509
The /events listing page must export a metadata object with title: "Quilting Classes & Workshops ??? BoltToCart" and a description that enumerates the three filter axes the page surfaces (instructor, date window, price) so SERP snippets ma…
6h agoapps/web/src/app/(storefront)/events/opengraph-image.tsxapps/web/src/app/(storefront)/events/page.tsxpackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-511
The /events/instructors page metadata must include alternates.types["application/rss+xml"]: "/events/rss.xml" so feed readers find the events feed from the instructors index. No route or DB change.
6h agoapps/web/src/app/(storefront)/events/instructors/page.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+2 more - ShippedREQ-EVT-512
/events/instructors/[key] generateMetadata must add RSS autodiscovery (alternates.types["application/rss+xml"]: "/events/rss.xml") and openGraph.images: ["/events/opengraph-image"].
6h agoapps/web/src/app/(storefront)/events/instructors/[key]/page.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+2 more - ShippedREQ-EVT-513
/events/instructors must serve a colocated opengraph-image.tsx (static, Edge, no DB call) rendering "Instructors" / "Every instructor teaching upcoming classes at the reference store." inside OgBoltCard. Page metadata.openGraph.images wire…
6h agoapps/web/src/app/(storefront)/events/instructors/opengraph-image.tsxapps/web/src/app/(storefront)/events/page.tsxpackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-514
/events/instructors/[key] has a colocated per-instructor opengraph-image.tsx (Node runtime). generateMetadata wires per-key openGraph.images (REQ-EVT-514).
6h agoapps/web/src/app/(storefront)/events/instructors/[key]/opengraph-image.tsxapps/web/src/app/(storefront)/events/instructors/[key]/page.tsxapps/web/src/app/(storefront)/events/instructors/page.tsx+4 more - ShippedREQ-EVT-515
Route Handler at /events/opml.xml: OPML 2.0 document listing /events/rss.xml as a subscribable outline entry. Cache-Control: public, s-maxage=86400. /events listing page alternates.types["text/x-opml"] wired (REQ-EVT-515).
6h agoapps/web/src/app/(storefront)/events/opml.xml/route.tsapps/web/src/app/(storefront)/events/page.tsxpackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-517
/events/[slug]/registered adds "Browse fabrics ???" CTA alongside the existing calendar/class/share affordances (REQ-EVT-517).
6h agoapps/web/src/app/(storefront)/events/[slug]/registered/page.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+2 more - ShippedREQ-EVT-518
/events/[slug] generateMetadata gains alternates.types["application/ld+json"] pointing at the per-slug ld.json endpoint (REQ-EVT-518).
6h agoapps/web/src/app/(storefront)/drops/[slug]/page.tsxapps/web/src/app/(storefront)/events/[slug]/page.tsxpackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-510
/events/instructors/[key] individual instructor detail page. key is URL-encoded normalizeInstructorKey value. Renders: initials avatar + gradient, display name, full bio (not truncated, from loadPublicEventDetail), upcoming-class count, Se…
6h agoapps/web/src/app/(storefront)/events/instructors/[key]/page.tsx×2apps/web/src/app/(storefront)/events/instructors/page.tsxpackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-001
Support one-off events, recurring classes, and multi-session series with per-session attendance.
6h agopackages/core/src/serviceCommerceReadiness/index.test.ts×4packages/core/src/creativeCommerceReadiness/index.test.ts×2packages/core/src/engagementExperienceReadiness/index.test.ts×2+20 more - ShippedREQ-EVT-002
Instructors must have profiles, bios, and the ability to manage their own class rosters.
6h agoapps/web/src/lib/eventStructuredData.ts×3packages/db/src/migrations/0012_events.sql×2apps/web/src/app/(storefront)/events/[slug]/page.tsx+5 more - ShippedREQ-EVT-003
Classes must support per-session capacity, optional seat maps, waitlists, and materials fees billed separately from the ticket.
6h agopackages/testing/src/events.test.ts×2packages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+5 more - ShippedREQ-EVT-004
Cancellation and reschedule rules must be configurable per event with automated refunds or transfers.
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-EVT-010
Ticket types (General, VIP, member, etc.) with capacity and pricing per type.
6h agoapps/web/src/app/(storefront)/events/[slug]/actions.tsapps/web/src/lib/eventStructuredData.tspackages/core/src/creativeCommerceReadiness/index.ts+3 more - ShippedREQ-EVT-011
Each ticket issues a unique QR code usable for check-in; check-in must be possible offline and reconcile on sync.
6h agoapps/web/src/app/(storefront)/events/[slug]/page.tsxapps/web/src/app/(storefront)/events/[slug]/registered/layout.tsxapps/web/src/app/(storefront)/events/[slug]/registered/page.tsx+8 more - packages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more
- apps/web/src/app/(storefront)/events/[slug]/actions.tspackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+2 more
- ShippedREQ-EVT-020
Events may bundle a required kit of fabrics and notions; purchasing the ticket can optionally auto-add the kit.
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - packages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more
- ShippedREQ-EVT-022
Instructors see a dashboard of registered students, supply lists, and kit fulfillment status.
6h agoapps/web/src/app/admin/events/[id]/page.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/engagementExperienceReadiness/index.ts+3 more - ShippedREQ-EVT-030
Send registration confirmation, reminder, and change notifications via email and SMS per �18.
6h agoapps/web/src/app/(storefront)/events/[slug]/actions.tsapps/web/src/app/(storefront)/events/[slug]/registered/page.tsxpackages/core/src/creativeCommerceReadiness/index.ts+3 more
REQ-KITKits, Bundles & Project Shopping4 shipped0 wip0 todo100%
- ShippedREQ-KIT-001
A kit is a composite product with a fixed or curated list of components (fabrics by yardage, precuts, notions, patterns).
6h agopackages/core/src/customerJourneyReadiness/index.test.ts×4packages/core/src/creativeCommerceReadiness/index.test.ts×2packages/core/src/customerCommerceReadiness/index.test.ts×2+5 more - ShippedREQ-KIT-002
Kits must reserve inventory across all components at purchase; if any component is unavailable, the kit is unavailable (configurable alternative: back-order permitted).
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/customerCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-KIT-003
Kits may be tied to patterns and classes so a ticket purchase offers the corresponding kit.
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/customerCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-KIT-004
Kits priced as a bundle must still report component-level inventory and attribution.
6h agopackages/core/src/creativeCommerceReadiness/index.test.ts×3packages/core/src/customerCommerceReadiness/index.test.ts×3packages/core/src/creativeCommerceReadiness/index.ts+3 more
REQ-INFInfluencer & Affiliate System13 shipped0 wip0 todo100%
- ShippedREQ-INF-001
Influencer accounts with profile, agreed commission terms, and payout destination.
6h agopackages/core/src/customerJourneyReadiness/index.test.ts×4packages/core/src/platformOperationsReadiness/index.test.ts×2packages/core/src/platformOperationsReadiness/index.ts - packages/core/src/platformOperationsReadiness/index.ts
- packages/core/src/platformOperationsReadiness/index.ts
- ShippedREQ-INF-004
Commission tracking visible to both the store and the influencer in real time.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-INF-010
Support percentage, fixed, tiered, and product/event-specific commission schedules.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-INF-011
Commission rules must support start/end dates, exclusions (e.g., sale items), and per-customer caps.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-INF-020
Attribution must use first-touch and last-touch models with a configurable window (default 30 days) and deterministic tie-breaking.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-INF-021
Attribution sources include referral link clicks, discount code redemption, and customer-linked sessions.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-INF-022
Multi-channel attribution must work across POS, web, and event ticketing (e.g., an in-store QR for an influencer).
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-INF-030
The system must persist: Influencers, ReferralLinks, DiscountCodes, AttributionSessions, Orders, OrderAttribution, OrderItems, CommissionRules, CommissionLedger, Payouts.
6h agoapps/jobs/src/workers/payoutJob.ts×2packages/core/src/customerJourneyReadiness/index.tspackages/core/src/platformOperationsReadiness/index.ts+1 more - ShippedREQ-INF-040
Payouts must be produced on a configurable schedule (weekly, monthly) with a minimum threshold.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-INF-041
The payout pipeline must reconcile against the commission ledger and produce per-payout statements.
6h agopackages/core/src/platformOperationsReadiness/index.test.ts×2packages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-INF-042
Payouts must integrate with a marketplace-payments provider that supports KYC, 1099 reporting, and cross-border payouts where applicable.
6h agopackages/core/src/customerJourneyReadiness/index.test.tspackages/core/src/platformOperationsReadiness/index.test.tspackages/core/src/platformOperationsReadiness/index.ts
REQ-QLTQuilt Pattern Visualization7 shipped0 wip0 todo100%
- ShippedREQ-QLT-001
Customers and store staff must be able to design and preview a quilt pattern with arbitrary fabric assignments and swap fabrics dynamically.
6h agopackages/core/src/quilt/patterns.ts×3apps/web/src/components/QuiltVisualizer.tsx×2packages/core/src/creativeCommerceReadiness/index.test.ts×2+9 more - ShippedREQ-QLT-002
The Quilt Designer must support comparison of two or more fabric variations side-by-side.
6h agoapps/web/src/app/(storefront)/visualizer/page.tsxapps/web/src/components/QuiltVisualizer.tsxpackages/core/src/creativeCommerceReadiness/index.ts+1 more - ShippedREQ-QLT-003
The Quilt Designer must suggest fabrics from in-stock inventory and flag out-of-stock selections.
6h agoapps/web/src/components/QuiltVisualizer.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-QLT-004
The Quilt Designer must compute yardage requirements per fabric role (top, backing, binding) based on pattern and size.
6h agopackages/core/src/quilt/patterns.test.ts×2packages/core/src/quilt/patterns.ts×2apps/web/src/components/QuiltVisualizer.tsx+2 more - ShippedREQ-QLT-005
Outputs must include a shareable preview (image and/or link), a shopping list, and an option to add all required fabrics to cart as a kit.
2h agoapps/web/src/components/QuiltVisualizer.tsx×2apps/web/src/app/(storefront)/visualizer/actions.tsapps/web/src/app/(storefront)/visualizer/page.tsx+4 more - ShippedREQ-QLT-006
The interactive Quilt Designer preview is a client-rendered experience (see section 29 Rendering). Server-side high-quality renders are produced on demand for shareable images and may use GPU compute.
2h agoapps/web/src/app/(storefront)/visualizer/page.tsx×2apps/web/src/components/QuiltVisualizer.tsxapps/web/src/env.ts+3 more - ShippedREQ-QLT-007
Human-facing product copy must refer to the feature as Quilt Designer, not Quilt Visualizer, across storefront navigation, metadata, breadcrumbs, share previews, admin copy, generated preview labels, and documentation. Existing /visualizer…
6h agopackages/core/src/creativeCommerceReadiness/index.test.ts×3apps/web/src/app/(storefront)/visualizer/opengraph-image.tsxpackages/core/src/creativeCommerceReadiness/index.ts+2 more
REQ-GSWGuided Shopping Wizard5 shipped0 wip0 todo100%
- ShippedREQ-GSW-001
Entry prompt: "What are you shopping for?" ??? options: Start a new project, Buy fabric, Buy thread, Shop events, Browse.
6h agopackages/core/src/platformQualityReadiness/index.test.ts×4apps/web/src/app/(storefront)/wizard/page.tsx×3apps/web/src/app/(storefront)/wizard/opengraph-image.tsx×2+4 more - ShippedREQ-GSW-002
Project flow: pick pattern ??? choose size ??? pick fabrics (top, backing, binding) ??? pick batting ??? pick thread ??? tools & extras ??? review ??? add to cart.
6h agoapps/web/src/app/(storefront)/wizard/project/actions.tsapps/web/src/lib/kitCart.tspackages/core/src/platformOperationsReadiness/index.ts - packages/core/src/platformOperationsReadiness/index.ts
- ShippedREQ-GSW-004
The wizard must compute and display total yardage, estimated subtotal, and substitution options.
6h agoapps/web/src/app/(storefront)/wizard/project/actions.tspackages/core/src/platformOperationsReadiness/index.ts - apps/web/src/app/(storefront)/wizard/project/page.tsx×2packages/db/src/migrations/0014_customer_projects.sql×2apps/web/src/app/(storefront)/wizard/project/actions.ts+11 more
REQ-SYNMulti-Channel Sync & Offline8 shipped0 wip0 todo100%
- ShippedREQ-SYN-001
Inventory changes from any channel (POS, web, drops, events) must propagate to other active channels within 2 seconds at p95 under normal load.
6h agoapps/web/src/lib/roadmap.test.ts×2packages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-SYN-002
Drop countdowns, class check-ins, and POS cart updates must use a realtime transport capable of ordered per-channel delivery (see �29).
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-SYN-010
The iPad POS must remain fully functional offline for sales of items whose inventory is non-contested locally.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-SYN-011
Offline sales of items with limited inventory (drops, last-bolt items) must be either disallowed offline or reserved via a server hold taken while online and redeemed offline.
6h agoapps/pos/src/runtime/registerWorkbench.test.tspackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-SYN-012
On reconnection, transactions sync in order of occurrence with idempotent, server-authoritative application.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-SYN-013
Local-first replication is a scoped capability, not the default application data path. BoltToCart will use a proprietary local-first sync layer only where offline operation, restart durability, or sub-second register latency requires it (i…
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-SYN-020
The system must define a documented conflict resolution model for each mutable entity. Default model:
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-SYN-021
The server must never oversell a bolt even under concurrent offline sync. If an offline sale cannot be honored on sync, the system must generate an exception for staff remediation (refund, substitute, or split).
6h agopackages/core/src/platformOperationsReadiness/index.test.ts×3packages/core/src/platformOperationsReadiness/index.ts
REQ-NOTNotifications5 shipped0 wip0 todo100%
- ShippedREQ-NOT-001
Support transactional email (order, ticket, shipping, password), marketing email (drops, classes, abandoned cart), SMS (order, ticket, event reminder, drop alert), and web/mobile push.
6h agopackages/core/src/customerJourneyReadiness/index.test.ts×2packages/core/src/revenueOperationsReadiness/index.test.ts×2packages/core/src/platformOperationsReadiness/index.ts+1 more - ShippedREQ-NOT-002
Each store must have a verified sender identity with SPF/DKIM/DMARC alignment and a per-store unsubscribe center.
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-NOT-003
Marketing messaging must honor CAN-SPAM and TCPA: explicit consent capture, list hygiene, opt-out within one business day.
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-NOT-004
Critical notifications must have a delivery-retry policy and an observable delivery-success metric; deliverability dashboards per store are required.
6h agopackages/core/src/customerJourneyReadiness/index.test.ts×6packages/core/src/platformOperationsReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-NOT-005
Templates must be authorable by store owners with safe variables and preview.
6h agopackages/core/src/revenueOperationsReadiness/index.test.ts×3packages/core/src/customerJourneyReadiness/index.test.ts×2packages/core/src/platformOperationsReadiness/index.ts+1 more
REQ-SRCSearch & Discovery18 shipped0 wip0 todo100%
- ShippedREQ-SRC-514
The /opensearch.xml URL template was expanded from ?q={searchTerms} to ?q={searchTerms}&sort=relevance (REQ-SRC-514). JSON suggestions template omitted: no /shop/suggest.json (or similar) endpoint exists today. AUDIT-DEFERRED: Add <Url typ…
6h agopackages/core/src/storefrontExperienceReadiness/index.test.ts×2apps/web/src/app/(storefront)/opensearch.xml/route.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-SRC-515
The /shop page metadata must reflect text-search intent when ?q=<query> is present. For search URLs, generateMetadata uses title Search results for "<query>" — BoltToCart and a description that says the catalog is showing fabric matching t…
6h agoapps/web/src/app/(storefront)/shop/page.tsxpackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-SRC-516
The tenant /opensearch.xml response body must include a <Language> element using DEFAULT_LOCALE, placed near the existing <Description> / <InputEncoding> fields. The HTTP Content-Language header remains unchanged. This gives OpenSearch cli…
6h agoapps/web/src/app/(storefront)/opensearch.xml/route.tspackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-SRC-517
The /shop/widths facet-index page must render an empty-state card instead of calling notFound() when a tenant has zero width-tagged SKUs. The empty state explains that widths will appear as SKUs are attributed and links to /shop. When widt…
6h agoapps/web/src/app/(storefront)/shop/widths/page.tsxpackages/core/src/storefrontExperienceReadiness/index.test.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-SRC-513
Added sort key "newest-by-collection" to the shop PLP dropdown (label: "Newest (by collection)"). Sorts by collection name ascending (SKUs without a collection sort last), then by createdAt descending within each group. Pure loader/sort ch…
6h agoapps/web/src/lib/storefront.ts×2packages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-SRC-001
Provide faceted search across SKU, collection, designer, color, width, fiber, weight, pattern type, price, and availability, with sub-200ms p95 response time for the storefront.
6h agopackages/testing/src/search.test.ts×3apps/web/src/lib/storefront.ts×2packages/core/src/storefrontExperienceReadiness/index.test.ts×2+14 more - ShippedREQ-SRC-002
Provide color search (pick a color or upload an image) using dominant colors extracted during media ingest.
6h agopackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-SRC-003
Provide semantic search for free-text queries ("blue floral for a baby quilt") using vector embeddings stored with SKUs.
6h agoapps/web/src/lib/storefront.tspackages/core/src/storefrontExperienceReadiness/index.tspackages/db/src/repositories/skus.ts+1 more - ShippedREQ-SRC-004
Storefront listings must expose canonical URLs, sitemap entries, and structured data for SEO. Sitemaps and robots.txt are served per-origin: the platform apex advertises only platform URLs; each tenant subdomain advertises only that tenant…
6h agoapps/web/src/app/(storefront)/events/instructors/page.tsx×2apps/web/src/app/(storefront)/shop/[slug]/page.tsx×2apps/web/src/app/(storefront)/shop/page.tsx×2+30 more - ShippedREQ-SRC-500
Expose a /shop/fibers facet-index page listing every fiber-content tag (with current cuttable-SKU counts) as a bookmarkable discovery surface, deep-linking to /shop?fiber=<value> for the filtered catalog view. Mirrors the structure of /sho…
6h agoapps/web/src/app/(storefront)/shop/fibers/page.tsxapps/web/src/app/(storefront)/shop/page.tsxpackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-SRC-501
Expose a /shop/widths facet-index page listing every distinct bolt-width value (with current cuttable-SKU counts) as a bookmarkable discovery surface, deep-linking to /shop?width=<value> for the filtered catalog view. Mirrors the structure…
6h agoapps/web/src/app/(storefront)/shop/page.tsxapps/web/src/app/(storefront)/shop/widths/page.tsxpackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-SRC-502
The /shop/rss.xml RSS channel emits <itunes:keywords> and the /opensearch.xml
6h agoapps/web/src/app/(storefront)/opensearch.xml/route.tsapps/web/src/app/(storefront)/shop/rss.xml/route.tsapps/web/src/lib/channelKeywords.test.ts+3 more - ShippedREQ-SRC-503
/shop/widths facet-index page lists all unique fabric-width values present in published SKUs, each with a bolt count. Mirrors the /shop/fibers and /shop/collections pages (REQ-SRC-500/501). BreadcrumbList JSON-LD: "Home ??? Shop ??? Browse…
6h agoapps/web/src/app/(storefront)/shop/widths/page.tsxpackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-SRC-504
/drops/rss.xml and /events/rss.xml must emit <itunes:keywords> (via xmlns:itunes namespace) derived from drop categories and instructor names respectively, matching the pattern REQ-SRC-502 established for /shop/rss.xml. Greedy 255-char fit…
6h agoapps/web/src/app/(storefront)/drops/rss.xml/route.tsapps/web/src/app/(storefront)/events/rss.xml/route.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-SRC-505
/drops/rss.xml must emit a per-item <dc:creator> element (Dublin Core) when the drop has at least one SKU with a non-null designer field ??? using the first designer alphabetically as the attribution. Omitted when no SKU has a designer (ho…
6h agoapps/web/src/lib/drops.ts×2apps/web/src/app/(storefront)/drops/rss.xml/route.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-SRC-507
Route Handler at /shop/opml.xml: OPML 2.0 document listing /shop/rss.xml as a subscribable outline entry. Cache-Control: public, s-maxage=86400. /shop listing page alternates.types["text/x-opml"] wired (REQ-SRC-507).
6h agoapps/web/src/app/(storefront)/shop/opml.xml/route.tsapps/web/src/app/(storefront)/shop/page.tsxpackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-SRC-508
Tenant sitemap promotes live drops (startAt <= now < endAt) to changeFrequency: hourly during the sale window (REQ-SRC-508).
6h agoapps/web/src/app/sitemap.tspackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-SRC-509
/shop PLP metadata adds alternates.types["application/opensearchdescription+xml"]: "/opensearch.xml" so browsers offer fabric search in URL-bar autocomplete (REQ-SRC-509).
6h agoapps/web/src/app/(storefront)/shop/page.tsxpackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts
REQ-CRMCustomer Management & Loyalty18 shipped0 wip0 todo100%
- ShippedREQ-CRM-001
Unified customer profile across POS, web, events, and drops, keyed by email or phone with merge support.
6h agopackages/core/src/customerJourneyReadiness/index.test.ts×6packages/db/src/migrations/0013_customers.sql×3packages/core/src/customerAutomationReadiness/index.test.ts×2+13 more - ShippedREQ-CRM-002
Purchase history, event history, saved projects, wishlists, and preferences. Customer account surfaces are served on the tenant storefront origin (<subdomain>.<root>/account) and are noindex. See also: REQ-ARC-036.
48m agoapps/web/src/app/account/wishlist/actions.ts×2packages/db/src/migrations/0013_customers.sql×2packages/db/src/migrations/0015_customer_wishlist.sql×2+24 more - ShippedREQ-CRM-003
Loyalty program with configurable earn rules (per dollar, per yard, per event), tier ladder, and redemption against orders and tickets.
48m agopackages/db/src/migrations/0016_loyalty.sql×3packages/events/src/domain/loyalty.ts×3packages/db/src/migrations/0028_customer_segments.sql×2+15 more - ShippedREQ-CRM-004
Marketing segment builder with exportable lists and one-click audience handoff to the email/SMS provider.
6h agopackages/db/src/migrations/0028_customer_segments.sql×2packages/testing/src/customerSegments.test.ts×2packages/core/src/customerAutomationReadiness/index.ts+5 more - packages/core/src/retailRuntimeReadiness/index.test.ts×3packages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts+4 more
- ShippedREQ-CRM-502
/admin/crm/segments renders persisted customer segment definitions through segmentsRepo.list, displays evaluated membership counts from segmentsRepo.countMembers, labels supported structured rules, and links to the segment creation surface…
6h agopackages/db/src/migrations/0032_customer_segments_rule_json.sql×2apps/web/src/app/admin/crm/segments/page.tsxpackages/core/src/commerceReadiness/index.ts+4 more - ShippedREQ-CRM-546
/admin/crm/contacts renders a tenant-scoped CRM contacts grid backed by contactsRepo.list, with source filter chips for all / website / POS / import / manual, per-source counts, accessible table semantics, and empty states for both no cont…
6h agoapps/web/src/app/admin/crm/contacts/page.tsxpackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-CRM-501
/admin/loyalty/settings loyalty-program configuration page. Reads earn rates (pts/$1, pts/yd, event bonus, discount/100pts) and tier thresholds (Silver/Gold lifetime pts) from customerLoyaltyRepo.getSettingsRow. Read-only display; edit for…
6h agoapps/web/src/app/admin/loyalty/settings/page.tsxpackages/core/src/commerceReadiness/index.tspackages/core/src/customerAutomationReadiness/index.ts+2 more - ShippedREQ-CRM-500
/admin/crm/segments customer segment list. Honest placeholder with four example segment rows (greyed out) and a 'New segment (coming soon)' CTA. Data lands when customer_segments schema ships.
6h agopackages/db/src/migrations/0018_customer_purchase_fields.sql×3packages/core/src/commerceReadiness/index.ts×2packages/db/src/migrations/0028_customer_segments.sql×2+8 more - ShippedREQ-CRM-547
/admin/customers must render an active-filter summary whenever search, tier, spend, or sort deviates from the default, including a one-click clear-all link back to the unfiltered customer list.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-CRM-548
/admin/customers tier chips, sort links, search form, clear-search link, and pagination must preserve the active lifetime-spend filter so admins do not lose a segment while paging or refining.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-CRM-549
/admin/customers/customers.csv must honor the same search, loyalty-tier, lifetime-spend, and sort params as the customer grid so exported CSVs match the visible cohort.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-CRM-550
/admin/customers CSV export links and suggested download filenames must include active filter suffixes for search, tier, spend, and sort where present.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-CRM-551
/admin/customers must expose order count and lifetime spend columns in the customer table to make high-value accounts visible without opening each detail page.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-CRM-552
/admin/customers must include a visible cohort summary for the current loaded window: visible page count, matching cohort count, loaded-window count, and tenant total.
6h agopackages/core/src/commerceReadiness/index.test.ts×2packages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-CRM-553
/admin/customers/[id] must expose a copy-Clerk-user-id affordance beside the stored Clerk user id for staff support handoffs.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-CRM-554
/admin/customers/[id] must compute and display average order value from lifetime spend divided by order count, rendering zero for customers with no orders.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-CRM-555
/admin/customers/[id] must expose a print-summary control in the detail header for staff account reviews.
6h agopackages/core/src/customerAutomationReadiness/index.test.ts×3packages/core/src/customerCommerceReadiness/index.test.ts×3packages/core/src/commerceReadiness/index.test.ts+3 more
REQ-STFStaff & Multi-Store4 shipped0 wip0 todo100%
- ShippedREQ-STF-001
Role-based access control with at least these built-in roles: Owner, Manager, Cashier, Fulfillment, Instructor, Accountant, Read-only. Custom roles with per-capability permissions must be supported.
6h agopackages/core/src/platformQualityReadiness/index.test.ts×2apps/web/src/app/admin/coupons/new/actions.tsapps/web/src/app/admin/drops/new/actions.ts+2 more - ShippedREQ-STF-002
Every state-changing action must be recorded in an immutable audit log with actor, before/after, and reason where applicable.
6h agoapps/web/src/app/admin/audit/page.tsx - ShippedREQ-STF-003
Multi-location support with per-location inventory, staff assignments, and transfer workflow.
6h agoapps/web/src/app/admin/pos-devices/page.tsx - ShippedREQ-STF-004
Session and device management: list active sessions, revoke any session, enforce idle timeout, require step-up auth for sensitive actions.
6h agopackages/core/src/platformQualityReadiness/index.test.ts×3apps/web/src/app/admin/pos-devices/page.tsx×2
REQ-RPTReporting & Analytics7 shipped0 wip0 todo100%
- ShippedREQ-RPT-001
Sales reports by yardage, SKU, collection, designer, channel, staff, day/hour, and customer segment.
6h agopackages/core/src/customerJourneyReadiness/index.test.ts×4packages/core/src/revenueOperationsReadiness/index.test.ts×4packages/core/src/platformOperationsReadiness/index.test.ts+2 more - ShippedREQ-RPT-002
Inventory reports: stock levels, turnover, sell-through, remnant ratio, shrinkage, landed cost vs. margin.
6h agopackages/core/src/revenueOperationsReadiness/index.test.ts×2packages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-RPT-003
Event/drop reports: registrations, attendance, waitlist conversion, sell-through time, queue health.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-RPT-004
Influencer reports: revenue attribution, commission accrued, payout status, ROI by campaign.
6h agopackages/core/src/platformOperationsReadiness/index.ts - packages/core/src/platformOperationsReadiness/index.ts
- ShippedREQ-RPT-006
Dashboards must render top-of-funnel KPIs (today's sales, open orders, active carts, drop status) with ??? 10s staleness.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-RPT-007
Tenant cost-of-service (Runpod GPU-seconds, Neon compute, bandwidth, Stripe fees, email/SMS volume) must be visible to platform operators per REQ-ANL-032 and surface-able to store owners where relevant to their plan.
6h agopackages/core/src/customerJourneyReadiness/index.test.tspackages/core/src/platformOperationsReadiness/index.ts
REQ-HDWHardware Ecosystem5 shipped0 wip0 todo100%
- ShippedREQ-HDW-001
Primary POS station: iPad (14" recommended), stand, receipt printer, cash drawer, Bluetooth scanner.
6h agopackages/core/src/releaseCompletionReadiness/index.test.ts×2packages/demo-data/src/packs/0049_release_completion_readiness_suite.ts - ShippedREQ-HDW-002
Optional: customer-facing display, thermal label printer, scale (for by-weight items), payment terminal.
6h agoapps/pos/src/hw/customerDisplay.tsapps/pos/src/hw/physicalScale.ts - ShippedREQ-HDW-003
Supported protocols: ESC/POS for receipt printers (USB/LAN/Bluetooth), HID for scanners, RJ-11 kick for cash drawers, ZPL/EPL for label printers, certified payments SDKs for card terminals including Tap-to-Pay on iPad/iPhone where availabl…
6h agoapps/pos/src/hw/types.ts - ShippedREQ-HDW-004
Hardware pairing must be self-service via the POS app with diagnostics and firmware/driver update prompts.
6h agoapps/pos/src/hw/types.ts - ShippedREQ-HDW-005
The platform must publish a certified-hardware compatibility matrix and test new devices before listing.
6h agopackages/core/src/releaseCompletionReadiness/index.test.ts×3packages/demo-data/src/packs/0049_release_completion_readiness_suite.ts
REQ-APIPublic API & Extensibility5 shipped0 wip0 todo100%
- ShippedREQ-API-001
Publish a versioned public API covering inventory, orders, customers, events, tickets, drops, and influencer data with OpenAPI schemas.
6h agopackages/core/src/domainFoundationReadiness/index.test.ts×5packages/core/src/platformAssuranceReadiness/index.test.ts×2packages/core/src/platformQualityReadiness/index.test.ts×2+1 more - packages/core/src/platformAssuranceReadiness/index.ts
- ShippedREQ-API-003
Webhooks for all significant events (order.created, cut.completed, drop.opened, ticket.checked_in, payout.paid), with signing, retries, and a dead-letter queue.
6h agopackages/core/src/domainFoundationReadiness/index.test.ts×3packages/core/src/platformQualityReadiness/index.test.ts×2packages/core/src/platformAssuranceReadiness/index.ts+1 more - ShippedREQ-API-004
Rate limiting, quotas, and a developer portal with docs, sandbox, and usage analytics.
6h agopackages/core/src/domainFoundationReadiness/index.test.ts×2packages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-API-005
A plugin/app model for third-party extensions with permission scopes and review.
6h agopackages/core/src/platformAssuranceReadiness/index.test.ts×3packages/core/src/platformAssuranceReadiness/index.tspackages/core/src/platformQualityReadiness/index.test.ts
REQ-SECSecurity, Privacy & Compliance17 shipped0 wip3 todo85%
- ShippedREQ-SEC-001
Authentication via a managed identity provider with MFA support; device-bound sessions for POS.
6h agopackages/core/src/platformQualityReadiness/index.test.ts×6packages/core/src/operationalTelemetryReadiness/index.test.ts×4packages/core/src/platformAssuranceReadiness/index.test.ts×2+1 more - ShippedREQ-SEC-002
Role-based access control with tenant isolation enforced at both application and database (RLS) layers.
48m agoapps/web/src/lib/safeEventSlug.ts×2apps/web/src/lib/wizard.test.ts×2apps/web/src/app/(storefront)/cart/actions.ts+42 more - ShippedREQ-SEC-003
Secrets must be stored in a managed secrets system; no secrets in code or environment dumps.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-SEC-004
All traffic must be TLS 1.2+; HSTS enforced; HTTPS-only cookies; SameSite=Lax default.
6h agoapps/web/next.config.mjspackages/core/src/platformAssuranceReadiness/index.ts - packages/core/src/platformAssuranceReadiness/index.ts
- ShippedREQ-SEC-006
Vulnerability management: dependency scanning in CI, periodic third-party penetration tests, bug-bounty contact.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-SEC-007
Bot prevention: public and high-risk surfaces must be protected by a CAPTCHA-class challenge layered on top of per-IP and per-session rate limits. Required surfaces include account signup, password reset, checkout, drop queue entry, event…
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-SEC-010
Card data handling must qualify for PCI DSS SAQ-A by using hosted iframes or tokenization; card PAN must never touch BoltToCart servers.
48m agoapps/web/src/app/admin/settings/actions.ts×3apps/web/src/lib/demoStripeEmbeddedCheckoutHandoff.ts×3packages/core/src/platformQualityReadiness/index.test.ts×3+6 more - ShippedREQ-SEC-011
3-D Secure 2 must be supported; Stripe Radar-class fraud scoring (or equivalent) must be enabled for card-not-present.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-SEC-012
Chargebacks must have a workflow that ties disputes to orders, evidence, and a response SLA.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-SEC-020
Privacy posture must cover GDPR and CCPA/CPRA: lawful-basis tracking, data subject access/export/deletion, consent for marketing, minor handling, data map. Admin, account, cart, and auth surfaces must be noindex and excluded from sitemaps…
6h agoapps/web/src/app/(platform)/(auth)/layout.tsxapps/web/src/app/(platform)/privacy/page.tsxapps/web/src/app/(platform)/terms/page.tsx+12 more - ShippedREQ-SEC-021
Personal data retention must have configurable policies per data class; PII purges must be auditable. Analytics events are subject to the same retention policy and the PII minimization rule in REQ-ANL-003; session replays are redacted and…
6h agopackages/events/src/domain/customers.ts×2apps/web/src/app/admin/audit/page.tsxpackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-SEC-022
A cookie/consent banner and preference center must be available for all storefronts. Analytics, session replay, and marketing pixels must respect the preference state on every event emission.
6h agoapps/web/src/components/CookieBanner.tsx×2apps/web/src/app/(platform)/cookies/CookieSettingsForm.tsxapps/web/src/components/CookieBannerGate.tsx+5 more - ShippedREQ-SEC-030
Sales tax must be computed per U.S. state economic-nexus rules and per destination locality, with support for tax-exempt customers (resale certificates stored).
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-SEC-031
For international expansion, the system must integrate a tax engine capable of VAT/GST (deferred to v1+).
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-SEC-040
All customer-facing surfaces must meet WCAG 2.2 AA; automated checks in CI and periodic manual audits.
6h agoapps/web/src/app/(platform)/accessibility/page.tsxapps/web/src/components/LegalFooterLinks.tsxapps/web/src/components/StorefrontShell.tsx+1 more - ShippedREQ-SEC-041
POS must be usable with VoiceOver on iPad and include large-text and high-contrast modes.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - Not startedREQ-SEC-042
Shared product-library tables must enforce access boundaries appropriate to global reference data: tenants may read approved records and their own tenant links, operators may review candidate and blocked records, and no tenant may modify s…
- Not startedREQ-SEC-043
Source connector credentials, cookies, tokens, and account identifiers must be treated as secrets or restricted operational metadata. They must never appear in raw snapshots, normalized records, logs, analytics events, screenshots, parser…
- Not startedREQ-SEC-044
Product-library source data must be classified for copyright, licensing, and terms-of-use risk before tenant-facing publication. The system must support source-level takedown, product-level takedown, media-only takedown, field redaction, a…
REQ-ANLAnalytics & Telemetry27 shipped1 wip9 todo73%
- ShippedREQ-ANL-001
Every business/domain event type is defined in the shared packages/events catalog (AsyncAPI-style), typed end-to-end, emitted exactly once per business occurrence via a transactional outbox, and versioned. Ad-hoc event names or untyped pay…
6h agopackages/core/src/operationalTelemetryReadiness/index.test.ts×6packages/core/src/platformQualityReadiness/index.test.ts×4packages/core/src/retailRuntimeReadiness/index.test.ts×2+28 more - ShippedREQ-ANL-002
Every event ??? of any class ??? carries a standard context object: eventId, occurredAt, tenantId, userId (nullable), sessionId, requestId, traceId, releaseVersion, source (web|pos|server|job). Context is injected by framework middleware;…
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/core/src/telemetry/types.ts - ShippedREQ-ANL-003
PII minimization: events never carry raw PAN, full addresses, or PII beyond the identifying tenantId/userId, except where an event is specifically a PII event (KYC, profile update) which is marked as such and subject to �25.3 retention pol…
6h agoapps/pos/src/flow/receiptDelivery.tsapps/web/src/app/admin/audit/page.tsxpackages/core/src/retailRuntimeReadiness/index.ts+4 more - ShippedREQ-ANL-004
Tenant isolation applies to analytics as strictly as to data: every query against event data is scoped to a tenant or explicitly marked "platform-wide" and gated behind operator-only auth.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.tspackages/db/src/migrations/0002_event_outbox.sql - ShippedREQ-ANL-020
Outbox delivery. Business events in the transactional outbox are delivered to per-tenant HTTPS webhook endpoints with an HMAC-SHA256 signature over <timestampMs>.<rawBody>, exponential-backoff retries on transient failures, and a dead-lett…
6h agoapps/jobs/src/workers/outbox-relay.ts×3apps/web/src/lib/roadmap.test.ts×2packages/db/src/migrations/0008_webhook_delivery.sql×2+17 more - ShippedREQ-ANL-010
All product/UX events emit through a single SDK wrapper in packages/core/telemetry. Feature code never calls the analytics vendor directly ??? this indirection lets us swap vendors without touching feature code.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-011
Funnels instrumented from day one for: onboarding (REQ-ONB-*), ecom checkout, POS cut-to-paid, drop queue-to-won, guided project wizard, influencer link-to-sale, event registration.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-012
Retention cohorts computable by store activation month (tenants) and by end-customer first-purchase month.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-013
Session replay available for storefront and admin surfaces, with automatic redaction of all input fields marked PII/payment; default retention 30 days, configurable per-tenant per �25.3.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-014
Feature-flag exposure (REQ-ARC-031) automatically emits an exposure event correlated with downstream outcome metrics so every flag rollout produces a measurable effect size.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-021
POS app performance telemetry: scan-to-add latency (REQ-NFR-002), tender-to-receipt latency, offline-session duration, sync catch-up duration, crash-free-session rate, hardware pairing success rate, bundle install/update success.
6h agopackages/events/src/domain/pos.ts×2packages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-022
Runtime errors ??? JS errors and native crashes ??? aggregated per release with source maps, release tagging, and per-tenant slicing. Alerts on new or regressed errors.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-023
RUM data is sliceable by tenant, route, release, device class, connection class, A/B experiment variant.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-030
Domain events, operational metrics, and a curated subset of transactional tables replicate to an analytics warehouse with freshness SLO of ??? 15 minutes for operational metrics and ??? 24 hours for full historical sync.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-031
A semantic layer (dbt or equivalent) translates raw event tables into governed business metrics: GMV, take rate, active stores, retention, LTV, CAC-equivalent, margin-per-store. All dashboards consume this layer, not raw tables, to prevent…
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-032
Per-tenant cost attribution: capture Runpod GPU-seconds, Neon compute-minutes, Vercel bandwidth, Stripe fees, email/SMS volume, and storage consumption per tenant. Drives margin-per-store reporting and is a precondition for pricing-plan de…
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-040
Store-owner dashboard (scoped to their tenant): today's sales, active carts, open orders, drop status, cut queue, staff activity, inventory-confidence score, Core Web Vitals for their storefront, top POS errors.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-041
Platform-operator dashboard (all tenants, operator-only auth): MRR/ARR, net revenue retention, active stores, churn risk cohort, top cost-contributor tenants, platform error rate, drop queue depth, SLO burn-rates.
10m agoapps/web/src/app/(platform)/platform/page.tsxpackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-042
Every major feature ships with at least one dashboard tile ??? this is a Definition-of-Done checklist item.
6h agopackages/demo-data/src/packs/0015_hosted_email_admin.ts×2packages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts×2packages/demo-data/src/packs/0017_admin_storefront_launch_readiness.ts×2+27 more - ShippedREQ-ANL-043
Dashboards render exclusively from the semantic layer (REQ-ANL-031); bespoke queries against raw event tables are rejected in review.
6h agopackages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - packages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts
- ShippedREQ-ANL-051
Burn-rate alerts (multi-window, multi-burn-rate) route to on-call per REQ-OBS-008 when an SLO budget is at risk. Alerts link to a runbook.
6h agopackages/core/src/retailRuntimeReadiness/index.test.ts×3packages/core/src/retailRuntimeReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-ANL-052
Alert hygiene: every alert must be actionable, linked to a runbook, and have a named owner. Alerts and their false-positive rate are reviewed quarterly; chronically noisy alerts are fixed or retired.
6h agopackages/core/src/retailRuntimeReadiness/index.test.tspackages/core/src/revenueOperationsReadiness/index.ts - In progressREQ-ANL-501
Production checkout and fulfillment must emit product and business telemetry through the approved wrappers for checkout started, checkout quote generated, checkout blocked, payment succeeded/failed, order created, inventory hold created/ex…
packages/core/src/operationalTelemetryReadiness/index.test.ts×2 - Not startedREQ-ANL-502
Checkout funnel telemetry must include an implementation-owned event contract test that proves product events and business events carry no PAN, card tokens, raw addresses, or full free-form PII. The test must cover quote generated, checkou…
- ShippedREQ-ANL-503
Checkout funnel observability must publish a dashboard-ready readiness metric for each tenant that separates shopper-blocking prerequisites from payment-provider failures. The metric must include counts for contact invalid, fulfillment unr…
2h agoapps/web/src/lib/checkoutReadinessReporting.ts×3apps/web/src/app/(storefront)/cart/page.tsx×2apps/web/src/app/admin/settings/page.tsx+1 more - ShippedREQ-ANL-504
Checkout readiness reporting must expose a launch-smoke and admin-dashboard export of payment-blocking prerequisites by tenant. The report must separate shopper-input blockers from operator-configuration blockers and provider failures; inc…
2h agoapps/web/src/lib/checkoutReadinessReporting.test.ts×5apps/web/src/lib/checkoutReadinessReporting.ts×3apps/web/src/app/admin/settings/checkout-readiness.csv/route.ts+1 more - ShippedREQ-ANL-505
Checkout replay and recovery observability must report invalid, expired, mismatched, refreshed, and accepted quote-token outcomes by tenant and route. The metric must include attempt age bucket, blocker/recovery reason, lifecycle state, an…
6h agoapps/web/src/lib/checkoutReplayObservability.ts×3apps/web/src/lib/checkoutReplayObservability.test.ts - Not startedREQ-ANL-506
Checkout launch dashboards must correlate quote replay outcomes, payment-provider handoff outcomes, and admin checkout-settings conflicts into a tenant-scoped funnel. The dashboard data contract must include route, lifecycle state, attempt…
- Not startedREQ-ANL-507
Checkout launch observability must provide an abandonment and retry dashboard for the public cart through order confirmation. The dashboard must show counts and rates for quote generated, quote refreshed, payment handoff attempted, hosted-…
- Not startedREQ-ANL-508
Checkout launch observability must report payment-provider webhook and return-delay health. The dashboard contract must bucket provider return-to-webhook lag, webhook retry count, duplicate webhook deliveries, order-creation retry age, and…
- Not startedREQ-ANL-509
Checkout provider-return observability must alert when webhook lag, duplicate provider deliveries, order-creation retry age, or fulfillment queue lag exceeds the MVP threshold for any tenant. Alert payloads must include tenant, route, paym…
- ShippedREQ-ANL-510
Checkout verification observability must separate tampered-return attempts from ordinary provider delays. Dashboard data must bucket missing ledgers, invalid ledger seals, cross-tenant attempt mismatches, provider-session mismatches, stale…
48m agoapps/web/src/lib/checkoutReturnObservability.ts×3apps/web/src/app/(storefront)/cart/confirmation/page.tsxapps/web/src/lib/checkoutReturnObservability.test.ts - Not startedREQ-ANL-511
Checkout return-verification telemetry must have a contract test that asserts every emitted bucket remains PII-minimized. The test must cover missing ledgers, missing seals, invalid seals, cross-tenant attempts, provider-session mismatches…
- Not startedREQ-ANL-512
Product-library ingestion telemetry must report connector runs, discovered products, normalized products, approved products, rejected products, duplicate candidates, media successes/failures, source-block states, and parser warning rates b…
- Not startedREQ-ANL-513
Store-owner library-assisted intake telemetry must report lookup attempts, match acceptance, fallback manual creation, field overrides, label-print outcomes, and time-to-receive by tenant and intake workflow. Events must use packages/core/…
- Not startedREQ-ANL-514
The store-owner dashboard must include a product-library value tile after the feature is enabled, showing library-assisted products created, manual products created, pending update suggestions, unresolved UPC conflicts, and estimated intak…
REQ-OBSObservability & Disaster Recovery8 shipped0 wip0 todo100%
- ShippedREQ-OBS-001
Centralized structured logging with per-tenant tagging and the standard context object from REQ-ANL-002; logs retained ??? 30 days hot, ??? 1 year cold.
6h agopackages/core/src/operationalTelemetryReadiness/index.test.ts×4packages/core/src/platformAssuranceReadiness/index.test.ts×2packages/core/src/platformQualityReadiness/index.test.ts×2+1 more - ShippedREQ-OBS-002
Error tracking with per-release and per-tenant slicing; alerting on new/regressed errors.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-OBS-003
APM with OpenTelemetry distributed tracing end-to-end (Next.js ??? Postgres ??? jobs ??? Runpod ??? Stripe), database query insights, and a synthetic probe hitting POS and checkout paths every minute.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - packages/core/src/platformQualityReadiness/index.test.ts×2packages/core/src/platformAssuranceReadiness/index.ts
- ShippedREQ-OBS-005
RPO (recovery point objective) ??? 5 minutes for transactional data via point-in-time recovery.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-OBS-006
RTO (recovery time objective) ??? 1 hour for the primary region; ??? 4 hours for full regional failover.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - packages/core/src/platformAssuranceReadiness/index.ts
- ShippedREQ-OBS-008
Incident runbooks and on-call rotation; customer-impacting incidents must produce a public postmortem within 5 business days.
6h agopackages/core/src/platformAssuranceReadiness/index.test.ts×3packages/core/src/operationalTelemetryReadiness/index.test.tspackages/core/src/platformAssuranceReadiness/index.ts+1 more
REQ-UXUX Principles37 shipped0 wip0 todo100%
- ShippedREQ-UX-001
Fast checkout ??? p95 cart-to-paid ??? 10 seconds on reference iPad hardware for a typical 3-line fabric sale.
6h agopackages/core/src/engagementExperienceReadiness/index.test.ts×4packages/core/src/publicExperienceReadiness/index.test.ts×4packages/core/src/engagementExperienceReadiness/index.ts+1 more - ShippedREQ-UX-002
Minimal-click design: core POS actions reachable within 2 taps from the register home.
6h agopackages/core/src/engagementExperienceReadiness/index.test.ts×2packages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-003
Tablet-first and visual-first design for the POS; responsive, mobile-first for storefronts.
6h agoapps/web/src/app/(storefront)/cart/loading.tsxapps/web/src/app/(storefront)/drops/loading.tsxapps/web/src/app/(storefront)/events/instructors/loading.tsx+9 more - apps/web/src/app/(platform)/accessibility/page.tsxpackages/core/src/publicExperienceReadiness/index.ts
- ShippedREQ-UX-005
Storefront performance budget: LCP ??? 2.0s, INP ??? 200ms, CLS ??? 0.1 at p75 on 4G reference devices (matching Core Web Vitals "Good").
6h agopackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-006
Internationalization: v1 US/English-only; i18n scaffolding must be present so locales and currencies can be added without a re-architecture.
6h agoapps/web/src/lib/formattingLocale.ts×10apps/web/src/i18n/config.test.ts×2apps/web/src/i18n/config.ts+4 more - ShippedREQ-UX-510
scroll-margin-top: 5rem extended to h4[id] anchor destinations in globals.css. Extends REQ-UX-501 (h2[id], h3[id]) to h4. The admin audit FAQ and drop/event detail pages use <h4 id="..."> deep-link targets that hide under the sticky header…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-511
text-wrap: balance extended to th in globals.css. Admin table column headers (Bolt, Designer, Status, Cuttable yardage, Last updated) are short label-tier strings that benefit from balanced wrapping, exactly as <caption>, <dt>, and <summar…
6h agopackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-513
@media print ??? table { table-layout: auto !important } + td, th { width: auto !important; white-space: normal !important } in globals.css. Resets Tailwind's fixed-width column utilities (w-*) on print so date, yardage, and ID values don'…
6h agopackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-515
.animate-pulse { animation: none !important } inside the @media (prefers-reduced-motion: reduce) block in globals.css. Tailwind's .animate-pulse class uses animation: pulse 2s cubic-bezier(...) infinite which has higher specificity than th…
6h agopackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-516
text-wrap: pretty extended to td in globals.css. Admin table cells with multi-word content (event names, customer names, SKU descriptions) can orphan a single word on wrap. pretty is cheaper than balance for flowing prose and appropriate f…
6h agopackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-517
data-print-hidden attribute on the five bolt-action <section> elements in apps/web/src/app/admin/bolts/[boltId]/page.tsx (Cut yardage, Split, Merge, Override status, Restock). The global [data-print-hidden] { display: none !important } pri…
6h agopackages/core/src/publicExperienceReadiness/index.test.ts×3packages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-512
scrollbar-gutter: stable on #admin-main-content and #storefront-main in globals.css. Reserves a fixed gutter for the OS scrollbar even when no overflow is present, preventing the ~16px layout shift that occurs when a tall page replaces a s…
6h agopackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-539
scroll-margin-top: 5rem extended to h6[id] anchors in globals.css. Completes the h2..h6 sweep started by REQ-UX-501 (h2[id], h3[id]), REQ-UX-510 (h4[id]), and REQ-UX-538 (h5[id]). The admin audit FAQ and a handful of legal-page deep-TOC su…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-540
text-wrap: balance extended to <legend> in globals.css. Completes the short-label-tier sweep started by REQ-UX-503 (<caption>, <dt>, <summary>). Admin fieldsets (/admin/receiving/new, /admin/settings, /admin/events/new, /admin/drops/new) u…
6h agopackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-541
@media (forced-colors: active) { .truncate-cell { forced-color-adjust: auto } } override in globals.css. The REQ-UX-530 .truncate-cell utility is purely structural (ellipsis overflow) ??? the cell carries no author color that needs preserv…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-542
@media print { nav { display: none !important } } rule added to globals.css so every <nav> landmark ??? the storefront shell header/footer nav rails, the mobile drawer <nav>, the admin nav rail, and any future primary/secondary nav ??? is…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-543
touch-action: manipulation extended to [role="button"] in globals.css ??? extends the REQ-UX-506 base-layer rule from button, a to synthetic-button ARIA surfaces. Radix Primitives, shadcn/ui, and a handful of hand-rolled interactive elemen…
6h agopackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-549
accent-color fallback chain on input[type="checkbox"] and input[type="radio"] in globals.css. The existing base-layer rule (accent-color: #171717) is upgraded to var(--bolt-accent, #171717) so a tenant that publishes --bolt-accent on the t…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-550
Quilt Designer photo-preview button copy shortened from "Generate quick photo render" to "Generate Preview" in QuiltVisualizer.tsx. Pure copy change that keeps the action label concise while preserving the same behavior.
6h agopackages/core/src/publicExperienceReadiness/index.test.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-548
@media print { table thead { background: transparent !important } } rule added to globals.css. Admin tables use bg-neutral-100 / bg-neutral-800 on <thead> to separate the header band from body rows on screen; on paper that fill prints as a…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-547
prefers-reduced-motion: reduce override of the UrgencyBadge pulse (REQ-DRP-504). Audit entry ??? confirmed already compliant. apps/web/src/components/UrgencyBadge.tsx reads prefers-reduced-motion via the usePrefersReducedMotion() hook and…
6h agopackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-546
text-wrap: pretty extended to <small> in globals.css. Extends the REQ-UX-500 selector group (li, dd, blockquote, figcaption) to cover fine-print <small> content ??? legal disclaimers, ratings footnotes, pricing asterisks, and microcopy cap…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-545
overscroll-behavior: contain on #visualizer-canvas in globals.css. The /visualizer design-surface wrapper (components/QuiltVisualizer.tsx) gains a stable id="visualizer-canvas" so the CSS rule can target it. When the generated SVG is talle…
6h agoapps/web/src/app/globals.cssapps/web/src/components/QuiltVisualizer.tsxpackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-544
scrollbar-gutter: stable on #cart-summary in globals.css. The cart sticky-summary <section> (apps/web/src/app/(storefront)/cart/page.tsx) gains a stable id="cart-summary" so the CSS rule can target it. Swapping between "subtotal only" and…
2h agoapps/web/src/app/(storefront)/cart/page.tsxapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-551
Every web shell must expose an obvious session action in its primary chrome: unauthenticated visitors see a "Sign in" link, and authenticated users see a visible "Sign out" action without needing to discover an avatar-only menu. Scope incl…
6h agoapps/web/src/app/admin/layout.tsxapps/web/src/components/MobileNavDrawer.tsxapps/web/src/components/PlatformShell.tsx+1 more - ShippedREQ-UX-500
text-wrap: pretty extended to <li>, <dd>, <blockquote>, <figcaption> in globals.css so long-prose bullets on the platform legal / info pages (/privacy, /terms, /accessibility, /cookies, /security) stop orphaning a single short word on the…
6h agoapps/web/src/app/globals.css×2packages/core/src/releaseAcceptanceReadiness/index.test.ts×2packages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-501
scroll-margin-top: 5rem on h2[id] / h3[id] anchor-destination headings in globals.css as a per-target backstop for the global html { scroll-padding-top: 5rem } rule. Covers programmatic scrollIntoView({ block: "start" }) calls and anchors…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-502
@media (prefers-contrast: more) block in globals.css bumps Tailwind border-neutral-100/200 to neutral-400 (light) and border-neutral-800/900 to neutral-500 (dark), and promotes non-active link underlines from hover-only to always-on. Honor…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-503
text-wrap: balance extended to <caption>, <dt>, <summary> in globals.css. Short label-tier text containers (table captions, definition-list terms, disclosure summaries) share the same "multi-line label that orphans its last word" failure m…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-509
@media print rules for the storefront PDP in globals.css. Collapses the two-column article > .grid hero-gallery / detail-text layout to a single column (grid-template-columns: 1fr !important) and caps the first child (gallery column) at 40…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-508
aspect-ratio: 1/1 on the PDP hero-image container. The ProductGallery component in apps/web/src/components/ProductGallery.tsx already uses Tailwind's aspect-square utility (aspect-ratio: 1/1) on the hero image container (<div className="as…
6h agopackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-507
@media (forced-colors: active) { .focus-ring:focus-visible { outline: 2px solid ButtonText; outline-offset: 2px; } } added to globals.css. Windows High Contrast Mode replaces the author color palette, which silently erases box-shadow-based…
6h agoapps/web/src/app/globals.css×2packages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-506
touch-action: manipulation on button, a in apps/web/src/app/globals.css (the equivalent base stylesheet since packages/ui has no CSS file of its own). Removes the 300 ms tap delay on iOS Safari 15 and older Android WebView builds by opting…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-505
@media print CSS rule [data-print-hidden] { display: none !important } added to globals.css, and data-print-hidden attribute added to: AdminNavRail outermost <nav> element, FilterChipRow outermost <nav> element, and the action-bar wrapper…
6h agoapps/web/src/app/globals.css×3packages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-504
overscroll-behavior: contain (Tailwind overscroll-contain) on the storefront filter sidebar (StorefrontFilterRail outer <aside> in apps/web/src/components/StorefrontFilters.tsx). Prevents touch/wheel scroll events from bubbling to the page…
6h agopackages/core/src/releaseAcceptanceReadiness/index.test.ts×3apps/web/src/components/StorefrontFilters.tsxpackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-UX-514
[data-status-badge] { forced-color-adjust: none } inside the @media (forced-colors: active) block in globals.css, plus data-status-badge attribute on every status-badge <span> in StatusBadge.tsx (shared bolt/receiving component) and the lo…
6h agoapps/web/src/app/globals.csspackages/core/src/publicExperienceReadiness/index.ts
REQ-NFRNon-functional Requirements20 shipped0 wip12 todo63%
- ShippedREQ-NFR-001
Availability: 99.9% monthly for customer-facing APIs and storefronts; 99.95% for POS sales path.
6h agopackages/core/src/operationalTelemetryReadiness/index.test.ts×4packages/core/src/platformAssuranceReadiness/index.test.ts×4packages/core/src/platformQualityReadiness/index.test.ts×2+1 more - ShippedREQ-NFR-002
POS latency: p95 ??? 400ms end-to-end for scan ??? add line and tender ??? receipt operations on LAN; app remains fully functional offline per �17.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-NFR-003
Storefront latency: p95 TTFB ??? 300ms for cached product pages at edge; p95 ??? 800ms for dynamic pages.
6h agoapps/web/src/components/ProductImage.tsxpackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-NFR-004
Inventory consistency: no oversells under concurrent access; serializable isolation for bolt cuts.
6h agopackages/core/src/platformAssuranceReadiness/index.tspackages/db/src/migrations/0004_cuts.sqlpackages/db/src/repositories/events.ts+4 more - ShippedREQ-NFR-005
Drop throughput: sustain ??? 200 orders/minute per store at launch with a design path to 2,000 orders/minute per store.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-NFR-006
Scale targets (v1): 1,000 stores, 10M SKUs across the platform, 100k concurrent storefront users, 10k concurrent POS devices.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-NFR-007
Data consistency model: strong consistency for inventory and payments; eventual consistency (??? 2s p95) acceptable for analytics and non-transactional reads.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-NFR-500
Parallel agent execution must use a live lane registry, route-scoped sublanes, ready-to-run launch prompt packets, hard write fences, and a rebase-merge protocol that preserves one commit per implemented REQ-ID on main. Coordination-lane w…
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-NFR-501
The lane registry must exist at docs/playbooks/lane-registry.md and define the current active-lane capacity, lane ownership/fences, and the protocol for selecting the next smallest safe REQ-ID slice when no merge blocker is active.
6h agopackages/core/src/operationalTelemetryReadiness/index.test.tspackages/core/src/platformAssuranceReadiness/index.test.tspackages/core/src/platformAssuranceReadiness/index.ts+1 more - ShippedREQ-NFR-502
MVP release signoff must include seeded storefront and admin smoke checks that render /shop, /shop/[slug], /cart, checkout review/confirmation, /events, /drops, /admin, /admin/orders, /admin/fulfillment, /admin/inventory, /admin/receiving,…
6h agoapps/web/src/lib/launchSmokeEvidence.ts×14apps/web/src/lib/launchSmokeEvidence.test.ts×4 - Not startedREQ-NFR-503
Storefront and admin performance evidence for MVP must include route-level server timing, query count or equivalent DB round-trip evidence, Core Web Vitals/RUM for storefront pages, and an admin dashboard tile or SLI showing p75/p95 latenc…
- Not startedREQ-NFR-504
MVP-critical storefront and admin pages must expose route-level performance evidence in the response or UI. Each critical route must provide server timing or equivalent latency evidence for tenant resolution, database reads, and render ass…
- ShippedREQ-NFR-505
Storefront and admin list pages must publish a lightweight query/load budget alongside route performance evidence. For each MVP-critical route, the implementation must define an expected database read count, maximum server fetch window, ca…
2h agoapps/web/src/lib/launchSmokeEvidence.ts×14apps/web/src/lib/launchSmokeEvidence.test.ts×3apps/web/src/app/(storefront)/cart/page.tsx+1 more - ShippedREQ-NFR-506
MVP-critical storefront and admin pages must publish stable smoke-test selectors for launch readiness evidence. Each selector must identify the route, tenant resolution state, critical data window, intentionally disabled commerce state if…
2h agoapps/web/src/lib/launchSmokeEvidence.test.ts×19apps/web/src/lib/launchSmokeEvidence.ts×3apps/web/src/app/(storefront)/cart/page.tsx+1 more - ShippedREQ-NFR-507
Local smoke checks must compare the stable launch-readiness selectors against the public /roadmap shipped classifier. If a route claims a selector for an unshipped REQ-ID, or a shipped MVP selector is missing from the seeded route, the dia…
6h agoapps/web/src/lib/launchSmokeEvidence.ts - ShippedREQ-NFR-508
MVP smoke verification must run the launch-readiness selector checks at desktop and mobile viewport widths. Diagnostics must include viewport, route, selector, missing or mismatched data attributes, screenshot artifact path, and whether th…
2h agoapps/web/src/app/(storefront)/cart/page.tsxapps/web/src/app/admin/page.tsxapps/web/src/lib/launchSmokeEvidence.ts - ShippedREQ-NFR-509
Smoke-test failure artifacts must include a reproducible diagnostic bundle for each viewport. The bundle must retain the failing route URL, viewport dimensions, screenshot path, relevant HTML snippet, selector/data-attribute diff, console…
6h agoapps/web/src/lib/launchSmokeEvidence.ts - ShippedREQ-NFR-510
Smoke-test diagnostic bundles must publish a machine-readable CI index. Each run must expose JSON keyed by route, viewport, selector, REQ-ID, failure class, artifact path, and owning admin page so PR comments and runbooks can deep-link dir…
6h agoapps/web/src/lib/launchSmokeEvidence.ts - ShippedREQ-NFR-511
MVP smoke diagnostics must publish a success-and-failure route budget manifest for every seeded route, not just failing selectors. The manifest must include route, tenant host, viewport, route budget, observed database reads, observed serv…
6h agoapps/web/src/lib/launchSmokeEvidence.ts×4apps/web/src/app/(platform)/launch-smoke/manifest.schema.json/route.tsapps/web/src/lib/launchSmokeEvidence.test.ts - ShippedREQ-NFR-512
Smoke manifest publication must retain historical comparison metadata for release review. Each manifest must include the git SHA, Vercel deployment URL, generated timestamp, previous successful manifest reference, and per-route budget delt…
6h agoapps/web/src/lib/launchSmokeEvidence.ts×3apps/web/src/app/(platform)/launch-smoke/manifest.schema.json/route.tsapps/web/src/lib/launchSmokeEvidence.test.ts - ShippedREQ-NFR-513
Launch-smoke manifest consumers must have a stable schema contract. /launch-smoke/manifest.json must publish a schema version, JSON schema URL, strong or weak ETag, Last-Modified timestamp, and cache validation behavior so CI, Vercel previ…
6h agoapps/web/src/lib/launchSmokeEvidence.ts×3apps/web/src/app/(platform)/launch-smoke/manifest.schema.json/route.ts×2apps/web/src/app/(platform)/launch-smoke/manifest.json/route.ts+1 more - Not startedREQ-NFR-514
Launch-smoke manifest schema changes must follow an explicit compatibility policy. Additive fields may keep the current schema version, renamed or removed fields must increment the major schema version, and /launch-smoke/manifest.schema.js…
- Not startedREQ-NFR-515
Checkout MVP performance verification must include a seeded-data load profile for /cart, /cart/confirmation, /admin/settings?tab=tax, /admin/settings?tab=shipping, /admin/orders, and /admin/fulfillment. The profile must define maximum DB r…
- Not startedREQ-NFR-516
Checkout critical routes must expose server-timing evidence for tenant resolution, cart read, quote build, payment-provider readiness, confirmation-state verification, admin settings reads, order list reads, and fulfillment list reads. /ca…
- Not startedREQ-NFR-517
Checkout verification smoke tests must cover tampered confirmation URLs, stale attempt references, mismatched amount/currency, missing server attempt records, and bookmarked recovery summaries for /cart/confirmation. The smoke must run loc…
- Not startedREQ-NFR-518
Checkout ledger smoke tests must cover sealed-ledger happy paths and tamper failures for /cart/confirmation. The smoke must create a seeded hosted-payment attempt, verify that matching return params can expose only the ledger's lifecycle s…
- Not startedREQ-NFR-519
Checkout confirmation performance budgets must include sealed-ledger verification and return-verification telemetry overhead. With seeded reference-store data, /cart/confirmation must verify the ledger seal, classify the return, emit the P…
- ShippedREQ-NFR-520
CI and local smoke verification must fail when production storefront or admin payment code redirects to Stripe hosted Checkout, returns a Stripe Checkout URL to the browser, or introduces Payment Links for checkout. The guard must allow St…
2m agoapps/web/src/lib/noHostedStripeRedirects.test.tspackages/core/src/payments/index.ts - Not startedREQ-NFR-521
Product-library search must meet the admin intake performance budget with at least 250,000 shared records and 25,000 tenant SKUs in seeded data. Barcode/UPC lookup must return p95 under 300 ms server time, and text/faceted search must retu…
- Not startedREQ-NFR-522
Product-library ingestion must support at least 100,000 source products per wholesaler without requiring a single long transaction. Connector runs must checkpoint at least every 500 products or 60 seconds, whichever comes first, and must r…
- Not startedREQ-NFR-523
Product-library schema changes must follow expand/migrate/contract and include RLS policies, rollback notes, and tests proving tenants cannot mutate or read restricted operator-only fields while still being able to search approved library…
- Not startedREQ-NFR-524
Local and CI verification must include seeded Moda-like fixture pages and parser contract tests so extraction, normalization, deduplication, media handling, and tenant acceptance can be tested without live network access or wholesale crede…
REQ-ARCSystem Architecture & Infrastructure50 shipped0 wip0 todo100%
- ShippedREQ-ARC-001
Capability-first: requirements describe capabilities and constraints; vendors are chosen to satisfy them and recorded in the RFC log (�32).
6h agopackages/core/src/platformAssuranceReadiness/index.test.ts×6packages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-002
Single inventory source of truth: all channels read/write through one inventory service with server-authoritative cuts.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-003
Edge-first reads, region-anchored writes: storefront reads can be served from the edge; writes (cuts, payments, bookings) anchor to the primary region.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-004
Multi-tenant by default: shared-schema with tenant_id on every row and Postgres Row-Level Security; per-tenant custom domains with auto-provisioned SSL.
6h agopackages/core/src/platformAssuranceReadiness/index.tspackages/db/src/migrations/0001_init.sqlpackages/db/src/migrations/0004_cuts.sql+23 more - ShippedREQ-ARC-005
Open standards: prefer OpenAPI, AsyncAPI, OpenTelemetry, and portable storage formats so the vendor surface area stays replaceable.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-010
Must support server-side rendering for SEO, streaming for perceived performance, typed server actions, edge runtime for cacheable reads, and a stable plugin story for custom storefronts.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-011
Must provide accessible primitives (WCAG 2.2 AA), a tokenized theming system for per-store branding, and tablet-optimized inputs.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-012
Must support end-user auth, organization/tenant primitives, staff RBAC, MFA, session management, SAML/SCIM for enterprise stores, and device-bound sessions for POS.
6h agopackages/core/src/platformAssuranceReadiness/index.test.tspackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-013
Must host a Node/edge web runtime, background jobs or a gateway to them, per-tenant wildcard and custom domains with SSL, DDoS protection, and preview environments.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-014
Must be Postgres-compatible with RLS, JSONB, full-text, pgvector, logical replication, and ideally database branching for preview environments. Must support per-tenant connection scoping.
6h agopackages/core/src/platformAssuranceReadiness/index.tspackages/db/src/migrations/0001_init.sqlpackages/db/src/migrations/0007_grant_app_role_membership.sql - ShippedREQ-ARC-015
Must provide compile-time-typed queries, a migration tool, and an escape hatch to raw SQL.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-016
Must provide sub-ms reads, atomic counters, sorted sets, pub/sub, and rate-limit primitives usable from edge and node runtimes.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-017
Must provide scheduled jobs, event-driven jobs, durable workflows (multi-step with retries), fan-out, and per-tenant quotas. Used for drops, payouts, image processing, sync recovery, email blasts.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-018
Must deliver ordered per-channel messages to ??? 100k concurrent clients per region with < 500ms p95 fan-out, authenticated per-tenant channels, and presence.
6h agoapps/web/src/lib/roadmap.test.ts×2packages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-019
Must provide a Postgres-compatible local replica on device, conflict resolution hooks matching �17, and replay on reconnect. Must survive cold restarts without data loss.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-020
Must reach certified payments SDKs, Bluetooth HID, ESC/POS printing, and offline SQLite.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-021
Must provide faceted search, typo-tolerance, synonyms, per-tenant index isolation, and vector search fused with keyword search. Sub-200ms p95 for storefront queries.
6h agoapps/web/src/lib/roadmap.test.tspackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-022
Must store originals, produce derivatives on demand (thumbnail/card/swatch/zoom), extract dominant colors, serve via CDN, and support signed URLs for private assets.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-023
Must support per-tenant sender identities, DKIM/SPF/DMARC, templated messages (React Email-class), deliverability analytics, suppression lists, and webhooks.
6h agoapps/web/src/app/(storefront)/events/[slug]/actions.tspackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-024
Must support toll-free or 10DLC US sending with consent capture and unsubscribe, plus APNs/FCM push.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-025
Must handle ecom card-present and card-not-present, subscriptions (platform billing), marketplace payouts (influencers), and a certified POS terminal SDK (including Tap-to-Pay on iPhone/iPad).
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-026
Must handle U.S. destination-based sales tax with nexus rules, exemption certificates, and per-line taxability; VAT/GST for international later.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-027
Must return carrier-rated rates at checkout, purchase labels, and emit tracking events.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-028
Asynchronous LLM content pre-processing (titles, summaries, taxonomy generation, alt text, embeddings) ??? batch, not user-blocking, tolerant of seconds-to-minutes latency.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-028.2
Interactive quilt pattern preview (�15) ??? user-facing, sub-frame updates as fabrics swap.
6h agoapps/web/src/app/(storefront)/visualizer/page.tsxpackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-028.3
High-quality shareable renders / generative imagery ??? for marketing images, shareable "my quilt" social cards, and future AI features on the roadmap.
6h agopackages/core/src/platformAssuranceReadiness/index.tspackages/core/src/quilt/patterns.ts - ShippedREQ-ARC-029
Must capture typed events from web, POS, and server per the telemetry taxonomy in �26.1, with per-tenant isolation, funnels, retention, feature-flag exposure correlation, session replay, and a bulk-export path to the warehouse. See �26 for…
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-029.1
Emission pattern (non-negotiable): all telemetry is emitted through packages/core/telemetry, a thin wrapper that routes to three sinks ??? (a) business/domain events ??? Postgres transactional outbox ??? warehouse + webhooks, (b) product/U…
6h agoapps/web/src/lib/productAnalyticsConsent.tspackages/core/src/platformAssuranceReadiness/index.tspackages/core/src/telemetry/types.ts+3 more - ShippedREQ-ARC-029.2
Event catalog: every domain and product event type is declared in packages/events with a versioned AsyncAPI-style schema. Emitting an event type not in the catalog is a lint error.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-030
Must cover structured logs, error aggregation with release and per-tenant tagging, distributed tracing (OpenTelemetry, end-to-end from Next.js ??? Postgres ??? jobs ??? Runpod ??? Stripe), and real-user monitoring. All ingress goes through…
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-031
Must support per-tenant flag overrides, gradual rollouts, targeted experiments, and SDKs for web, server, and iPad.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-031.1
Satisfies REQ-SEC-007. Must provide a challenge that (a) works without visible friction for most users, (b) produces a verifiable server-side token, (c) supports both web and React Native clients, and (d) can be invoked conditionally from…
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-032
Must support a page builder or headless content model per tenant, preview workflow, and CDN-friendly delivery.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-033
Must provision SSL for customer-owned domains with automated verification and renewal. The host ??? tenant resolver (REQ-ARC-036) treats a custom apex domain as an alias for the tenant's canonical subdomain; the routing mechanism does not…
2h agoapps/web/src/env.tspackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-036
The platform marketing surface at the apex domain and tenant storefront/admin surfaces at <subdomain>.<root> must be served by a single web app (apps/web) with host-based routing. A tenant resolver keyed off the Host header (with a dev-onl…
2h agoapps/web/src/lib/db.ts×5apps/web/src/lib/publicSite.ts×3apps/web/src/app/sitemap.ts×2+23 more - ShippedREQ-ARC-037
The platform apex home (/ on bolttocart.com) must not show marketing chrome to a signed-in staff user who already has an active Clerk Organization. When Clerk provides a valid organization slug, the page redirects to the tenant origin deri…
6h agoapps/web/src/lib/auth.tspackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-038
The host resolver must accept every valid Clerk Organization slug as a tenant subdomain when that Organization has privateMetadata.tenantId set to a BoltToCart tenant UUID. Middleware may cache slug lookups briefly, but the tenant id must…
6h agoapps/web/src/lib/tenantHost.ts×2packages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-039
The host resolver must accept customer-owned custom hostnames that have been verified at the SSL/DNS layer and registered on a Clerk Organization with a valid slug and privateMetadata.tenantId. A custom hostname resolves to the same tenant…
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-034
Every PR must produce a deployable preview with an isolated database branch; secrets must be centrally managed and rotated.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-500
Drizzle migration 0021: add support_email text (nullable, no default) to the stores table. Expand-only; no column dropped or renamed. CHECK constraint enforces @ presence when non-null. storesRepo.updateIdentity extended to accept supportE…
6h agopackages/db/src/migrations/0021_support_email.sql×2packages/core/src/platformAssuranceReadiness/index.tspackages/db/src/schema/stores.ts - ShippedREQ-ARC-501
Drizzle migration 0022: add default_cut_increment_sixteenths bigint NOT NULL DEFAULT 4 and minimum_cut_sixteenths bigint NOT NULL DEFAULT 8 to the stores table (1/16-yard units per REQ-INV-001). Expand-only. CHECK constraints enforce posit…
6h agopackages/db/src/migrations/0022_cut_increment_columns.sql×2packages/db/src/schema/stores.ts×2packages/core/src/platformAssuranceReadiness/index.ts+2 more - ShippedREQ-ARC-502
Event catalog: add bolt.shelved@1 to packages/events/src/domain/bolts.ts with payload { tenantId: string; boltId: string; shelvedAt: string }. Registered in packages/events/src/registry.ts. No app-layer emission yet ??? catalog entry and T…
6h agopackages/core/src/platformAssuranceReadiness/index.tspackages/events/src/domain/bolts.tspackages/events/src/registry.test.ts - ShippedREQ-ARC-503
Drizzle migration 0023: add customer_notification_prefs table (id uuid PK, tenant_id uuid FK???stores, customer_id uuid FK???customers, order_updates boolean NOT NULL DEFAULT true, drop_alerts boolean NOT NULL DEFAULT true, class_reminders…
6h agopackages/testing/src/customerNotificationPrefs.test.ts×3packages/db/src/migrations/0023_customer_notification_prefs.sql×2packages/core/src/platformAssuranceReadiness/index.ts+4 more - ShippedREQ-ARC-504
AccountSubnav "Orders" nav link: unconditional Orders item added to apps/web/src/components/AccountSubnav.tsx pointing to /account/orders, active when pathname.startsWith("/account/orders"). No prop-signature change.
6h agopackages/core/src/platformAssuranceReadiness/index.ts - ShippedREQ-ARC-510
Event catalog: add csvImportCompleted to packages/events/src/domain/jobs.ts.
6h agopackages/events/src/registry.ts×2apps/jobs/src/workers/csvImportJob.tspackages/core/src/platformAssuranceReadiness/index.ts+2 more - ShippedREQ-ARC-515
Event catalog additions (REQ-ARC-515): four new event types, catalog and TypeScript types only ??? no app-layer emit in this PR (call-sites are stubs in Lanes B and C). (a) refund.completed@1 in packages/events/src/domain/orders.ts (new fi…
6h agopackages/events/src/domain/bolts.ts×2packages/events/src/domain/orders.ts×2packages/events/src/registry.ts×2+5 more - ShippedREQ-ARC-514
Drizzle migration 0027: add phone text (nullable, no CHECK ??? format validated at app layer) and marketing_opt_in boolean NOT NULL DEFAULT false to the customers table. Expand-only. customersRepo.patch(db, tenantId, customerId, { phone?,…
6h agopackages/db/src/migrations/0027_customer_phone_marketing.sql×3apps/jobs/src/workers/customerReactivationJob.ts×2packages/db/src/schema/customers.ts×2+3 more - ShippedREQ-ARC-513
Drizzle migration 0026: add pos_devices table. Columns: id uuid PK, tenant_id uuid FK???stores, stripe_reader_id text NOT NULL (Stripe Terminal reader ID, e.g. tmr_???), display_name text NOT NULL, location_id text (nullable, Stripe Termin…
6h agopackages/testing/src/posDevices.test.ts×3apps/pos/src/flow/posDeviceRegistration.ts×2packages/db/src/migrations/0026_pos_devices.sql×2+3 more - ShippedREQ-ARC-512
Drizzle migration 0025: add cycle_count_sessions and cycle_count_lines tables. cycle_count_sessions: id uuid PK, tenant_id uuid FK???stores, started_at timestamptz NOT NULL DEFAULT now(), completed_at timestamptz, started_by_user_id text N…
6h agopackages/testing/src/cycleCounts.test.ts×3packages/db/src/migrations/0025_cycle_counts.sql×2packages/db/src/repositories/cycleCounts.ts×2+3 more - ShippedREQ-ARC-511
Drizzle migration 0024: add coupon_campaigns and coupon_codes tables. coupon_campaigns: id uuid PK, tenant_id uuid FK???stores, name text NOT NULL, code_prefix text, discount_type coupon_discount_type enum ('percent','fixed_minor') NOT NUL…
6h agopackages/db/src/schema/coupons.ts×3packages/testing/src/coupons.test.ts×3packages/db/src/migrations/0024_coupons.sql×2+2 more
REQ-MONMonetization9 shipped0 wip0 todo100%
- ShippedREQ-MON-001
Subscription plans: Starter, Growth, Pro; differentiated by transaction volume, locations, staff seats, drops, and analytics features.
6h agopackages/core/src/operationalTelemetryReadiness/index.test.ts×4packages/core/src/platformQualityReadiness/index.test.ts×2packages/core/src/revenueOperationsReadiness/index.test.ts×2+4 more - ShippedREQ-MON-002
Add-ons: marketing tools (advanced segmentation, automations), advanced analytics, additional locations, priority support.
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-MON-003
Optional transaction-fee component on card processing, disclosed transparently.
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-MON-004
Free trial and self-service upgrade/downgrade with proration; dunning for failed payments.
6h agopackages/core/src/platformOperationsReadiness/index.test.ts×2packages/core/src/platformOperationsReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-MON-005
Store-owner platform purchases must be modeled separately from shopper/POS fabric orders. Each purchase must carry tenant id, line items, quoted upstream cost, customer charge, currency, payment provider state, external provider references…
6h agopackages/events/src/registry.ts×2packages/core/src/platformOperationsReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts+2 more - ShippedREQ-MON-006
Platform purchase payments must use Stripe Checkout or Stripe-hosted collection surfaces so BoltToCart remains in SAQ-A scope. Mutating Stripe calls require deterministic idempotency keys, Stripe webhooks must verify signatures before pars…
2h agoapps/web/src/app/admin/settings/actions.ts×3apps/web/src/env.tspackages/core/src/platformOperationsReadiness/index.ts+2 more - ShippedREQ-MON-007
Platform purchase Stripe webhooks must be deduplicated by Stripe event.id before any purchase state change or Vercel registrar side effect. Duplicate events return success without repeating downstream effects.
48m agoapps/web/src/app/api/webhooks/stripe/route.tsapps/web/src/lib/telnyxNumbers.test.tspackages/core/src/platformOperationsReadiness/index.ts+3 more - ShippedREQ-MON-008
Store-owner hosted-email add-ons are billed through Stripe Billing subscriptions, priced at $10/month per provisioned mailbox in integer minor units. Tenant admins may subscribe multiple mailboxes in one Checkout session, but BoltToCart mu…
2h agopackages/core/src/revenueOperationsReadiness/index.test.ts×3apps/web/src/app/admin/settings/actions.ts×2packages/demo-data/src/packs/0015_hosted_email_admin.ts×2+10 more - ShippedREQ-MON-009
Store-owner platform purchases for custom domains, hosted email, and store phone numbers must collect payment inside the BoltToCart admin dashboard with embedded Stripe fields. Admin server actions must create embedded Checkout/Billing ses…
2m agoapps/web/src/app/admin/settings/actions.ts×4apps/web/src/app/admin/platform-purchases/checkout/page.tsx×3packages/core/src/payments/index.ts×3+4 more
REQ-DMOReference Store & Demo5 shipped0 wip1 todo83%
- ShippedREQ-DMO-001
A single reserved tenant (stores.kind = 'demo') must exist in every non-ephemeral environment (production, staging). Its UUID is held in the DEMO_STORE_ID environment variable, not hard-coded, so different environments can use different ID…
48m agoapps/web/src/lib/demoStripeEmbeddedCheckoutHandoff.ts×3apps/web/src/lib/roadmap.test.ts×3apps/web/src/lib/demoStripeCheckout.ts×2+15 more - ShippedREQ-DMO-002
The reference store is entered via an unauthenticated trampoline at bolttocart.com/demo on the platform apex. The trampoline never exposes storefront UI itself; it only explains the shared-admin model and links to two tenant-scoped destina…
6h agoapps/web/src/middleware.ts×2apps/web/src/app/(platform)/demo/page.tsxapps/web/src/app/(platform)/page.tsx+6 more - ShippedREQ-DMO-003
Reference-store data evolves via idempotent demo-data packs. Each feature PR adds a pack under packages/demo-data/src/packs/NNNN_snake_slug.ts. Packs are applied in catalog order on every deploy; the demo_data_packs_applied tenant-scoped l…
6h agoapps/jobs/src/workers/demo-seed.ts×2packages/demo-data/src/packs/0010_loyalty.ts×2packages/demo-data/src/packs/0012_rain_migration_admin.ts×2+73 more - ShippedREQ-DMO-004
The pnpm demo:coverage CI check verifies every REQ-ID cited by a pack exists in REQUIREMENTS.md (hard failure) and warns when a user-visible feature area has no covering pack (soft warning; the PR template's reviewer checkbox is the human…
6h agopackages/demo-data/src/coverage.ts×2 - ShippedREQ-DMO-005
The reference store must resolve on every configured reference-store host label, including NEXT_PUBLIC_DEMO_STORE_SUBDOMAIN and the Clerk Organization slug (DEMO_ORG_SLUG, default bolttocart-reference-store). All accepted labels map to the…
6h agoapps/web/src/lib/tenantHost.ts - Not startedREQ-DMO-006
Local MVP smoke verification must provide a one-command reference-store bootstrap that makes both http://demo.localtest.me:3000/shop and http://localhost:3000/shop?tenant=demo render the seeded storefront without hidden manual environment…
REQ-WIZGuided Shopping Wizard21 shipped0 wip0 todo100%
- ShippedREQ-WIZ-518
Created /wizard/projects/[id]/opengraph-image.tsx (nodejs runtime). Loads the saved project by ID via customerProjectsRepo.findById under withPublicTenant. Renders project name + fabric count + yardageHint inside OgBoltCard. Falls back to…
6h agoapps/web/src/app/(storefront)/wizard/projects/[id]/opengraph-image.tsxpackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-WIZ-519
The /wizard landing page metadata and structured data must stay in lockstep with the five visible entry tiles: start a project, buy fabric, design it first, shop events, and tour the reference store. Update the landing description so it na…
6h agoapps/web/src/app/(storefront)/wizard/opengraph-image.tsxapps/web/src/app/(storefront)/wizard/page.tsxpackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-WIZ-520
The /wizard/project flow must render a visible "Start over" control on every step after pattern. It links to /wizard/project?step=pattern with no project-state params, is hidden from print, and does not attempt to clear the signed cookie f…
6h agoapps/web/src/app/(storefront)/wizard/project/page.tsxapps/web/src/app/(storefront)/wizard/project/projectFlow.test.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-WIZ-521
The /wizard/project?step=fabric step must show a completion summary above the slot grids: N of M fabric slots selected. The count is derived from the selected pattern's required fabric slots and current URL assignments. The continue-to-bat…
6h agopackages/core/src/storefrontExperienceReadiness/index.test.ts×3apps/web/src/app/(storefront)/wizard/project/page.tsxapps/web/src/app/(storefront)/wizard/project/projectFlow.test.ts+3 more - ShippedREQ-WIZ-517
The /wizard landing page now emits a HowTo JSON-LD node with two steps ("Pick a pattern" / "Pick fabrics") so Google can render the How-to rich result on SERP. No interactive change (REQ-WIZ-517).
6h agoapps/web/src/app/(storefront)/wizard/page.tsxpackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-WIZ-500
The /wizard landing page metadata block must carry a real title, description, and openGraph.{title, description, images} tuned to REQ-GSW-001's "What are you shopping for?" entry prompt so the SERP / social unfurl matches the first questio…
6h agopackages/core/src/customerJourneyReadiness/index.test.ts×4apps/web/src/app/(storefront)/wizard/page.tsx×2packages/core/src/creativeCommerceReadiness/index.test.ts×2+6 more - ShippedREQ-WIZ-501
The /wizard/project/ step-progress breadcrumb must be a discrete <nav aria-label="Wizard steps"> landmark (distinct from the sitewide breadcrumb) with aria-current="step" on the active item, so AT announces the current step as "current ste…
6h agoapps/web/src/app/(storefront)/wizard/project/page.tsxpackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-WIZ-502
The /wizard/project state (pattern, size, per-slot fabric assignments including batting and thread) must persist in URL search params so every step URL is bookmarkable and shareable, with a signed, tenant-scoped cookie fallback when the se…
2h agoapps/web/src/lib/wizard.ts×3apps/web/src/app/(storefront)/wizard/project/page.tsx×2apps/web/src/lib/wizard.test.ts×2+7 more - ShippedREQ-WIZ-503
A root wizard page-group layout.tsx at app/(storefront)/wizard/layout.tsx must export a metadata object with alternates.canonical: "/wizard" as a group-level fallback, so any future /wizard/ route that omits its own canonical inherits the…
6h agoapps/web/src/app/(storefront)/wizard/layout.tsxapps/web/src/app/robots.tspackages/core/src/creativeCommerceReadiness/index.ts+2 more - ShippedREQ-WIZ-504
Wizard /wizard/project?step=pattern content step. The pattern-selection step renders a grid of 10 named quilt-pattern tiles (Grandmother's Flower Garden, Nine Patch, Half-Square Triangle, Log Cabin, Flying Geese, Rail Fence, Pinwheel, Doub…
6h agoapps/web/src/app/(storefront)/wizard/project/page.tsx×3packages/core/src/creativeCommerceReadiness/index.test.ts×3packages/core/src/quilt/patterns.ts×3+4 more - ShippedREQ-WIZ-505
Wizard /wizard/project?step=size content step. Renders a size-selection grid for the pattern chosen in the URL's pattern param using that pattern's sizes array from the REQ-WIZ-504 manifest. Each size entry shows the label, display dimensi…
6h agoapps/web/src/app/(storefront)/wizard/project/page.tsx×3apps/web/src/app/(storefront)/wizard/_lib/patterns.ts×2packages/core/src/creativeCommerceReadiness/index.test.ts×2+2 more - ShippedREQ-WIZ-506
Wizard /wizard/project?step=fabric content step. For each fabric slot defined in the chosen pattern, renders a grid of in-stock product cards (up to 12 per slot, live from loadStorefrontCatalog) with a dominant-color swatch and fabric name…
6h agoapps/web/src/app/(storefront)/wizard/project/page.tsxpackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-WIZ-507
Wizard /wizard/project?step=batting content step. Renders three batting-type option cards defined in a static BATTING_OPTIONS constant in apps/web/src/app/(storefront)/wizard/_lib/patterns.ts: Cotton (light, natural, easy-care / Everyday q…
6h agoapps/web/src/app/(storefront)/wizard/project/page.tsxapps/web/src/lib/wizard.test.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-WIZ-508
Wizard /wizard/project?step=thread content step. Renders a two-axis grid: thread weight (50wt / 40wt / 28wt) x color preference (neutral / match-main / contrast). Each combination renders a color swatch from a static THREAD_SWATCH lookup d…
6h agoapps/web/src/app/(storefront)/wizard/project/page.tsxapps/web/src/lib/wizard.test.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-WIZ-509
Wizard /wizard/project?step=review content step. Renders the full project summary: the chosen pattern SVG re-rendered with the assigned fabric dominant colors as the palette, a per-slot shopping list showing fabric name, slot label, yardag…
6h agoapps/web/src/app/(storefront)/wizard/project/page.tsxpackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-WIZ-510
The /wizard landing page must add a "Shop events" tile (href: /events, indigo accent) to complete the REQ-GSW-001 five-option "What are you shopping for?" spec. The tile is a launchpad to the already-shipped /events surface.
6h agoapps/web/src/app/(storefront)/wizard/page.tsxpackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-WIZ-511
/wizard/project?step=fabric fabric grid must support a ?q=<search> URL param that filters the visible products by name, designer, or colorway (case-insensitive, server-side via loadStorefrontCatalog's existing searchQuery filter). A plain…
6h agoapps/web/src/app/(storefront)/wizard/project/page.tsx×4packages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-WIZ-512
The /wizard/project?step=review page has a colocated print.module.css that hides the StorefrontShell header/footer and interactive elements at @media print (REQ-WIZ-512).
6h agoapps/web/src/app/(storefront)/wizard/project/print.module.csspackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts - ShippedREQ-WIZ-513
The /wizard landing renders WizardRecentPatterns client component below the tiles; reads localStorage['bc_wz_recent'] for up to 3 in-progress project cards; hidden server-side (REQ-WIZ-513).
6h agoapps/web/src/app/(storefront)/wizard/page.tsx×3apps/web/src/app/(storefront)/wizard/_components/WizardRecentPatternsClient.tsxpackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-WIZ-514
The /projects/shared/[slug] page has a colocated opengraph-image.tsx (Edge, no DB call) rendering 'My Quilt Project' with pattern/size from the slug. metadata.openGraph.images wired (REQ-WIZ-514).
6h agoapps/web/src/app/(storefront)/projects/shared/[slug]/opengraph-image.tsxapps/web/src/app/(storefront)/projects/shared/[slug]/page.tsxpackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-WIZ-515
The /wizard/project?step=review renders a WizardShareSection (URL + CopyTextButton) below the Save card; print:hidden (REQ-WIZ-515).
6h agoapps/web/src/app/(storefront)/wizard/project/page.tsxpackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0037_storefront_experience_readiness_suite.ts
REQ-ADMAdmin Operations210 shipped1 wip13 todo94%
- ShippedREQ-ADM-500
/admin/audit date-range quick-filter chips ("Today / 7d / 30d / All") that compose with the existing type= and delivery= filters. URL-persisted (?range=today|7d|30d), server-rendered against the capped outbox window, preserves other query…
6h agopackages/core/src/adminOperationsReadiness/index.test.ts×9apps/web/src/app/admin/_lib/dateRange.ts×3apps/web/src/app/admin/audit/page.tsx×2+4 more - ShippedREQ-ADM-502
/admin/audit/[id] event-detail page. Each row on /admin/audit gains a "Details" per-row link that routes to a dedicated apps/web/src/app/admin/audit/[id]/page.tsx surface showing: the fully pretty-printed JSON payload (with a "Copy JSON" a…
6h agoapps/web/src/app/admin/audit/[id]/page.tsxapps/web/src/app/admin/audit/page.tsx - ShippedREQ-ADM-501
/admin/audit filter-state presets. A "Save view" disclosure lets an admin name the current filter URL (?range=???&type=???&delivery=???&from=???&to=???) and park it for later recall; a "Presets ???" dropdown lists saved entries and routes…
6h agoapps/web/src/app/admin/audit/page.tsx×3apps/web/src/app/admin/audit/_actions/presets.tsapps/web/src/app/admin/audit/_components/PresetsToolbar.tsx+2 more - ShippedREQ-ADM-503
/admin/audit gains a "Custom???" date-range picker alongside the REQ-ADM-500 quick-filter chips. The chip expands into a native <details> popover with two <input type="date"> controls (from / to); on submit the form GETs /admin/audit?from=…
6h agoapps/web/src/app/admin/_lib/dateRange.ts×3apps/web/src/app/admin/audit/page.tsx×3apps/web/src/app/admin/audit/_lib/presets.ts+1 more - ShippedREQ-ADM-506
/admin/receiving list gains a date-range chip rail against the receivedAt column ("Today / 7d / 30d / All", same rolling-window semantics as REQ-ADM-500/504/505). URL-driven (?range=7d), server-rendered. Unlike drops/events, no status chip…
6h agoapps/web/src/app/admin/receiving/page.tsx×2packages/core/src/adminOperationsReadiness/index.test.ts - ShippedREQ-ADM-505
/admin/events list gains the same two-axis chip row as REQ-ADM-504: date-range chips ("Today / 7d / 30d / All") keyed off createdAt and a status rail over the canonical lifecycle states (draft | scheduled | live | ended | cancelled). Reuse…
6h agoapps/web/src/app/admin/events/page.tsx - ShippedREQ-ADM-504
/admin/drops list gains a two-axis filter chip row: date-range chips ("Today / 7d / 30d / All") keyed off createdAt with identical rolling-window semantics to REQ-ADM-500, plus a status chip row over the canonical lifecycle states (draft |…
6h agoapps/web/src/app/admin/_components/FilterChipRow.tsxapps/web/src/app/admin/_lib/dateRange.tsapps/web/src/app/admin/audit/page.tsx+2 more - ShippedREQ-ADM-509
/admin/bolts root listing. The index of /admin/bolts/ previously 404'd ??? only [boltId]/ and lookup/ existed. This surface adds a server-rendered bolt roster with columns bolt-id (truncated, links to detail), SKU + supplier, designer, sta…
6h agoapps/web/src/app/admin/bolts/page.tsxpackages/core/src/adminOperationsReadiness/index.test.ts - ShippedREQ-ADM-510
/admin/webhooks dead-letter "Retry now" per-row action. Each row in the dead-letter table gains a "Retry now" button that re-enqueues the dead-lettered delivery through the existing relay pipeline ??? no new pipeline is written. The underl…
6h agoapps/web/src/app/admin/webhooks/actions.ts×2apps/web/src/app/admin/_lib/adminLaunchReadinessSuite.test.tsapps/web/src/app/admin/audit/[id]/page.tsx+5 more - ShippedREQ-ADM-538
/admin/receiving/new expected-bolts preview. Now that purchase_orders / expected_bolts exist via REQ-DB-560, the receive-bolt page shows a tenant-scoped side panel of open and partially received PO lines fetched through withAuthenticatedTe…
6h agopackages/db/src/migrations/0029_purchase_orders.sql×2packages/db/src/repositories/purchaseOrders.ts×2apps/web/src/app/admin/_lib/storefrontLaunchReadiness.ts+2 more - ShippedREQ-ADM-539
AUDIT — /admin/coupons list already shows a "Redemptions" column backed by the stored redemption_count column on coupon_campaigns (incremented in-transaction by couponsRepo.incrementRedemptionCount). No change required.
6h agoapps/web/src/app/admin/inventory/cycle-counts/page.tsx×2apps/web/src/app/admin/_lib/storefrontLaunchReadiness.tsapps/web/src/app/admin/inventory/cycle-counts/[id]/page.tsx+1 more - ShippedREQ-ADM-545
/admin/store-notes pinned notes. Now that store_notes.pinned exists via REQ-DB-564, the store-notes page orders notes with pinned rows first, shows a pinned count in the header, renders a pinned badge/state treatment, and exposes tenant-sc…
6h agopackages/db/src/migrations/0033_store_notes_pinned.sql×2apps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/db/src/repositories/storeNotes.ts+2 more - ShippedREQ-ADM-543
AUDIT — /admin/pos-devices already renders a "Last seen" column backed by lastSeenAt (populated from lastHeartbeatAt in the schema). The column header exists and relative-time formatting is applied. No change required.
6h agopackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×8packages/core/src/adminOperationsReadiness/index.test.ts×4apps/web/src/app/admin/_lib/adminLaunchReadinessSuite.test.ts×3+2 more - ShippedREQ-ADM-544
AUDIT — /admin/settings GeneralInfoForm already includes a "Storefront tagline" input that writes into tenants.tagline. The storefront layout falls back to the default tagline when the field is blank. No change required.
6h agoapps/web/src/app/admin/_lib/storefrontTrafficReadiness.tsapps/web/src/app/admin/orders/[id]/actions.tspackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-542
Creates /admin/inventory/page.tsx — a per-SKU inventory grid aggregating cuttable-bolt yardage via Drizzle query builder. Adds a URL-driven ?filter=low-stock chip that narrows the grid to SKUs with availableSixteenths < 2 × MIN_YARDAGE_SIX…
6h agoapps/web/src/app/admin/inventory/page.tsx×4packages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×2packages/demo-data/src/packs/0017_admin_storefront_launch_readiness.ts×2+2 more - ShippedREQ-ADM-541
/admin/loyalty/settings gains a "Program overview" summary card above the earn-rate panel. The loader runs three Drizzle query-builder aggregates in parallel: total member count, total points outstanding (SUM of pointsBalance), and tier di…
6h agoapps/web/src/app/admin/loyalty/settings/page.tsx×2apps/web/src/app/admin/_lib/storefrontLaunchReadiness.tsapps/web/src/app/admin/settings/CutSettingsForm.tsx+1 more - ShippedREQ-ADM-540
/admin/coupons/[id] detail page created with a per-row "Copy code" button (CopyTextButton) for each coupon_codes row. Also shows campaign discount, redemption count, and validity window. Uses Drizzle query-builder to load campaign + codes;…
6h agoapps/web/src/app/admin/coupons/[id]/page.tsx×2apps/web/src/app/admin/_lib/storefrontLaunchReadiness.tsapps/web/src/app/admin/pos-devices/[id]/page.tsx+1 more - ShippedREQ-ADM-537
/admin/events/[id] detail page adds a "Copy iCal URL" button immediately after the existing "Copy link" button. The iCal URL points at /events/[slug]/calendar.ics. Uses the existing CopyTextButton component and getPublicSiteUrl() helper. N…
6h agoapps/web/src/app/admin/_lib/storefrontLaunchReadiness.tsapps/web/src/app/admin/events/[id]/edit/actions.tsapps/web/src/app/admin/events/[id]/edit/page.tsx+2 more - ShippedREQ-ADM-536
/admin/drops/[slug]/edit detail page adds a "Copy iCal URL" button and a "Copy permalink" button in a "Share links" card. The iCal URL points at the public /drops/[slug]/calendar.ics endpoint (REQ-DRP-506). Uses the existing CopyTextButton…
6h agoapps/web/src/app/admin/drops/[slug]/edit/page.tsx×3apps/web/src/app/admin/_lib/storefrontLaunchReadiness.tspackages/demo-data/src/packs/0017_admin_storefront_launch_readiness.ts - ShippedREQ-ADM-535
/admin/bolts grid gains a "Last cut" column showing the relative time of the most-recent cut for each bolt. The loader adds a Drizzle query-builder aggregate (SELECT boltId, MAX(cutAt) FROM cuts GROUP BY boltId) — no raw SQL — and joins th…
6h agoapps/web/src/app/admin/bolts/page.tsx×3apps/web/src/app/admin/_lib/storefrontLaunchReadiness.tsapps/web/src/app/admin/store-notes/actions.ts+2 more - ShippedREQ-ADM-534
/admin/customers/[id] detail page gains a "Recent orders (last 5)" card using a new OrdersMiniTable primitive (apps/web/src/app/admin/customers/_components/OrdersMiniTable.tsx). The mini-table shows order ID (linked to /admin/orders/[id]),…
6h agoapps/web/src/app/admin/customers/[id]/page.tsx×2apps/web/src/app/admin/_lib/storefrontLaunchReadiness.tsapps/web/src/app/admin/customers/_components/OrdersMiniTable.tsx+1 more - ShippedREQ-ADM-533
/admin/orders/orders.csv export route updated to honor the REQ-ADM-532 multi-select ?state= params and the ?channel= filter so the CSV download always matches the on-screen view. Columns renamed to machine-readable snake_case: order_id, sh…
6h agoapps/web/src/app/admin/orders/orders.csv/route.ts×3apps/web/src/app/admin/_lib/storefrontLaunchReadiness.tsapps/web/src/app/admin/orders/page.tsx+1 more - ShippedREQ-ADM-532
/admin/orders filter rail adds a state multi-select chip group. Chips use ?state=pending&state=fulfilled (repeating param); toggling a chip adds/removes it from the array. "All" clears the selection. URL-driven server filter replaces the p…
6h agoapps/web/src/app/admin/orders/page.tsx×3apps/web/src/app/admin/orders/orders.csv/route.ts×2packages/db/src/repositories/coupons.ts×2+4 more - ShippedREQ-ADM-531
/admin/webhooks dead-letter table adds a "Last attempt" relative-time column. The event_outbox schema has no lastAttemptAt field; nextAttemptAt is used as a proxy (set by the relay during retry scheduling), falling back to deadLetteredAt w…
6h agoapps/web/src/app/admin/_lib/storefrontLaunchReadiness.tsapps/web/src/app/admin/page.tsxapps/web/src/app/admin/webhooks/page.tsx+1 more - ShippedREQ-ADM-530
/admin/audit table <thead> gains sticky top-0 z-10 so the header row remains visible while scrolling long audit lists. The default sort column ("Occurred", descending) receives aria-sort="descending", mirroring the REQ-A11Y-543 pattern alr…
6h agoapps/web/src/app/admin/_lib/storefrontLaunchReadiness.tsapps/web/src/app/admin/audit/page.tsxpackages/demo-data/src/packs/0017_admin_storefront_launch_readiness.ts - ShippedREQ-ADM-526
/admin/customers/[id]/merge intent-capture form showing source customer (red card) and target-customer email/UUID input. Merge execution deferred to a customersRepo.merge packages/db addition; action button disabled with explicit note.
6h agopackages/db/src/repositories/customers.ts×2packages/testing/src/customerMerge.test.ts×2apps/web/src/app/admin/_lib/overnightMvpReadiness.ts+3 more - ShippedREQ-ADM-525
/admin/coupons/new three-step create-campaign wizard shell (Details -> Code generation -> Review & launch). Honest placeholder pending schema.
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tspackages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts - ShippedREQ-ADM-524
/admin/coupons coupon campaign list. Honest placeholder table shell with campaign/discount/codes/redemptions/expires/status columns.
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/coupons/page.tsxapps/web/src/app/admin/orders/[id]/page.tsx+1 more - ShippedREQ-ADM-523
/admin/pos-devices device management table shell. Pending pos_devices schema + Stripe Terminal Reader API integration.
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tspackages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts - ShippedREQ-ADM-522
/admin/inventory/cycle-counts/new three-step wizard shell. Honest placeholder pending packages/db cycle-count schema.
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/inventory/cycle-counts/new/page.tsxpackages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts - ShippedREQ-ADM-521
/admin/inventory/cycle-counts cycle-count session list. Honest placeholder with '+ New count' CTA and empty state.
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/inventory/cycle-counts/page.tsxpackages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts - ShippedREQ-ADM-520
/admin/orders/[id] order detail page. Shows order header with status badge + channel + timestamp; four totals tiles (subtotal, total, yardage, discount); Tender section with Stripe PaymentIntent ID; Line items placeholder (landing with pay…
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/orders/[id]/page.tsxpackages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts - ShippedREQ-ADM-519
/admin/orders orders list with status filter chips (All/Pending/Processing/Ready/Fulfilled/Cancelled/Refunded), channel chips (All/Web/POS/API), and date-range chips (Today/7d/30d/All). Fetches up to 500 most-recent orders in-memory; statu…
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/orders/page.tsxpackages/db/src/migrations/0045_storefront_admin_performance_indexes.sql+1 more - ShippedREQ-ADM-518
/admin/customers/[id] customer detail page. Shows: customer identity card (name, email, tier badge, Clerk user ID, customer-since, last-active, last-order); four lifetime stats tiles (orders, lifetime spend, total yardage, open orders); re…
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/customers/[id]/page.tsxpackages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts - ShippedREQ-ADM-517
/admin/customers paginated list with search + loyalty-tier filter chips (All???Bronze???Silver???Gold???VIP keyed on customers.loyalty_tier) + sort rail + 50-row page navigation over a 200-row server window. Tier chip counts computed in-me…
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/customers/page.tsxpackages/core/src/yardage/index.ts+4 more - ShippedREQ-ADM-516
/admin/settings General tab form (REQ-ADM-516). The "Store information" section in the General tab gains a <GeneralInfoForm> client component backed by updateStoreGeneralAction (server action). Fields: store name (required, max 100 chars),…
2h agopackages/db/src/schema/stores.ts×5packages/db/src/migrations/0020_tenant_identity_fields.sql×3apps/web/src/app/admin/settings/page.tsx×2+8 more - ShippedREQ-ADM-515
/admin/settings/page.tsx restructured into URL-driven tabbed panels: General | Inventory | Tax | Shipping | Loyalty | Notifications, with ?tab=<id> controlling the active panel (defaulting to General). Tab rendering uses a new <TabNav> / <…
2h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.test.tsapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/settings/page.tsx+3 more - ShippedREQ-ADM-547
/admin/orders/[id] replaces the stale order_line_items placeholder with a persisted line-item table behind the same orders.line-items flag. Staff still load through withAuthenticatedTenant; unknown or cross-tenant order ids collapse to 404…
6h agoapps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-548
The /admin/orders/[id] page must make customer support follow-up faster by rendering a Copy customer email control next to the displayed customer email when one exists. Use the existing CopyTextButton, leave the order loader/customer looku…
6h agoapps/web/src/app/admin/_lib/storefrontTrafficReadiness.tsapps/web/src/app/admin/orders/[id]/page.tsxpackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-549
The /admin/pos-devices list must make hardware support handoffs faster by rendering a Copy reader ID control for each device that has a Stripe reader ID. Use the existing CopyTextButton, leave the device loader and registration/revoke acti…
6h agoapps/web/src/app/admin/pos-devices/page.tsx×2apps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-574
/admin/settings?tab=domains custom-domain visibility panel. Tenant admins must be able to see (a) the store's canonical BoltToCart subdomain and tenant admin/storefront URLs, (b) every customer-owned hostname currently registered on the ac…
2h agoapps/web/src/app/admin/_lib/storefrontRetentionReadiness.tsapps/web/src/app/admin/settings/page.tsxpackages/demo-data/src/packs/0020_admin_storefront_retention_readiness.ts - ShippedREQ-ADM-575
/admin/settings?tab=domains custom-domain self-service automation. Tenant admins must be able to submit a customer-owned hostname, have BoltToCart attach it to the configured Vercel project through the Vercel Domains REST API, view the req…
2h agoapps/web/src/app/admin/_lib/storefrontRetentionReadiness.tsapps/web/src/app/admin/settings/actions.tsapps/web/src/env.ts+1 more - ShippedREQ-ADM-576
/admin/settings?tab=theme storefront theme customization. Tenant admins must be able to choose one of the six storefront templates, edit constrained theme tokens (colors, font pair, radii, density), choose the homepage strategy, and enable…
2h agoapps/web/src/app/admin/_lib/storefrontRetentionReadiness.tsapps/web/src/app/admin/settings/actions.tsapps/web/src/lib/storefrontThemeConfig.test.ts+4 more - ShippedREQ-ADM-577
/admin/settings?tab=domains custom-domain purchasing. Tenant admins must be able to search for a new root domain, receive Vercel registrar availability and per-domain price data, review a server-computed BoltToCart cart price, and check ou…
2h agopackages/events/src/registry.ts×2apps/web/src/app/admin/_lib/storefrontRetentionReadiness.tsapps/web/src/app/admin/settings/actions.ts+5 more - ShippedREQ-ADM-578
Domain purchases must use Vercel's registrar API to buy the domain after payment succeeds, even when Stripe Mode is test, because Vercel has no sandbox mode. Test-mode purchases may call Vercel only when the platform setting explicitly all…
48m agoapps/web/src/app/admin/_lib/storefrontRetentionReadiness.tsapps/web/src/app/admin/settings/actions.tsapps/web/src/app/api/webhooks/stripe/route.ts+9 more - ShippedREQ-ADM-579
Tenant admins must have a platform-purchases view under /admin showing store-owner purchases such as custom domains, including cart totals, Stripe Checkout/payment state, Vercel order id/state, purchased domain status, renewal/cancel/refun…
6h agoapps/web/src/app/admin/_lib/storefrontRetentionReadiness.tspackages/db/src/migrations/0038_platform_domain_purchases.sqlpackages/demo-data/src/packs/0020_admin_storefront_retention_readiness.ts - ShippedREQ-ADM-580
/admin/settings?tab=brand storefront brand assets. Tenant admins must be able to set a storefront logo by uploading an image or by generating one website-ready AI logo image from required profile inputs: store slug, store name, and store d…
2h agopackages/db/src/migrations/0041_store_brand_assets.sql×2packages/db/src/migrations/0042_brand_logo_favicon_split.sql×2packages/db/src/repositories/storeBrandAssets.ts×2+10 more - ShippedREQ-ADM-581
/admin/settings?tab=domains hosted-email self-service. Once a custom domain is marked Live, tenant admins must see a hosted-email option for BoltToCart-managed MXRoute mailboxes. Automated checkout is enabled only for live domains whose DN…
2h agoapps/web/src/app/admin/settings/actions.ts×2apps/web/src/env.ts×2packages/demo-data/src/packs/0015_hosted_email_admin.ts×2+9 more - ShippedREQ-ADM-550
The /admin dashboard must include an overnight POS readiness tile summarizing active POS devices, revoked/not-ready devices, pending offline sale count when available from the POS sync/runtime surface, and the most urgent blocker. The tile…
6h agoapps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-551
The /admin/pos-devices/[id] detail page must render a launch checklist for the selected device: enrollment status, Stripe reader id presence, last seen timestamp, revocation state, receipt printer readiness placeholder, and cash-drawer rea…
6h agoapps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-552
The /admin/bolts surface must add a compact bolt lookup form that accepts a bolt id or barcode value, resolves under withAuthenticatedTenant, and redirects to /admin/bolts/[boltId] on an exact match. Unknown or cross-tenant values must ren…
6h agoapps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-553
The /admin/inventory dashboard must surface a "Needs attention" section with sold-out SKUs, remnant-threshold bolts, damaged bolts, and negative/invalid inventory guards if any exist. Each row links to the existing bolt or SKU/admin surfac…
6h agoapps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-554
The /admin/receiving list and detail flows must expose a printable receiving worksheet for open purchase orders and recent bolt receipts. The worksheet groups expected/received bolts by supplier and SKU, includes yardage in human-readable…
6h agoapps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-555
The /admin/orders list must add a POS/source filter chip row that separates storefront orders, POS-synced orders, imported legacy orders, and unknown-source orders when the data model exposes source metadata. If source metadata is absent,…
6h agoapps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-556
The /admin/orders/[id] page must render a staff-facing fulfillment action summary for overnight MVP: cut status, pack status, shipment/pickup status, return/RMA status, and any missing line-item data. The summary is read-only unless existi…
6h agoapps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts - ShippedREQ-ADM-557
The /admin/settings page must include a POS launch settings summary covering remnant threshold, default cut increment, store pickup posture, receipt footer/contact copy, and enabled tender methods where those values exist. Missing values m…
6h agopackages/demo-data/src/packs/0018_admin_storefront_traffic_readiness.ts×2apps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/core/src/adminOperationsReadiness/index.test.ts - ShippedREQ-ADM-558
The /admin/pos-devices list summary must surface stale active devices as a launch-readiness risk using last-seen timestamps, without mutating device state.
6h agopackages/core/src/adminOperationsReadiness/index.test.ts×4packages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts×2apps/web/src/app/admin/_lib/adminLaunchReadinessSuite.test.ts+2 more - ShippedREQ-ADM-559
The /admin/pos-devices/[id] detail page must include a copy-reader-id affordance in the identity card for hardware support handoffs.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-560
The /admin/orders source filter chips must show per-source counts computed from the loaded order window.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-561
The /admin/orders table must render human-readable source labels instead of raw source enum strings while preserving the raw value in a title for debugging.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-562
The /admin/orders/[id] page must include a copy-order-id affordance next to the order id for support handoffs.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-563
The /admin/receiving printable worksheet must group rows by supplier and SKU where possible, rather than rendering only a flat recent-bolt list.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-564
The /admin/settings POS launch settings summary must render missing values as setup-task links to the relevant existing settings tab/section.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-565
/admin/orders must render an active-filter summary whenever state, channel, or date filters are active, including chips for each active axis and a clear-all link back to /admin/orders.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-566
/admin/orders must include a visible total-value summary tile for the currently filtered order cohort, computed with integer minor-unit math.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-567
/admin/orders must expose a copy-visible-order-ids action when the filtered page has rows, copying one UUID per line for support handoffs.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-568
/admin/orders must expose a print-current-view action for the currently visible order table, hidden from print output.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-569
/admin/orders/orders.csv must honor channel=import / legacy-source aliases and channel=unknown using the same channel matching semantics as the on-screen order grid.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-570
/admin/orders/orders.csv must include customer_id and customer_name columns when the order is associated to a customer, leaving both blank for guest orders.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-571
/admin/orders/[id] must expose a print-order action in the header action strip for staff handoffs.
6h agoapps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts - ShippedREQ-ADM-572
/admin/orders/[id] must expose a copy-payment-intent affordance beside the Stripe PaymentIntent id when present.
6h agopackages/demo-data/src/packs/0019_admin_storefront_conversion_readiness.ts×2apps/web/src/app/admin/_lib/storefrontConversionReadiness.tspackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts+1 more - ShippedREQ-ADM-573
/admin/orders/[id] must render a human-readable source label while preserving the raw source value in a title attribute for debugging imported/API data.
6h agopackages/core/src/adminOperationsReadiness/index.test.ts×4apps/web/src/app/admin/_lib/adminLaunchReadinessSuite.test.ts×2packages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×2+2 more - ShippedREQ-ADM-511
/admin must expose an overnight MVP readiness cockpit behind the admin.overnight-mvp-readiness feature flag so launch signoff can be disabled without removing the core dashboard.
6h agopackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×6apps/web/src/app/admin/_lib/adminLaunchReadinessSuite.test.ts×4packages/core/src/adminOperationsReadiness/index.test.ts×4+3 more - ShippedREQ-ADM-512
The overnight MVP readiness cockpit must be derived by a pure, unit-tested view-model helper that accepts already RLS-scoped admin summary data and performs no database reads, writes, telemetry emissions, or tenant resolution.
6h agopackages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts - ShippedREQ-ADM-513
The cockpit must include an inventory-stock checkpoint showing whether at least one cuttable bolt is available before release testing.
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.test.tsapps/web/src/app/admin/_lib/overnightMvpReadiness.tspackages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts - ShippedREQ-ADM-514
The cockpit must include a cut-workflow checkpoint showing whether a test cut has happened in the rolling seven-day inventory window, falling back to last-cut evidence when older cuts exist.
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tspackages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts - ShippedREQ-ADM-527
The cockpit must include a launch-evidence checkpoint that combines inventory, POS, order, and audit evidence into a final ranked signoff item for REQ-ANL-042.
6h agopackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×2packages/demo-data/src/packs/0016_admin_overnight_mvp_readiness.ts×2apps/web/src/app/admin/_lib/overnightMvpReadiness.ts+4 more - ShippedREQ-ADM-528
/admin must expose a storefront launch readiness cockpit behind the admin.storefront-launch-readiness feature flag and include a store-identity checkpoint that blocks launch when the store has no configured display name.
2h agopackages/core/src/adminOperationsReadiness/index.test.ts×4packages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×3apps/web/src/app/admin/_lib/adminLaunchReadinessSuite.test.ts×2+4 more - ShippedREQ-ADM-529
The storefront launch readiness cockpit must include a brand-header checkpoint showing whether active logo or favicon assets are configured for public storefront chrome.
6h agoapps/web/src/app/admin/_lib/storefrontLaunchReadiness.tsapps/web/src/app/admin/loyalty/settings/LoyaltySettingsForm.tsxapps/web/src/app/admin/loyalty/settings/actions.ts+3 more - ShippedREQ-ADM-546
The storefront traffic readiness cockpit must include a catalog-depth checkpoint showing whether enough inventory records exist to absorb browsing traffic.
6h agopackages/db/src/migrations/0030_contacts.sql×2apps/web/src/app/admin/_lib/storefrontTrafficReadiness.tspackages/db/src/repositories/contacts.ts+2 more - ShippedREQ-ADM-582
The storefront retention readiness cockpit must include a class-cadence checkpoint showing whether at least one live or scheduled class/event can bring shoppers back.
6h agoapps/web/src/app/admin/_lib/storefrontRetentionReadiness.tspackages/demo-data/src/packs/0020_admin_storefront_retention_readiness.ts - ShippedREQ-ADM-583
The storefront retention readiness cockpit must include a community-loop checkpoint that blocks on design-contest preview failures and warns on pending moderation or absent optional contests.
6h agoapps/web/src/app/admin/_lib/storefrontRetentionReadiness.tspackages/demo-data/src/packs/0020_admin_storefront_retention_readiness.ts - ShippedREQ-ADM-584
The storefront retention readiness cockpit must include a support-continuity checkpoint that blocks on failed hosted-email mailbox provisioning, warns on pending provisioning, and marks active mailbox coverage as ready.
6h agoapps/web/src/app/admin/_lib/storefrontRetentionReadiness.tspackages/demo-data/src/packs/0020_admin_storefront_retention_readiness.ts - ShippedREQ-ADM-585
The storefront retention readiness cockpit must include a delivery-continuity checkpoint that blocks on dead-lettered webhook deliveries and warns when pending retry backlog exceeds the dashboard threshold.
6h agoapps/web/src/app/admin/_lib/storefrontRetentionReadiness.tspackages/demo-data/src/packs/0020_admin_storefront_retention_readiness.ts - ShippedREQ-ADM-586
The storefront retention readiness cockpit must include a data-stability checkpoint that blocks on Rain migration blocking findings and warns on reconciliation or warning-acceptance states.
6h agoapps/web/src/app/admin/_lib/storefrontRetentionReadiness.tspackages/demo-data/src/packs/0020_admin_storefront_retention_readiness.ts - ShippedREQ-ADM-587
The storefront retention readiness cockpit must include a retention-evidence checkpoint combining customer, offer, inventory, and audit evidence into a final ranked retention signoff item for REQ-ANL-042.
6h agopackages/demo-data/src/packs/0020_admin_storefront_retention_readiness.ts×2apps/web/src/app/admin/_lib/storefrontRetentionReadiness.tspackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts+1 more - ShippedREQ-ADM-588
/admin must expose a storefront service readiness cockpit behind the admin.storefront-service-readiness feature flag and include a service-identity checkpoint that blocks service testing when the store has no configured display name.
6h agopackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×5apps/web/src/app/admin/_lib/adminLaunchReadinessSuite.test.ts×2packages/core/src/adminOperationsReadiness/index.test.ts×2+2 more - ShippedREQ-ADM-589
The storefront service readiness cockpit must include a service-brand checkpoint showing whether active logo or favicon assets are configured for post-sale trust.
6h agoapps/web/src/app/admin/_lib/storefrontServiceReadiness.tspackages/demo-data/src/packs/0021_admin_storefront_service_readiness.ts - ShippedREQ-ADM-590
The storefront service readiness cockpit must include a service-content checkpoint showing whether at least four storefront theme sections are enabled before service handoff.
6h agoapps/web/src/app/admin/_lib/storefrontServiceReadiness.tspackages/demo-data/src/packs/0021_admin_storefront_service_readiness.ts - ShippedREQ-ADM-591
The storefront service readiness cockpit must include an assortment-reference checkpoint showing whether enough inventory records exist for customer-service lookups.
6h agoapps/web/src/app/admin/_lib/storefrontServiceReadiness.tspackages/demo-data/src/packs/0021_admin_storefront_service_readiness.ts - ShippedREQ-ADM-592
The storefront service readiness cockpit must include a replacement-stock checkpoint showing whether at least three cuttable bolts are available for issue resolution and exchanges.
6h agopackages/core/src/adminFulfillmentLaunchReadiness/index.test.ts×2packages/core/src/storefrontGovernanceReadiness/index.test.ts×2apps/web/src/app/admin/_lib/storefrontReadinessSuite.test.ts+4 more - ShippedREQ-ADM-593
The storefront service readiness cockpit must include a service-motion checkpoint showing whether recent cuts prove inventory operations are active before service testing.
6h agopackages/core/src/storefrontGovernanceReadiness/index.test.ts×9packages/core/src/adminStorefrontReadiness/index.test.ts×7apps/web/src/app/admin/_lib/storefrontReadinessSuite.test.ts×3+6 more - ShippedREQ-ADM-594
The storefront service readiness cockpit must include an order-service-proof checkpoint showing whether a current-month order and non-zero minor-unit revenue create serviceable order evidence.
6h agoapps/web/src/app/admin/_lib/storefrontReadinessSuite.test.ts×2apps/web/src/app/admin/_lib/storefrontServiceReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.ts+2 more - ShippedREQ-ADM-595
The storefront service readiness cockpit must include a customer-service-proof checkpoint showing whether fresh customer creation is visible in the last seven days.
6h agoapps/web/src/app/admin/_lib/storefrontReadinessSuite.test.ts×2apps/web/src/app/admin/_lib/storefrontServiceReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.ts+2 more - ShippedREQ-ADM-596
The storefront service readiness cockpit must include a drop-service-context checkpoint showing whether at least one live or scheduled drop gives support staff campaign context.
6h agoapps/web/src/app/admin/_lib/storefrontReadinessSuite.test.tsapps/web/src/app/admin/_lib/storefrontServiceReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.ts+2 more - ShippedREQ-ADM-597
The storefront service readiness cockpit must include a class-service-context checkpoint showing whether at least one live or scheduled class/event gives support staff event context.
6h agoapps/web/src/app/admin/_lib/storefrontReadinessSuite.test.ts×2apps/web/src/app/admin/_lib/storefrontServiceReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.ts+2 more - ShippedREQ-ADM-598
The storefront service readiness cockpit must include a community-service-loop checkpoint that blocks on design-contest preview failures and warns on pending moderation or absent optional contests.
6h agoapps/web/src/app/admin/_lib/storefrontReadinessSuite.test.ts×2packages/core/src/adminStorefrontReadiness/index.test.ts×2apps/web/src/app/admin/_lib/storefrontServiceReadiness.ts+2 more - ShippedREQ-ADM-599
The storefront service readiness cockpit must include a support-mailbox checkpoint that blocks on failed hosted-email mailbox provisioning, warns on pending provisioning, and marks active mailbox coverage as ready.
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×2apps/web/src/app/admin/_lib/storefrontServiceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-600
The storefront service readiness cockpit must include a service-delivery checkpoint that blocks on dead-lettered webhook deliveries and warns when pending retry backlog exceeds the dashboard threshold.
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×2apps/web/src/app/admin/_lib/storefrontServiceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-601
The storefront service readiness cockpit must include a service-data-confidence checkpoint that blocks on Rain migration blocking findings and warns on reconciliation or warning-acceptance states.
6h agopackages/core/src/adminOperationsReadiness/index.test.ts×3packages/core/src/adminStorefrontReadiness/index.test.ts×2apps/web/src/app/admin/_lib/storefrontServiceReadiness.ts+3 more - ShippedREQ-ADM-602
The storefront service readiness cockpit must include a service-evidence checkpoint combining support, order, inventory, and audit evidence into a final ranked service signoff item for REQ-ANL-042.
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×3packages/core/src/adminOperationsReadiness/index.test.ts×2packages/demo-data/src/packs/0021_admin_storefront_service_readiness.ts×2+3 more - ShippedREQ-ADM-603
/admin must expose a storefront operations readiness cockpit behind the admin.storefront-operations-readiness feature flag and include an operations-identity checkpoint that blocks daily operations testing when the store has no configured…
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×4packages/core/src/storefrontGovernanceReadiness/index.test.ts×2packages/demo-data/src/packs/0022_admin_storefront_operations_readiness.ts×2+2 more - ShippedREQ-ADM-604
The storefront operations readiness cockpit must include an operations-brand checkpoint showing whether active logo or favicon assets are configured for staff and shopper confidence.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-605
The storefront operations readiness cockpit must include an operations-content checkpoint showing whether at least four storefront theme sections are enabled for daily admin context.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-606
The storefront operations readiness cockpit must include a catalog-control checkpoint showing whether enough inventory records exist for daily catalog operations.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-607
The storefront operations readiness cockpit must include a floor-stock checkpoint showing whether at least four cuttable bolts are available for daily selling.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-608
The storefront operations readiness cockpit must include a cut-desk-motion checkpoint showing whether recent cuts prove the operational cut desk is active.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-609
The storefront operations readiness cockpit must include an order-queue-proof checkpoint showing whether a current-month order and non-zero minor-unit revenue prove the order queue is usable.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-610
The storefront operations readiness cockpit must include a customer-queue-proof checkpoint showing whether fresh customer creation is visible in the last seven days.
6h agoapps/web/src/app/admin/_lib/adminLaunchReadinessSuite.test.ts×3apps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.ts+3 more - ShippedREQ-ADM-611
The storefront operations readiness cockpit must include a drop-operations checkpoint showing whether at least one live or scheduled drop is ready for daily operations.
6h agoapps/web/src/app/admin/_lib/adminLaunchReadinessSuite.test.tsapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.ts+2 more - ShippedREQ-ADM-612
The storefront operations readiness cockpit must include a class-operations checkpoint showing whether at least one live or scheduled class/event is ready for daily operations.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-613
The storefront operations readiness cockpit must include a contest-operations checkpoint that blocks on design-contest preview failures and warns on pending moderation or absent optional contests.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-614
The storefront operations readiness cockpit must include a mailbox-operations checkpoint that blocks on failed hosted-email mailbox provisioning, warns on pending provisioning, and marks active mailbox coverage as ready.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-615
The storefront operations readiness cockpit must include a webhook-operations checkpoint that blocks on dead-lettered webhook deliveries and warns when pending retry backlog exceeds the dashboard threshold.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-616
The storefront operations readiness cockpit must include a migration-operations checkpoint that blocks on Rain migration blocking findings and warns on reconciliation or warning-acceptance states.
6h agoapps/web/src/app/admin/_lib/storefrontOperationsReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-617
The storefront operations readiness cockpit must include an operations-evidence checkpoint combining catalog, order, support, and audit evidence into a final ranked operations signoff item for REQ-ANL-042.
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×3packages/core/src/storefrontGovernanceReadiness/index.test.ts×3packages/demo-data/src/packs/0022_admin_storefront_operations_readiness.ts×2+2 more - ShippedREQ-ADM-618
/admin must expose a storefront fulfillment readiness cockpit behind the admin.storefront-fulfillment-readiness feature flag and include a fulfillment-identity checkpoint that blocks fulfillment testing when the store has no configured dis…
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×4packages/core/src/storefrontGovernanceReadiness/index.test.ts×2packages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts×2+2 more - ShippedREQ-ADM-619
The storefront fulfillment readiness cockpit must include a fulfillment-brand checkpoint showing whether active logo or favicon assets are configured for packing-slip and customer confidence.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-620
The storefront fulfillment readiness cockpit must include a fulfillment-content checkpoint showing whether at least three storefront theme sections are enabled for fulfillment context.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-621
The storefront fulfillment readiness cockpit must include a pick-list-depth checkpoint showing whether enough inventory records exist for pick/pack validation.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-622
The storefront fulfillment readiness cockpit must include a packable-stock checkpoint showing whether at least three cuttable bolts are available for fulfillment testing.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-623
The storefront fulfillment readiness cockpit must include a cut-to-pack-motion checkpoint showing whether recent cuts prove fabric can move from cut desk to packing.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-624
The storefront fulfillment readiness cockpit must include an order-to-pack-proof checkpoint showing whether a current-month order and non-zero minor-unit revenue create packable order evidence.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-625
The storefront fulfillment readiness cockpit must include a customer-handoff-proof checkpoint showing whether fresh customer creation is visible in the last seven days.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-626
The storefront fulfillment readiness cockpit must include a drop-fulfillment-context checkpoint showing whether at least one live or scheduled drop can create fulfillment demand.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-627
The storefront fulfillment readiness cockpit must include a class-fulfillment-context checkpoint showing whether at least one live or scheduled class/event can create service fulfillment context.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-628
The storefront fulfillment readiness cockpit must include a contest-fulfillment-loop checkpoint that blocks on design-contest preview failures and warns on pending moderation or absent optional contests.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-629
The storefront fulfillment readiness cockpit must include a fulfillment-mailbox checkpoint that blocks on failed hosted-email mailbox provisioning, warns on pending provisioning, and marks active mailbox coverage as ready.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-630
The storefront fulfillment readiness cockpit must include a fulfillment-webhook checkpoint that blocks on dead-lettered webhook deliveries and warns when pending retry backlog exceeds the dashboard threshold.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-631
The storefront fulfillment readiness cockpit must include a fulfillment-data-confidence checkpoint that blocks on Rain migration blocking findings and warns on reconciliation or warning-acceptance states.
6h agoapps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts - ShippedREQ-ADM-632
The storefront fulfillment readiness cockpit must include a fulfillment-evidence checkpoint combining inventory, order, support, and audit evidence into a final ranked fulfillment signoff item for REQ-ANL-042.
6h agopackages/core/src/storefrontGovernanceReadiness/index.test.ts×3packages/demo-data/src/packs/0023_admin_storefront_fulfillment_readiness.ts×2apps/web/src/app/admin/_lib/storefrontFulfillmentReadiness.ts+2 more - ShippedREQ-ADM-633
/admin must expose a storefront support readiness cockpit behind the admin.storefront-support-readiness feature flag and include a support-identity checkpoint that blocks support testing when the store has no configured display name.
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×4packages/core/src/storefrontGovernanceReadiness/index.test.ts×2packages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts×2+2 more - ShippedREQ-ADM-634
The storefront support readiness cockpit must include a support-brand checkpoint showing whether active logo or favicon assets are configured for recognizable customer help responses.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-635
The storefront support readiness cockpit must include a support-content checkpoint showing whether at least three storefront theme sections are enabled for staff support context.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-636
The storefront support readiness cockpit must include a support-catalog-context checkpoint showing whether enough inventory records exist to answer shopper catalog questions.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-637
The storefront support readiness cockpit must include a support-stock-context checkpoint showing whether at least three cuttable bolts are available to answer availability questions.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-638
The storefront support readiness cockpit must include a cut-support-motion checkpoint showing whether recent cuts give staff fresh support context.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-639
The storefront support readiness cockpit must include an order-support-proof checkpoint showing whether a current-month order and non-zero minor-unit revenue create supportable order evidence.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-640
The storefront support readiness cockpit must include a customer-support-proof checkpoint showing whether fresh customer creation is visible in the last seven days.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-641
The storefront support readiness cockpit must include a drop-support-context checkpoint showing whether at least one live or scheduled drop can generate shopper support questions.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-642
The storefront support readiness cockpit must include a class-support-context checkpoint showing whether at least one live or scheduled class/event can generate service support questions.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-643
The storefront support readiness cockpit must include a contest-support-loop checkpoint that blocks on design-contest preview failures and warns on pending moderation or absent optional contests.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-644
The storefront support readiness cockpit must include a support-mailbox checkpoint that blocks on failed hosted-email mailbox provisioning, warns on pending provisioning, and marks active mailbox coverage as ready.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-645
The storefront support readiness cockpit must include a support-webhook checkpoint that blocks on dead-lettered webhook deliveries and warns when pending retry backlog exceeds the dashboard threshold.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-646
The storefront support readiness cockpit must include a support-data-confidence checkpoint that blocks on Rain migration blocking findings and warns on reconciliation or warning-acceptance states.
6h agoapps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts - ShippedREQ-ADM-647
The storefront support readiness cockpit must include a support-evidence checkpoint combining customer, order, support, and audit evidence into a final ranked support signoff item for REQ-ANL-042.
6h agopackages/demo-data/src/packs/0024_admin_storefront_support_readiness.ts×2apps/web/src/app/admin/_lib/storefrontSupportReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.ts+2 more - ShippedREQ-ADM-648
/admin must expose a storefront merchandising readiness cockpit behind the admin.storefront-merchandising-readiness feature flag and include a merchandising-identity checkpoint that blocks merchandising testing when the store has no config…
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×4packages/core/src/storefrontGovernanceReadiness/index.test.ts×2packages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts×2+2 more - ShippedREQ-ADM-649
The storefront merchandising readiness cockpit must include a merchandising-brand checkpoint showing whether active logo or favicon assets are configured for recognizable shopper-facing merchandising.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-650
The storefront merchandising readiness cockpit must include a merchandising-content checkpoint showing whether at least three storefront theme sections are enabled for assortment context.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-651
The storefront merchandising readiness cockpit must include a merchandising-catalog-context checkpoint showing whether enough inventory records exist to support featured assortments.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-652
The storefront merchandising readiness cockpit must include a merchandising-stock-context checkpoint showing whether at least three cuttable bolts are available for shopper-facing availability.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-653
The storefront merchandising readiness cockpit must include a cut-merchandising-motion checkpoint showing whether recent cuts give staff fresh merchandising context.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-654
The storefront merchandising readiness cockpit must include an order-merchandising-proof checkpoint showing whether a current-month order and non-zero minor-unit revenue validate merchandising.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-655
The storefront merchandising readiness cockpit must include a customer-merchandising-proof checkpoint showing whether fresh customer creation is visible in the last seven days.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-656
The storefront merchandising readiness cockpit must include a drop-merchandising-context checkpoint showing whether at least one live or scheduled drop can carry featured merchandising.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-657
The storefront merchandising readiness cockpit must include a class-merchandising-context checkpoint showing whether at least one live or scheduled class/event can carry service merchandising.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-658
The storefront merchandising readiness cockpit must include a contest-merchandising-loop checkpoint that blocks on design-contest preview failures and warns on pending moderation or absent optional contests.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-659
The storefront merchandising readiness cockpit must include a merchandising-mailbox checkpoint that blocks on failed hosted-email mailbox provisioning, warns on pending provisioning, and marks active mailbox coverage as ready.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-660
The storefront merchandising readiness cockpit must include a merchandising-webhook checkpoint that blocks on dead-lettered webhook deliveries and warns when pending retry backlog exceeds the dashboard threshold.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-661
The storefront merchandising readiness cockpit must include a merchandising-data-confidence checkpoint that blocks on Rain migration blocking findings and warns on reconciliation or warning-acceptance states.
6h agoapps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts - ShippedREQ-ADM-662
The storefront merchandising readiness cockpit must include a merchandising-evidence checkpoint combining catalog, campaign, order, and audit evidence into a final ranked merchandising signoff item for REQ-ANL-042.
6h agopackages/core/src/storefrontGovernanceReadiness/index.test.ts×3packages/demo-data/src/packs/0025_admin_storefront_merchandising_readiness.ts×2apps/web/src/app/admin/_lib/storefrontMerchandisingReadiness.ts+2 more - ShippedREQ-ADM-663
/admin must expose a storefront trust readiness cockpit behind the admin.storefront-trust-readiness feature flag and include a trust-identity checkpoint that blocks trust testing when the store has no configured display name.
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×4packages/core/src/storefrontGovernanceReadiness/index.test.ts×2packages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts×2+2 more - ShippedREQ-ADM-664
The storefront trust readiness cockpit must include a trust-brand checkpoint showing whether active logo or favicon assets are configured for recognizable shopper-facing trust cues.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-665
The storefront trust readiness cockpit must include a trust-content checkpoint showing whether at least four storefront theme sections are enabled for shopper confidence.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-666
The storefront trust readiness cockpit must include a trust-catalog checkpoint showing whether enough inventory records exist to support shopper comparison and confidence.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-667
The storefront trust readiness cockpit must include a trust-stock checkpoint showing whether at least three cuttable bolts are available for shopper-facing stock promises.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-668
The storefront trust readiness cockpit must include a trust-stock-motion checkpoint showing whether recent cuts prove stock movement before trust testing.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-669
The storefront trust readiness cockpit must include a trust-order-proof checkpoint showing whether a current-month paid order and non-zero minor-unit revenue prove trust-sensitive checkout.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-670
The storefront trust readiness cockpit must include a trust-customer-proof checkpoint showing whether fresh customer creation is visible in the last seven days.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-671
The storefront trust readiness cockpit must include a trust-drop-context checkpoint showing whether at least one live or scheduled drop can carry time-sensitive trust cues.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-672
The storefront trust readiness cockpit must include a trust-class-context checkpoint showing whether at least one live or scheduled class/event can carry service trust cues.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-673
The storefront trust readiness cockpit must include a trust-community-loop checkpoint that blocks on design-contest preview failures and warns on pending moderation or absent optional contests.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-674
The storefront trust readiness cockpit must include a trust-contact checkpoint that blocks on failed hosted-email mailbox provisioning, warns on pending provisioning, and marks active mailbox coverage as ready.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-675
The storefront trust readiness cockpit must include a trust-delivery checkpoint that blocks on dead-lettered webhook deliveries and warns when pending retry backlog exceeds the dashboard threshold.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-676
The storefront trust readiness cockpit must include a trust-data-confidence checkpoint that blocks on Rain migration blocking findings and warns on reconciliation or warning-acceptance states.
6h agoapps/web/src/app/admin/_lib/storefrontTrustReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts - ShippedREQ-ADM-677
The storefront trust readiness cockpit must include a trust-evidence checkpoint combining brand, contact, order, and audit evidence into a final ranked trust signoff item for REQ-ANL-042.
6h agopackages/core/src/storefrontGovernanceReadiness/index.test.ts×3packages/demo-data/src/packs/0026_admin_storefront_trust_readiness.ts×2apps/web/src/app/admin/_lib/storefrontTrustReadiness.ts+2 more - ShippedREQ-ADM-678
/admin must expose a storefront compliance readiness cockpit behind the admin.storefront-compliance-readiness feature flag and include a compliance-identity checkpoint that blocks compliance testing when the store has no configured display…
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×2packages/core/src/storefrontGovernanceReadiness/index.test.ts×2packages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts×2+2 more - ShippedREQ-ADM-679
The storefront compliance readiness cockpit must include a compliance-brand checkpoint showing whether active logo or favicon assets are configured for customer-facing policy context.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-680
The storefront compliance readiness cockpit must include a compliance-content checkpoint showing whether at least four storefront theme sections are enabled for policy context.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-681
The storefront compliance readiness cockpit must include a compliance-catalog checkpoint showing whether enough inventory records exist to support product-policy review.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-682
The storefront compliance readiness cockpit must include a compliance-stock checkpoint showing whether at least three cuttable bolts are available for fulfillment-policy review.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-683
The storefront compliance readiness cockpit must include a compliance-stock-motion checkpoint showing whether recent cuts prove inventory audit flow before compliance testing.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-684
The storefront compliance readiness cockpit must include a compliance-order-proof checkpoint showing whether a current-month paid order and non-zero minor-unit revenue prove receipt and order-policy evidence.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-685
The storefront compliance readiness cockpit must include a compliance-customer-proof checkpoint showing whether fresh customer creation is visible in the last seven days.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-686
The storefront compliance readiness cockpit must include a compliance-drop-context checkpoint showing whether at least one live or scheduled drop can test time-bound offer terms.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-687
The storefront compliance readiness cockpit must include a compliance-class-context checkpoint showing whether at least one live or scheduled class/event can test event policy context.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-688
The storefront compliance readiness cockpit must include a compliance-community-loop checkpoint that blocks on design-contest preview failures and warns on pending moderation or absent optional contests.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/adminStorefrontReadiness/index.test.tspackages/core/src/storefrontGovernanceReadiness/index.ts+1 more - ShippedREQ-ADM-689
The storefront compliance readiness cockpit must include a compliance-contact checkpoint that blocks on failed hosted-email mailbox provisioning, warns on pending provisioning, and marks active mailbox coverage as ready.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-690
The storefront compliance readiness cockpit must include a compliance-delivery checkpoint that blocks on dead-lettered webhook deliveries and warns when pending retry backlog exceeds the dashboard threshold.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-691
The storefront compliance readiness cockpit must include a compliance-data-confidence checkpoint that blocks on Rain migration blocking findings and warns on reconciliation or warning-acceptance states.
6h agoapps/web/src/app/admin/_lib/storefrontComplianceReadiness.tspackages/core/src/storefrontGovernanceReadiness/index.tspackages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts - ShippedREQ-ADM-692
The storefront compliance readiness cockpit must include a compliance-evidence checkpoint combining policy, contact, order, and audit evidence into a final ranked compliance signoff item for REQ-ANL-042.
6h agopackages/core/src/adminStorefrontReadiness/index.test.ts×4packages/core/src/storefrontGovernanceReadiness/index.test.ts×3packages/demo-data/src/packs/0027_admin_storefront_compliance_readiness.ts×2+6 more - In progressREQ-ADM-693
/admin must expose a catalog workbench for self-service SKU publishing and editing. The workbench must include searchable/paginated SKU lists, draft/published state, required-field completeness, image/alt-text status, duplicate slug valida…
packages/core/src/storefrontGovernanceReadiness/index.test.ts×2apps/web/src/app/admin/_lib/storefrontReadinessSuite.test.tspackages/core/src/adminStorefrontReadiness/index.test.ts - ShippedREQ-ADM-694
/admin/settings must replace Tax and Shipping placeholder tabs with launch-blocking configuration surfaces for tax nexus/jurisdictions, pickup availability, shipping regions, shipping methods/rates, handling cutoffs, and return address/con…
2h agoapps/web/src/app/admin/settings/page.tsx×3apps/web/src/app/admin/settings/CheckoutSettingsForms.tsx×2apps/web/src/app/admin/page.tsx+5 more - ShippedREQ-ADM-695
The admin launch/readiness cockpit must distinguish simulated/demo evidence from live commerce evidence. A store cannot be marked MVP-ready unless the cockpit has fresh proof for production checkout, payment webhook delivery, tax/shipping…
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.test.ts×2apps/web/src/app/admin/_lib/overnightMvpReadiness.ts×2 - Not startedREQ-ADM-696
Admin list and picker surfaces that can exceed 500 rows must use DB-level filtering, search, sorting, and cursor or page pagination instead of loading broad windows and filtering in memory. This applies at minimum to orders, fulfillment, r…
- ShippedREQ-ADM-697
The admin shell must expose a complete, feature-flag-aware information architecture for every implemented MVP operating surface. Primary or secondary navigation and the global admin search/command affordance must cover at minimum dashboard…
10m agoapps/web/src/components/AdminNavRail.tsx - ShippedREQ-ADM-698
Unauthenticated requests to /admin/ must resolve to the Clerk sign-in flow or a user-safe authentication-required page without throwing a route-level 500. Signed-in users without an active tenant organization may still see the choose-store…
6h agoapps/web/src/app/admin/layout.tsx - ShippedREQ-ADM-699
Admin publishing workflows that affect the public storefront must include a preview and launch checklist before activation. Catalog products, storefront theme/homepage sections, drops, classes/events, design contests, tax/shipping settings…
6h agoapps/web/src/app/admin/design-contests/[slug]/page.tsxapps/web/src/app/admin/design-contests/_lib/launchChecklist.tsapps/web/src/app/admin/design-contests/actions.ts - Not startedREQ-ADM-700
Public-changing admin forms must expose consistent pre-submit evidence for what will change on the storefront. At minimum the catalog product editor, design-contest manager, drops manager, event manager, theme/brand settings, and support-p…
- ShippedREQ-ADM-701
Admin list pages that remain temporarily capped before full DB-level pagination must make the cap visible and safe. Each capped list must show the fetched-row limit, active server-side filters versus client-side filters, the filtered count…
6h agoapps/web/src/app/admin/_components/CappedListDisclosure.tsxapps/web/src/app/admin/_lib/cappedListDisclosure.ts - ShippedREQ-ADM-702
Admin launch readiness must include a per-surface “operator next action” queue for MVP blockers. Each blocker row must name the affected public surface, owning admin page, requirement ID, blocking signal, last evidence timestamp, and the s…
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/page.tsx - Not startedREQ-ADM-703
Admin public-content editors must expose publish-risk previews for surfaces that feed storefront navigation, feeds, calendars, and Open Graph metadata. Drops, events, design contests, and brand/theme changes must show the affected public U…
- ShippedREQ-ADM-704
Admin launch readiness rows must support assignment and acknowledgement for MVP blockers. Each operator next action must be assignable to a staff owner, carry an acknowledgement timestamp/comment, and retain the underlying blocker until fr…
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/page.tsx - Not startedREQ-ADM-705
Admin launch readiness acknowledgement must persist across sessions and be auditable. Each acknowledgement must store tenant, checkpoint ID, owner, actor, timestamp, comment, prior severity, and current evidence hash, and the cockpit must…
- ShippedREQ-ADM-706
Admin launch readiness assignment must escalate stale MVP blockers by owner. The cockpit must group unresolved blocker rows by assigned staff owner, show acknowledgement age against a configurable SLA, identify whether the latest evidence…
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.tsapps/web/src/app/admin/page.tsx - Not startedREQ-ADM-707
Admin launch readiness escalation rules must be tenant-configurable. Store operators must be able to configure default owners, acknowledgement SLA minutes, escalation recipients, and stale-evidence thresholds per readiness category without…
- Not startedREQ-ADM-708
Admin launch readiness escalation configuration must have a first-class settings surface. The surface must let authorized operators edit per-category default owner, acknowledgement SLA minutes, escalation recipients, stale-evidence thresho…
- ShippedREQ-ADM-709
Admin launch readiness must provide an exportable operator handoff packet for unresolved MVP blockers. The packet must include blocker severity, owner, acknowledgement age, evidence hash, affected public route, required admin page, current…
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.ts×3apps/web/src/app/admin/page.tsx×2apps/web/src/app/admin/_lib/overnightMvpReadiness.test.ts - ShippedREQ-ADM-710
Admin launch-readiness handoff packets must be filterable by owner, severity, affected route, and stale acknowledgement state before export. The dashboard must show the filtered blocker count, retain the applied filters in the URL, and mak…
6h agoapps/web/src/app/admin/_lib/overnightMvpReadiness.ts×3apps/web/src/app/admin/_lib/overnightMvpReadiness.test.tsapps/web/src/app/admin/page.tsx - Not startedREQ-ADM-711
Admin launch-readiness handoff filters must be shareable and reversible. Every filtered handoff packet URL must include only the active filter params, expose a one-click clear-filters path, preserve unrelated readiness sort or acknowledgem…
- ShippedREQ-ADM-712
Admin checkout settings must include a shopper-facing preview for the exact cart quote assumptions a store is about to publish. Before saving tax or fulfillment settings, the surface must show a sample subtotal, selected fulfillment method…
2h agoapps/web/src/app/admin/settings/page.tsxapps/web/src/lib/adminCheckoutSettingsPreview.ts - ShippedREQ-ADM-713
Admin checkout settings preview must include a publish-impact diff before saving. The diff must compare current and proposed tax/fulfillment settings, show which cart quote lines or blockers change, identify the affected storefront routes,…
6h agoapps/web/src/app/admin/settings/CheckoutSettingsForms.tsxapps/web/src/lib/adminCheckoutSettingsPreview.ts - ShippedREQ-ADM-714
Admin checkout settings must warn before losing unsaved publish-impact changes. When an operator edits tax, shipping, pickup, or return-contact inputs and the publish-impact diff changes, tab navigation, browser unload, and form reset path…
6h agoapps/web/src/app/admin/settings/CheckoutSettingsForms.tsx×2apps/web/src/lib/adminCheckoutSettingsPreview.ts - ShippedREQ-ADM-715
Admin checkout settings saves must detect stale publish-impact baselines. If another operator or process changes tax, pickup, shipping, return-contact, or support-contact inputs after the current form loaded, saving must compare against a…
6h agoapps/web/src/lib/adminCheckoutSettingsPreview.ts×4apps/web/src/app/admin/settings/CheckoutSettingsForms.tsxapps/web/src/lib/adminCheckoutSettingsPreview.test.ts - ShippedREQ-ADM-716
Admin checkout settings must provide a conflict-resolution affordance after a stale-baseline save is blocked. The surface must show safe field summaries for the latest published values, the operator draft, changed quote-line labels, affect…
2h agoapps/web/src/lib/adminCheckoutSettingsPreview.ts×3apps/web/src/app/admin/settings/actions.ts×2apps/web/src/app/admin/settings/CheckoutSettingsForms.tsx+1 more - ShippedREQ-ADM-717
Admin checkout readiness must include a payment-provider configuration gate before launch signoff. The gate must show whether hosted-payment mode is configured, whether webhook signatures are verified, whether live/test mode matches the te…
2h agoapps/web/src/app/admin/settings/page.tsx - ShippedREQ-ADM-718
Admin order detail must expose checkout attempt, payment, and fulfillment linkage for web orders. The page must show attempt reference, payment-provider mode, verified payment lifecycle, order-creation retry status, fulfillment queue statu…
6h agoapps/web/src/lib/checkoutOrderLinkage.ts×3apps/web/src/app/admin/orders/[id]/page.tsxapps/web/src/lib/checkoutOrderLinkage.test.ts - Not startedREQ-ADM-719
Admin support must include a checkout attempt lookup that can search by safe attempt reference, order id, or fulfillment id and show the same payment, order-creation, fulfillment, retry, and exception state without exposing provider secret…
- Not startedREQ-ADM-720
Admin checkout support lookup must preserve an operator audit trail for every viewed attempt. Searches by safe attempt reference, order id, or fulfillment id must record the staff actor, lookup reason, redacted state summary, copied suppor…
- Not startedREQ-ADM-721
Admin checkout launch gates must include sealed-ledger and webhook reconciliation readiness before a store can enable live payment capture. The settings dashboard must show whether the ledger signing secret is configured, whether webhook s…
- ShippedREQ-ADM-722
Admin checkout readiness must replace hosted-payment launch checks with embedded-payment checks. The gate must show whether the active Stripe mode has both secret and publishable keys, whether webhook signatures are verified, whether live/…
48m agoapps/web/src/lib/checkoutPaymentProviderReadiness.ts×4apps/web/src/app/admin/platform-purchases/checkout/page.tsx×2apps/web/src/app/admin/settings/page.tsx×2 - Not startedREQ-ADM-723
Platform operators must have a product-library console for source connector configuration, run history, record review, duplicate resolution, field conflict review, media approval, source-block investigation, and publishing approved records…
- Not startedREQ-ADM-724
Store-owner admin surfaces must include a library-sourced product intake experience in the tenant admin route group. The surface must support barcode lookup, text search, result filtering by vendor/designer/collection/category/color/availa…
- Not startedREQ-ADM-725
Product-library update suggestions must appear in tenant admin as a review queue with bulk accept, bulk dismiss, and per-field compare actions. Bulk actions must be limited to non-risky fields by default; price, taxability, unit of sale, S…
REQ-ACTCustomer Account28 shipped0 wip0 todo100%
- ShippedREQ-ACT-509
STOP — No order_line_items table exists in the schema. The "Reorder all" functionality requires per-line SKU + yardage data which is not yet persisted. Adding order line items requires a schema migration — coordination-lane work.
6h agopackages/db/src/migrations/0031_order_line_items.sql×2apps/web/src/app/account/orders/[id]/page.tsxapps/web/src/app/account/profile/ProfileForm.tsx+7 more - ShippedREQ-ACT-510
AUDIT — /account/loyalty already renders a next-tier progress bar (TierProgress component). No change required.
6h agoapps/web/src/app/account/notifications/NotificationPrefsForm.tsxapps/web/src/app/account/notifications/actions.tsapps/web/src/app/account/notifications/page.tsx+3 more - apps/web/src/app/account/orders/[id]/actions.tsapps/web/src/app/account/orders/[id]/page.tsxapps/web/src/app/account/wishlist/page.tsx+2 more
- apps/web/src/app/account/profile/page.tsx×2apps/web/src/app/account/tickets/page.tsxpackages/core/src/customerAutomationReadiness/index.ts+1 more
- ShippedREQ-ACT-513
Creates /account/tickets/[id]/page.tsx — an event-ticket detail page. The "Add to calendar" section links to /events/[slug]/calendar.ics (same ICS endpoint used by the storefront). Customer-scoped load via email join prevents cross-custome…
6h agoapps/web/src/app/account/tickets/[id]/page.tsx×2packages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-508
/account/notifications notification preference toggles. Displays orderUpdates / dropAlerts / classReminders toggles read from customer_notification_prefs (RLS-scoped SELECT, JS filter by customerId). Toggle persistence deferred to a custom…
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-507
/account/profile edit form. Displays Clerk-managed identity (displayName, email, staff badge) as read-only with a link to Clerk account settings. Phone and marketing prefs shown as disabled inputs with 'coming soon' note ??? schema columns…
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-506
/account/orders/[id] order detail. Shows status badge + placed timestamp, three summary tiles (total, yardage, savings), line-items placeholder, fulfillment timeline stub with order-placed event, and Stripe PI tender. Customer-scoped: acce…
6h agopackages/db/src/migrations/0023_customer_notification_prefs.sql×2packages/events/src/domain/customers.ts×2apps/web/src/app/account/orders/[id]/page.tsx+5 more - ShippedREQ-ACT-505
/account/orders listing grouped by status (Open: pending/processing/ready_for_pickup; Past: fulfilled/cancelled/refunded). Each row links to /account/orders/[id] with status badge and total.
6h agoapps/web/src/app/account/_components/DashboardWidgets.tsxapps/web/src/app/account/orders/page.tsxpackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-ACT-504
/account dashboard widget grid. A four-tile at-a-glance grid anchors the account home above the richer per-domain sections that already lived on this page ??? surfacing Upcoming events, Open orders, Reward balance, and Recent projects so a…
6h agopackages/db/src/migrations/0019_orders.sql×2packages/db/src/repositories/orders.ts×2apps/web/src/app/account/_components/DashboardWidgets.tsx+5 more - ShippedREQ-ACT-503
/account/loyalty build-out. The account loyalty page already rendered a tier-progress bar (REQ-LOYALTY-\*) keyed off lifetime points ??? the REQ-ADM-500-lane spec called for a yardage-keyed variant, but the underlying customer_loyalty sche…
6h agoapps/web/src/app/account/loyalty/page.tsx×2packages/db/src/migrations/0018_customer_purchase_fields.sql×2packages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-ACT-502
/account/projects read-only share URL. A "Share" button on each valid saved-project card generates a copy-to-clipboard URL of the form <origin>/projects/shared/<projectId>.<token> where token = HMAC-SHA256(STOREFRONT_PROJECT_SHARE_SECRET,…
2h agoapps/web/src/app/account/projects/page.tsx×3apps/web/src/app/(storefront)/projects/shared/[slug]/page.tsxapps/web/src/app/account/_lib/projectShare.test.ts+5 more - ShippedREQ-ACT-501
/account/wishlist bulk actions. A per-card selection checkbox overlay, a "Select all" tri-state header checkbox (indeterminate when a strict subset is selected), and a sticky bottom action bar that appears once any row is selected and disa…
6h agoapps/web/src/app/account/wishlist/actions.ts×3apps/web/src/app/account/wishlist/_components/WishlistBulkList.tsx×2apps/web/src/app/account/wishlist/_components/WishlistCard.tsx+3 more - ShippedREQ-ACT-500
/account/projects saved-project cards carry a "Duplicate" action that writes a new customer_projects row owned by the same signed-in customer, copying the source's pattern/size/slot payload and naming it <original> (copy) ??? or (copy) 2,…
6h agopackages/core/src/customerCommerceReadiness/index.test.ts×9packages/core/src/customerAutomationReadiness/index.test.ts×6packages/core/src/commerceReadiness/index.test.ts×2+6 more - ShippedREQ-ACT-514
/account/orders/[id] renders persisted order_line_items when the orders.line-items flag is enabled (default on, env-overridable via FLAG_ORDERS_LINE_ITEMS). The page still enforces customer scoping through withCustomer; after the order/cus…
6h agoapps/web/src/app/account/loyalty/page.tsxpackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-515
The /account/orders/[id] page must expose a print-friendly receipt action for customers. The page renders a visible Print receipt control after the order header, hides that control from print, and marks the order-line/detail section with a…
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-516
The /account/orders/[id] page must expose a copy-order-id affordance in the customer-facing order header so shoppers can paste the exact UUID into support chats without relying on the shortened visible reference.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-517
The /account/orders/[id] page must include a support email handoff link that pre-fills the order id in the message body while avoiding any customer address, payment, or PAN data in the URL.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-518
The /account/orders page must add URL-driven source filter chips for storefront, in-store POS, API, and unknown-source orders, with counts computed from the loaded customer order window and a default all-sources view.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-519
The /account/orders page must render a compact order-status summary strip for open, delivered, and cancelled orders above the grouped order list.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-520
The /account/orders page must expose a copy-visible-order-ids control when one or more orders are visible after filtering, copying one UUID per line for support handoff.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-521
The /account/orders page must expose a print-history control for the currently visible order list, with the control hidden from browser print output.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-522
The /account/orders page must render an active-filter summary when a source filter is active, including a clear link back to the unfiltered order history.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-523
Customer-facing order cards must render human-readable source labels and preserve the raw source value in a title for debugging stale imported/API data without leaking implementation vocabulary into the main label.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-524
/account must expose a copy-account-email affordance beside the shopper email in the profile card.
6h agopackages/core/src/commerceReadiness/index.test.ts×2packages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-525
/account must include a compact quick-action rail linking to orders, wishlist, saved projects, and loyalty so returning shoppers can jump to core account tasks without scrolling.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-526
/account/orders/[id] must expose a copy-payment-reference affordance for the Stripe PaymentIntent id when an order has one.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/customerCommerceReadiness/index.ts - ShippedREQ-ACT-527
/account/orders must include a visible total-spend summary tile for the currently filtered order history.
6h agopackages/core/src/commerceReadiness/index.test.tspackages/core/src/customerAutomationReadiness/index.test.tspackages/core/src/customerAutomationReadiness/index.ts+2 more
REQ-JOBBackground Jobs38 shipped0 wip7 todo84%
- ShippedREQ-JOB-502
Outbox-relay delivery-semantics tests (apps/jobs/src/workers/outbox-relay.test.ts). Seven new tests covering: (a) at-least-once ??? a seeded row re-delivers across a simulated transaction rollback because markPublished is scoped to the out…
6h agoapps/jobs/src/registry/retryPolicy.ts×2apps/jobs/src/registry/retryPolicy.test.tsapps/jobs/src/workers/outbox-relay.test.ts+2 more - ShippedREQ-JOB-501
Typed job registry for apps/jobs: defineJob<TOptions, TResult>(???) produces a frozen JobDefinition; runJob(job, options, { logger, tags? }) is the single dispatch entry that emits structured starting / finished / failed log records (with…
6h agoapps/jobs/src/workers/emailJob.ts×2apps/jobs/src/workers/payoutJob.ts×2apps/jobs/src/registry/defineJob.test.ts+9 more - ShippedREQ-JOB-505
Payout relay job stub (apps/jobs/src/workers/payoutJob.ts). schedulePayoutJob registered via the typed registry (REQ-JOB-501). PayoutJobOptions: influencerId: string, periodStart: string, periodEnd: string, tenantId: string, amountMinorUni…
6h agoapps/jobs/src/workers/payoutJob.ts×2packages/events/src/registry.ts×2apps/jobs/src/workers/payoutJob.test.ts+4 more - ShippedREQ-JOB-504
Email notification job stub (apps/jobs/src/workers/emailJob.ts). sendEmailJob registered via the typed registry (REQ-JOB-501). EmailJobOptions: templateKey: string, recipientEmail: string, tenantId: string, mergeData: Record<string, unknow…
6h agoapps/jobs/src/workers/emailJob.ts×2apps/pos/src/flow/receiptDelivery.ts×2packages/events/src/registry.ts×2+7 more - ShippedREQ-JOB-503
Pure retry-policy module for the outbox relay (apps/jobs/src/registry/retryPolicy.ts). decideRetry takes the event's attemptCount, the per-sink outcomes, the caps, the clock and the jitter as explicit inputs and returns a tagged RetryDecis…
6h agoapps/jobs/src/registry/retryPolicy.test.tsapps/jobs/src/registry/retryPolicy.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-506
CSV import job stub (apps/jobs/src/workers/csvImportJob.ts) via the typed registry (REQ-JOB-501). CsvImportJobOptions: csvS3Key: string, importType: "skus" | "bolts" | "suppliers", tenantId: string, requestedByUserId: string, db: Db, logge…
6h agoapps/jobs/src/workers/csvImportJob.ts×2apps/jobs/src/workers/csvImportJob.test.tspackages/core/src/customerAutomationReadiness/index.ts+2 more - ShippedREQ-JOB-507
SKU alt-text generation job stub (apps/jobs/src/workers/altTextJob.ts). generateAltTextJob via typed registry (REQ-JOB-501). Stub callRunpodAltText(skuId, imageUrl) returns hardcoded alt-text string (real Runpod SDK wires in coordination l…
6h agoapps/jobs/src/workers/altTextJob.ts×2apps/jobs/src/workers/altTextJob.test.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-508
Abandoned-cart recovery job stub (apps/jobs/src/workers/abandonedCartJob.ts). abandonedCartRecoveryJob via typed registry. Stub cartsRepo.isAbandoned(tenantId, cartId, windowMs) returns true unconditionally. Logs abandoned_cart.recovery.st…
6h agoapps/jobs/src/workers/abandonedCartJob.ts×2apps/jobs/src/workers/abandonedCartJob.test.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-509
Inventory drift-detection job (apps/jobs/src/workers/inventoryDriftJob.ts). Stub boltRepo.listBolts(tenantId) returns two records (one with deltaYardageSixteenths=-4n). Computes deltaYardageSixteenths = local - server for each bolt (bigint…
6h agoapps/jobs/src/workers/inventoryDriftJob.ts×2apps/jobs/src/workers/inventoryDriftJob.test.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-514
Gift card issuance job stub (apps/jobs/src/workers/giftCardIssuanceJob.ts). giftCardIssuanceJob via typed registry. initialBalanceMinor: bigint (guard > 0n). buildGiftCardCode(orderId): string -- pure+deterministic: strips UUID hyphens, fi…
6h agoapps/jobs/src/workers/giftCardIssuanceJob.ts×2apps/jobs/src/workers/giftCardIssuanceJob.test.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-515
Stripe payout confirmation poller job stub (apps/jobs/src/workers/payoutConfirmJob.ts). Stub returns status 'paid'. Outbox: 'payout.confirmed@1'. 5 unit tests.
6h agopackages/events/src/registry.ts×2apps/jobs/src/workers/payoutConfirmJob.test.tsapps/jobs/src/workers/payoutConfirmJob.ts+4 more - ShippedREQ-JOB-516
Low-stock alert job stub (apps/jobs/src/workers/lowStockAlertJob.ts). thresholdSixteenths: bigint. Stub returns 2 bolts. Outbox per bolt. 6 unit tests.
6h agoapps/jobs/src/workers/lowStockAlertJob.test.tsapps/jobs/src/workers/lowStockAlertJob.tspackages/core/src/customerAutomationReadiness/index.ts+2 more - ShippedREQ-JOB-517
Drop launch notification fan-out job stub (apps/jobs/src/workers/dropLaunchJob.ts). Stub returns 3 customers. Outbox 'drop.launch_notified@1' per customer. 6 unit tests.
6h agopackages/events/src/registry.ts×2apps/jobs/src/workers/dropLaunchJob.test.tsapps/jobs/src/workers/dropLaunchJob.ts+4 more - ShippedREQ-JOB-518
Gift-card expiry warning job stub (apps/jobs/src/workers/giftCardExpiryJob.ts). balanceMinorStr decimal string. Stub returns 2 cards. 6 unit tests.
6h agoapps/jobs/src/workers/giftCardExpiryReminderJob.ts×2apps/jobs/src/workers/giftCardExpiryJob.test.tsapps/jobs/src/workers/giftCardExpiryJob.ts+3 more - ShippedREQ-JOB-519
Coupon expiry cleanup job stub (apps/jobs/src/workers/couponExpiryJob.ts). Stub deactivates 2 campaigns. 5 unit tests.
6h agoapps/jobs/src/workers/couponExpiryJob.test.tsapps/jobs/src/workers/couponExpiryJob.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-520
Nightly POS reconciliation job stub (apps/jobs/src/workers/posReconciliationJob.ts). netMinor = totalSales - totalRefunds bigint. netMinorStr decimal. 6 unit tests.
6h agoapps/jobs/src/workers/posReconciliationJob.test.tsapps/jobs/src/workers/posReconciliationJob.tspackages/core/src/customerAutomationReadiness/index.ts+2 more - ShippedREQ-JOB-521
Loyalty tier promotion job stub (apps/jobs/src/workers/loyaltyTierJob.ts). Pure evaluateTier(lifetimeSpendMinor): LoyaltyTier with bronze/silver/gold/platinum bigint boundaries. 11 unit tests.
6h agoapps/jobs/src/workers/loyaltyTierJob.test.ts×2apps/jobs/src/workers/loyaltyTierJob.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-522
Order confirmation email job stub (apps/jobs/src/workers/orderConfirmationEmailJob.ts). orderTotalStr decimal. templateKey 'order_confirmation'. Reuses emailQueued event. 5 unit tests.
6h agoapps/jobs/src/workers/orderConfirmationEmailJob.test.tsapps/jobs/src/workers/orderConfirmationEmailJob.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-523
Stale held-cart cleanup job stub (apps/jobs/src/workers/heldCartCleanupJob.ts). Stub purges 2 stale hold IDs. 5 unit tests.
6h agoapps/jobs/src/workers/heldCartCleanupJob.test.tsapps/jobs/src/workers/heldCartCleanupJob.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-524
Webhook retry delivery job stub (apps/jobs/src/workers/webhookRetryJob.ts). Stub httpClient.post (real HTTP requires RFC). Logs started/dispatched/completed. 6 unit tests.
6h agoapps/jobs/src/workers/webhookRetryJob.test.tsapps/jobs/src/workers/webhookRetryJob.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-525
Lane-C job stubs emit outbox rows using @bolttocart/events catalog values. customer.merged@1 registered end-to-end. bolt.nfc_written@1 includes optional yardageSixteenthsStr for bulk NFC.
6h agopackages/core/src/customerAutomationReadiness/index.tspackages/core/src/revenueOperationsReadiness/index.ts - ShippedREQ-JOB-526
Drop-waitlist notification worker stub (apps/jobs/src/workers/dropWaitlistNotifyJob.ts). claimWaitlistSlots clamped to min(n, 2), lifecycle logs, outbox 'drop.waitlist_notified@1'.
6h agopackages/core/src/operationalTelemetryReadiness/index.test.ts×4apps/jobs/src/workers/dropReminderJob.tsapps/jobs/src/workers/dropWaitlistNotifyJob.test.ts+3 more - ShippedREQ-JOB-527
Loyalty points statement worker stub (apps/jobs/src/workers/loyaltyStatementJob.ts). Validates periodMonth (YYYY-MM), logs lifecycle with memberCount, re-throws on total failure.
6h agopackages/core/src/operationalTelemetryReadiness/index.test.ts×2apps/jobs/src/workers/loyaltyStatementJob.test.tsapps/jobs/src/workers/loyaltyStatementJob.ts+3 more - ShippedREQ-JOB-513
Customer reactivation email job stub (apps/jobs/src/workers/customerReactivationJob.ts). customerReactivationJob via typed registry. Stub returns 2 synthetic customers (real: marketing_opt_in=true per REQ-ARC-514). Stub queueReactivationEm…
6h agoapps/jobs/src/workers/customerReactivationJob.ts×2apps/jobs/src/workers/customerReactivationJob.test.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-512
Shift summary report job stub (apps/jobs/src/workers/shiftSummaryJob.ts). shiftSummaryJob via typed registry. Server-side half of REQ-POS-007. All financial fields bigint. Outbox: "pos.shift_summary_generated@1". 5 unit tests. pnpm --filte…
6h agoapps/jobs/src/workers/shiftSummaryJob.ts×2apps/jobs/src/workers/shiftSummaryJob.test.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-511
Loyalty points accrual job stub (apps/jobs/src/workers/loyaltyAccrualJob.ts). loyaltyAccrualJob via typed registry. pointsEarned = (orderTotalMinor x rateNumerator) / rateDenominator -- bigint integer division; no floats. Skip paths: alrea…
6h agoapps/jobs/src/workers/loyaltyAccrualJob.ts×2apps/jobs/src/workers/loyaltyAccrualJob.test.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-510
Drop-queue admission worker stub (apps/jobs/src/workers/dropQueueJob.ts). dropQueueAdmissionJob via typed registry. Stub claimNextQueueBatch(tenantId, dropId, batchSize) returns min(batchSize, 2) synthetic QueueSlot records (real uses SELE…
6h agoapps/jobs/src/workers/dropQueueJob.ts×2apps/jobs/src/workers/dropQueueJob.test.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-528
Order-refund email worker (apps/jobs/src/workers/orderRefundEmailJob.ts). runOrderRefundEmail consumes the existing refund.completed@1 domain event (REQ-ARC-515a ? catalog entry pre-exists; no packages/events edits) and queues a email.queu…
6h agoapps/jobs/src/workers/orderRefundEmailJob.test.ts×2apps/jobs/src/workers/orderRefundEmailJob.ts×2packages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-529
14-day gift-card expiry reminder worker (apps/jobs/src/workers/giftCardExpiryReminderJob.ts). runGiftCardExpiryReminder buckets each GiftCardForReminder against a frozen now into "expired" (delta ? 0), "expiring-soon" (0 < delta ? windowDa…
6h agoapps/jobs/src/workers/giftCardExpiryReminderJob.test.ts×2apps/jobs/src/workers/giftCardExpiryReminderJob.ts×2packages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-530
Loyalty weekly-recap worker (apps/jobs/src/workers/loyaltyWeeklyRecapJob.ts). Sibling to the monthly statement (REQ-JOB-527 loyaltyStatementJob) ? reuses listActiveLoyaltyMembers and the email.queued@1 outbox sink, but runs on a weekly cad…
6h agoapps/jobs/src/workers/loyaltyWeeklyRecapJob.ts×2apps/jobs/src/workers/loyaltyWeeklyRecapJob.test.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-531
24h drop-opening reminder worker (apps/jobs/src/workers/dropReminderJob.ts). runDropReminder queues "Tomorrow: <drop name> opens" emails for every waitlisted shopper when the drop's startAt falls within [now, now + DROP_REMINDER_WINDOW_MS]…
6h agoapps/jobs/src/workers/dropReminderJob.test.ts×2apps/jobs/src/workers/dropReminderJob.ts×2packages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-532
Post-fulfillment review-request email worker (apps/jobs/src/workers/reviewRequestEmailJob.ts). runReviewRequestEmail buckets each FulfilledOrderForReview against a frozen now into "too-early" (age < delayDays), "eligible" (age == delayDays…
6h agoapps/jobs/src/workers/reviewRequestEmailJob.test.ts×2apps/jobs/src/workers/reviewRequestEmailJob.ts×2packages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-533
Abandoned-wishlist nudge worker (apps/jobs/src/workers/abandonedWishlistJob.ts). runAbandonedWishlist classifies each WishlistCandidate via pure classifyWishlistCandidate into "has-active-cart" (short-circuit -- never nudge a mid-session s…
6h agoapps/jobs/src/workers/abandonedWishlistJob.test.ts×3apps/jobs/src/workers/abandonedWishlistJob.ts×2packages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-534
Class reminder worker (apps/jobs/src/workers/classReminderJob.ts). runClassReminder classifies each ClassEventForReminder via pure classifyClassEvent into "already-started" (startAt < now), "too-early" (startAt > now + windowMs), or "eligi…
6h agoapps/jobs/src/workers/classReminderJob.test.ts×4apps/jobs/src/workers/classReminderJob.ts×2packages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-535
Inventory-zero alert worker (apps/jobs/src/workers/inventoryZeroAlertJob.ts). runInventoryZeroAlert compares each SkuInventorySnapshot via pure classifyInventoryTransition into "crossed-to-zero" (previousYardage16ths > 0n AND currentYardag…
6h agoapps/jobs/src/workers/inventoryZeroAlertJob.test.ts×3apps/jobs/src/workers/inventoryZeroAlertJob.ts×2packages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-536
POS shift-close email worker (apps/jobs/src/workers/posShiftCloseEmailJob.ts). runPosShiftCloseEmail emails the PDF shift-summary digest to the tenant-configured shift-close distribution list when a shift closes. Per recipient it queues on…
6h agoapps/jobs/src/workers/posShiftCloseEmailJob.test.ts×2apps/jobs/src/workers/posShiftCloseEmailJob.ts×2packages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-537
Dev-only structured JSON-lines webhook sink (apps/jobs/src/sinks/structuredWebhookSink.ts). structuredWebhookSink appends one JSON record per DeliverableEvent so local runs and golden-file integration tests can snapshot webhook payloads de…
6h agoapps/jobs/src/sinks/structuredWebhookSink.test.ts×3apps/jobs/src/sinks/structuredWebhookSink.tspackages/core/src/customerAutomationReadiness/index.ts+1 more - ShippedREQ-JOB-538
Jobs must include a pure dead-letter digest builder for outbox relay failures. Given dead-lettered event rows, it groups by event type and sink, counts permanent versus retry-exhausted failures, includes bounded sample event IDs and last-a…
6h agopackages/core/src/customerAutomationReadiness/index.test.ts×3packages/core/src/revenueOperationsReadiness/index.test.ts×3apps/jobs/src/registry/deadLetterDigest.test.ts+5 more - Not startedREQ-JOB-539
Product-library source connectors must run as background jobs with deterministic run IDs, source configuration version, parser version, rate-limit policy, retry policy, checkpoint cursor, row counts by stage, warnings, failures, and dead-l…
- Not startedREQ-JOB-540
The Moda connector must not attempt to bypass access controls, paywalls, anti-bot challenges, or account restrictions. If shop.modafabrics.com requires authentication, JavaScript challenge completion, or wholesale-account access, the conne…
- Not startedREQ-JOB-541
Source scraping must obey the configured legal/compliance policy for each wholesaler, including robots.txt or contractual restrictions, allowed paths, request rates, user-agent identification, cache TTLs, and takedown/removal instructions.…
- Not startedREQ-JOB-542
Product-library ingestion must be idempotent by source record identity and content hash. Re-running a crawl over the same Moda category or product page must update last-seen timestamps and version evidence without creating duplicate librar…
- Not startedREQ-JOB-543
Product-library parsing must produce machine-checkable extraction diagnostics for each product page: required fields present, optional fields present, field confidence, unmapped labels, malformed money, malformed UPC/GTIN, missing image, d…
- Not startedREQ-JOB-544
Product-library media ingestion must fetch, hash, scan, and process images asynchronously from product metadata ingestion. Failed image ingestion must not block the normalized product record, but tenant-facing acceptance must show image st…
- Not startedREQ-JOB-545
Product-library connectors must support dry-run mode against a bounded source URL set. Dry runs must produce normalized previews, diff summaries, rate-limit estimates, and parser diagnostics without publishing records to tenant-facing sear…
REQ-HWHardware Adapters12 shipped0 wip0 todo100%
- ShippedREQ-HW-500
POS hardware capability contracts + no-op/fake stubs (apps/pos/src/hw/) supporting REQ-POS-024 / REQ-ONB-030 / REQ-ONB-031. Feature code programs against three injectable interfaces ??? CashDrawer, ReceiptPrinter, BarcodeScanner ??? aggreg…
6h agopackages/core/src/customerAutomationReadiness/index.test.ts×2apps/pos/src/hw/barcodeScanner.tsapps/pos/src/hw/cashDrawer.ts+7 more - ShippedREQ-HW-501
ESC/POS receipt printer adapter extension (apps/pos/src/hw/types.ts, apps/pos/src/hw/receiptPrinter.ts). Extends the ReceiptPrinter interface (REQ-HW-500) with printText(lines: string): Promise<void> (sends a pre-formatted multi-line strin…
6h agoapps/pos/src/hw/receiptPrinter.ts×2apps/pos/src/hw/receiptPrinterExt.test.ts×2apps/pos/src/hw/types.ts×2+2 more - ShippedREQ-HW-502
CashDrawer.lastOpenedAt() extension (apps/pos/src/hw/types.ts, apps/pos/src/hw/cashDrawer.ts). Adds lastOpenedAt(): Date | null to the CashDrawer interface. createNoopCashDrawer() returns null. createFakeCashDrawer() records new Date() of…
6h agoapps/pos/src/hw/cashDrawerExt.test.ts×3apps/pos/src/hw/cashDrawer.ts×2apps/pos/src/hw/types.ts+1 more - ShippedREQ-HW-503
ZPL label-printer adapter + buildBoltLabel ZPL template (apps/pos/src/hw/labelPrinter.ts). LabelPrinter interface: printZpl(zpl: string): Promise<LabelPrintResult>. buildBoltLabel pure ZPL-II builder: Code128 barcode + yardage via bigint a…
6h agoapps/pos/src/hw/labelPrinter.test.tsapps/pos/src/hw/labelPrinter.tspackages/core/src/customerAutomationReadiness/index.ts - ShippedREQ-HW-505
Physical scale adapter + buildYardageSuggestionFromWeight (apps/pos/src/hw/physicalScale.ts). REQ-HDW-002 optional peripheral. ScaleReading: { weightOunces: bigint; stable: boolean }. buildYardageSuggestionFromWeight(weightOunces, weightPe…
6h agoapps/pos/src/hw/physicalScale.test.tsapps/pos/src/hw/physicalScale.tspackages/core/src/customerAutomationReadiness/index.ts - ShippedREQ-HW-506
Scanner read-with-timeout policy (apps/pos/src/hw/scannerTimeout.ts) exports SCANNER_DEFAULT_TIMEOUT_MS = 30_000, withScannerTimeout(scanner, timeoutMs) returning string | null without throwing on timeout via a cancellation token race, and…
6h agoapps/pos/src/hw/hardwareTelemetry.test.tsapps/pos/src/hw/hardwareTelemetry.tsapps/pos/src/hw/scannerTimeout.test.ts+1 more - ShippedREQ-HW-507
Hardware health-check module (apps/pos/src/hw/hardwareHealthCheck.ts). runHardwareHealthCheck returns readonly PeripheralStatus[] (printer+scanner+drawer+nfc+scale). NFC: healthy when both reader.isReady() AND writer.isReady(). 9 unit test…
6h agoapps/pos/src/components/HardwareHealthStatus.test.ts×2apps/pos/src/components/HardwareHealthStatus.tsapps/pos/src/hw/hardwareHealthCheck.test.ts+2 more - ShippedREQ-HW-504
Customer-facing display adapter + buildPosDisplayPayload helper (apps/pos/src/hw/customerDisplay.ts). REQ-HDW-002 optional peripheral. CustomerDisplayPayload: { cartTotalMinor: bigint; itemCount: number; currency: string; loyaltyPointsEarn…
6h agoapps/pos/src/hw/customerDisplay.test.tsapps/pos/src/hw/customerDisplay.tspackages/core/src/customerAutomationReadiness/index.ts - ShippedREQ-HW-509
Barcode-scanner adapter scaffold (apps/pos/src/hardware/scanner/ScannerAdapter.ts). Typed ScannerAdapter interface the POS critical-path programs against — scan(): Promise<Code>, onScan(listener): unsubscribe, isReady(). Code carries value…
6h agoapps/pos/src/components/ScannerAdapterStatus.test.ts×2apps/pos/src/hardware/scanner/ScannerAdapter.ts×2apps/pos/src/components/ScannerAdapterStatus.ts+2 more - ShippedREQ-HW-510
Receipt-printer adapter scaffold (apps/pos/src/hardware/printer/PrinterAdapter.ts). Typed PrinterAdapter interface with printLines(lines: readonly string[]): Promise<void> (feeds output of REQ-POS-550's buildReceiptLines), openDrawer(): Pr…
6h agoapps/pos/src/components/PrinterAdapterStatus.test.tsapps/pos/src/components/PrinterAdapterStatus.tsapps/pos/src/hardware/drawer/DrawerAdapter.ts+3 more - ShippedREQ-HW-511
Cash-drawer adapter scaffold (apps/pos/src/hardware/drawer/DrawerAdapter.ts). Typed DrawerAdapter with open(): Promise<void> (fires the drawer-kick solenoid — resolves on pulse-ack, not on re-close), status(): Promise<DrawerStatus> ("open"…
6h agoapps/pos/src/components/DrawerAdapterStatus.test.ts×2apps/pos/src/components/DrawerAdapterStatus.tsapps/pos/src/hardware/drawer/DrawerAdapter.test.ts+2 more - ShippedREQ-HW-512
NFC-reader adapter scaffold (apps/pos/src/hardware/nfcReader/NfcReaderAdapter.ts). Typed NfcReaderAdapter interface with read(): Promise<NfcTagPayload> (waits for a tag and resolves its NDEF payload), write(payload): Promise<void> (writes…
6h agopackages/core/src/customerAutomationReadiness/index.test.ts×3apps/pos/src/components/NfcReaderAdapterStatus.test.tsapps/pos/src/components/NfcReaderAdapterStatus.ts+2 more
REQ-NFCNFC Workflows8 shipped0 wip0 todo100%
- ShippedREQ-NFC-500
NFC tag-reader contract + stub (apps/pos/src/hw/nfcReader.ts). NfcReader interface: read(): Promise<NfcPayload>, isReady(): boolean. NfcPayload = { rawText: string; type: "ndef-text" | "ndef-uri" | "unknown" }. NfcReadError extends Error,…
6h agoapps/pos/src/hw/nfcWriter.ts×3packages/core/src/customerAutomationReadiness/index.test.ts×2apps/pos/src/hardware/nfcReader/NfcReaderAdapter.ts+4 more - ShippedREQ-NFC-501
NFC tag-writer contract + buildBoltNfcPayload helper + fake writer (apps/pos/src/hw/nfcWriter.ts). NfcTagWriter interface: write(payload: NfcWritePayload): Promise<NfcWriteResult>, isReady(): boolean. NfcWritePayload: { text: string; tagId…
6h agoapps/pos/src/hw/nfcWriter.test.tsapps/pos/src/hw/nfcWriter.tspackages/core/src/customerAutomationReadiness/index.ts - ShippedREQ-NFC-502
NFC batch-scan collector (apps/pos/src/scan/nfcBatchCollector.ts). Pure state machine for accumulating NFC bolt scans during inventory receiving. CollectedScan: { boltId: BoltId, yardageSixteenths: bigint | null, scannedAt: string }. NfcBa…
6h agopackages/core/src/customerAutomationReadiness/index.test.ts×3apps/pos/src/scan/nfcBatchCollector.test.tsapps/pos/src/scan/nfcBatchCollector.ts+1 more - ShippedREQ-NFC-503
NFC tag validation module (apps/pos/src/scan/nfcTagValidator.ts). validateNfcTag(payload, opts) returns NfcTagValidationResult ok|wrong-type|empty-text|not-a-bolt|malformed. Delegates to parseNfcTagAsBoltScan. 9 unit tests.
6h agopackages/core/src/posWorkbenchCommandReadiness/index.test.ts×6packages/core/src/posWorkbenchCommandReadiness/index.ts×2apps/pos/src/scan/nfcBatchWriteSession.test.ts+3 more - ShippedREQ-NFC-504
NFC write-on-receive flow (apps/pos/src/flow/nfcWriteFlow.ts). States: idle|confirming|writing|complete|error. beginNfcWrite (non-empty boltId guard), confirmWrite, receivedWriteResult, cancelWrite to idle, retryWrite error to confirming.…
6h agopackages/core/src/posWorkbenchCommandReadiness/index.test.ts×4packages/core/src/posWorkbenchCommandReadiness/index.ts×2apps/pos/src/flow/nfcWriteFlow.test.ts+1 more - ShippedREQ-NFC-506
NFC bolt-tag URI payload builder (apps/pos/src/nfc/buildBoltTagPayload.ts). buildBoltTagPayload(boltId: BoltId): string emits the canonical NDEF URI btc://bolt/<lowercased-uuid> that the REQ-HW-512 NFC-reader writes onto fabric-bolt sticke…
6h agoapps/pos/src/components/BoltTagPayloadStatus.tsapps/pos/src/hardware/nfcReader/NfcReaderAdapter.tsapps/pos/src/nfc/buildBoltTagPayload.ts+1 more - ShippedREQ-NFC-507
NFC drop-tag URI payload builder (apps/pos/src/nfc/buildDropTagPayload.ts). buildDropTagPayload(slug: string): string emits btc://drop/<slug> for shelf-edge / hangtag / event-signage NFC stickers that shoppers tap to land on a drop page. S…
6h agoapps/pos/src/components/DropTagPayloadStatus.test.tsapps/pos/src/components/DropTagPayloadStatus.tsapps/pos/src/hardware/nfcReader/NfcReaderAdapter.ts+1 more - ShippedREQ-NFC-508
NFC bulk-write diff (apps/pos/src/nfc/bulkWriteDiff.ts). bulkWriteDiff(expected, current, options?): readonly BulkWriteOp[] computes the minimal set of writes to reconcile a set of physical tags (current, what the reader just observed) wit…
6h agoapps/pos/src/components/BulkWriteDiffStatus.test.ts×2apps/pos/src/components/BulkWriteDiffStatus.tsapps/pos/src/nfc/buildDropTagPayload.ts+1 more
REQ-DBDatabase Migrations6 shipped0 wip0 todo100%
- ShippedREQ-DB-565
Drizzle migration 0034: create return_authorizations + rma_line_items tables (unblocks REQ-FUL-505). The RMA path had no persistent row at all before this migration — rg return_authorization|rma_line_item|\brma\b across packages/ found not…
6h agopackages/core/src/platformAssuranceReadiness/index.test.ts×3packages/db/src/schema/returnAuthorizations.ts×3packages/testing/src/returnAuthorizations.test.ts×3+4 more - ShippedREQ-DB-564
Drizzle migration 0033: add pinned boolean NOT NULL DEFAULT false to store_notes (unblocks REQ-ADM-545). Legacy rows take the default; no data migration needed. Partial index (tenant_id, pinned) WHERE pinned = true so the dashboard's "pinn…
6h agopackages/testing/src/storeNotesPinned.test.ts×3packages/db/src/migrations/0033_store_notes_pinned.sql×2packages/core/src/platformAssuranceReadiness/index.ts+2 more - ShippedREQ-DB-562
Drizzle migration 0031: add order_line_items table + one-shot legacy backfill helper (unblocks REQ-ACT-509). Columns: id uuid PK, tenant_id uuid FK�??stores, order_id uuid FK�??orders ON DELETE CASCADE, sku_id uuid FK�??skus (nullable �??…
6h agopackages/testing/src/orderLineItems.test.ts×3packages/db/src/migrations/0031_order_line_items.sql×2packages/db/src/repositories/orderLineItems.ts×2+4 more - ShippedREQ-DB-561
Drizzle migration 0030: add contacts table + contact_source enum (unblocks REQ-CRM-546). Columns: id uuid PK, tenant_id uuid FK�??stores, display_name text NOT NULL, email text (nullable), phone text (nullable), source contact_source enum…
6h agopackages/testing/src/contacts.test.ts×3packages/db/src/migrations/0030_contacts.sql×2packages/db/src/schema/contacts.ts×2+2 more - ShippedREQ-DB-560
Drizzle migration 0029: add purchase_orders and expected_bolts tables (unblocks REQ-ADM-538). purchase_orders: id uuid PK, tenant_id uuid FK�??stores, supplier_id uuid FK�??suppliers, po_number text NOT NULL, status purchase_order_status e…
6h agopackages/db/src/schema/purchaseOrders.ts×3packages/testing/src/purchaseOrders.test.ts×3packages/db/src/migrations/0029_purchase_orders.sql×2+2 more - ShippedREQ-DB-563
Drizzle migration 0032: expand customer_segments from placeholder to real persistence + evaluation model (unblocks REQ-CRM-502). ADDITIVE per non-negotiable §2 �?? existing rules column stays in place, with a future contract migration slat…
6h agopackages/db/src/migrations/0032_customer_segments_rule_json.sql×4packages/db/src/schema/customerSegments.ts×3packages/testing/src/customerSegmentsMembership.test.ts×3+2 more
REQ-PWAPWA & Installability13 shipped0 wip0 todo100%
- ShippedREQ-PWA-504
id: "/" field on apps/web/src/app/manifest.ts. Locks the installed PWA identity so future start_url changes don't cause browsers to treat the app as a new install. ManifestExtended already accommodates the field via the existing MetadataRo…
6h agopackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-506
categories: ["shopping","lifestyle"] on apps/web/src/app/manifest.ts. Replaces the previous ["shopping","retail","business"] triple. "shopping" is the W3C-registered canonical e-commerce token; "lifestyle" best captures the crafting / quil…
6h agoapps/web/src/app/manifest.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-505
display_override: ["window-controls-overlay","standalone","browser"] on apps/web/src/app/manifest.ts ??? extends the previous ["minimal-ui","browser"] pair with "window-controls-overlay" (first preference, paints the app's title-bar area w…
6h agoapps/web/src/app/manifest.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-507
iarc_rating_id: "e84b072d-71b3-4d3e-86ae-31a8ce4e53b7" on apps/web/src/app/manifest.ts. IARC (International Age Rating Coalition) certificate ID issued for the BoltToCart storefront ??? fabric retail, no UGC, no violence, no mature themes;…
6h agoapps/web/src/app/manifest.ts×2packages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-500
handle_links: "preferred" on apps/web/src/app/manifest.ts so browsers prefer the installed PWA over a normal browser tab when an in-scope link is activated from outside the PWA. Pairs with the existing launch_handler: { client_mode: "navig…
6h agopackages/core/src/engagementExperienceReadiness/index.test.ts×2packages/core/src/publicExperienceReadiness/index.test.ts×2packages/core/src/serviceCommerceReadiness/index.test.ts×2+3 more - ShippedREQ-PWA-501
edge_side_panel: { preferred_width: 400 } on apps/web/src/app/manifest.ts so Microsoft Edge surfaces the installed storefront in its "Apps in sidebar" picker. Lets a shopper pin the catalog as a side-panel app (alongside a primary tab with…
6h agoapps/web/src/app/manifest.ts×2packages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-502
launch_handler.client_mode expressed as an ordered fallback array (["navigate-existing", "focus-existing", "auto"]) on apps/web/src/app/manifest.ts instead of the single-value form previously shipped. The W3C Web App Manifest spec permits…
6h agoapps/web/src/app/manifest.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-503
screenshots array on apps/web/src/app/manifest.ts with two entries ??? { src: "/screenshots/wide.png", sizes: "1280x720", type: "image/png", form_factor: "wide" } and { src: "/screenshots/narrow.png", sizes: "390x844", type: "image/png", f…
6h agoapps/web/src/app/manifest.ts×2packages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-508
share_target: { action: "/shop", method: "GET", params: { title: "q", text: "q", url: "url" } } in apps/web/src/app/manifest.ts. Declares the installed PWA as an OS-level share-sheet target so a user sharing a product URL from Safari/Chrom…
6h agoapps/web/src/app/manifest.ts×2packages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-509
protocol_handlers: [{ protocol: "web+btc", url: "/?uri=%s" }] in apps/web/src/app/manifest.ts. Claims the web+btc:// custom URL scheme so links activated from other apps open the installed PWA instead of the default browser. Forward-lookin…
6h agoapps/web/src/app/manifest.ts×2packages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-510
orientation: "any" explicit declaration in apps/web/src/app/manifest.ts. The W3C Web App Manifest spec default is "any" but engines that act only on explicitly declared fields may lock rotation in its absence. Declaring it explicitly futur…
6h agoapps/web/src/app/manifest.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-511
Audit of prefer_related_applications: false and related_applications: [] in apps/web/src/app/manifest.ts. Both fields are present (set in a prior session). This entry documents the completed audit so the reserved range stays traceable. No…
6h agopackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-PWA-512
Audit of scope_extensions field (Chrome 125+ feature allowing the PWA to claim cross-origin paths for custom-domain tenant subdomains). Not yet applicable ??? all tenants share the same origin today. When custom-domain tenants land, scope_…
6h agopackages/core/src/engagementExperienceReadiness/index.test.ts×3packages/core/src/publicExperienceReadiness/index.test.ts×3packages/core/src/serviceCommerceReadiness/index.test.ts×3+2 more
REQ-SEOSEO & Feeds23 shipped0 wip0 todo100%
- ShippedREQ-SEO-508
<link rel="alternate" type="application/rss+xml"> autodiscovery tags on the shop PLP (/shop), drops listing (/drops), and events listing (/events) pages via metadata.alternates.types in each page's metadata / generateMetadata export. All t…
6h agoapps/web/src/lib/roadmap.test.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-509
X-Robots-Tag: noindex, nofollow HTTP response header on every /account/:path* route. Added as a new headers() rule in apps/web/next.config.mjs alongside the existing /admin/:path* rule. Belt-and-braces alongside the existing robots: accoun…
6h agoapps/web/next.config.mjspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-512
max-snippet:-1 and max-image-preview:large robots meta directives on storefront pages. Audit result: the root apps/web/src/app/layout.tsx already emits robots: { googleBot: { "max-image-preview": "large", "max-snippet": -1, "max-video-prev…
6h agopackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-514
Colocated /ld.json endpoints for /shop/[slug], /drops/[slug], and /events/[slug] (REQ-SEO-514). Three route handlers added at apps/web/src/app/(storefront)/{area}/[slug]/ld.json/route.ts. Each handler loads the same entity the correspondin…
6h agoapps/web/src/app/(storefront)/drops/[slug]/ld.json/route.tsapps/web/src/app/(storefront)/events/[slug]/ld.json/route.tsapps/web/src/app/(storefront)/shop/[slug]/ld.json/route.ts+2 more - ShippedREQ-SEO-513
og:locale: "en_US" on all public storefront pages. Audit result: two sources already cover this. (1) The root layout.tsx emits openGraph: { locale: "en_US" } as the site-wide default; (2) shareMetadataFragment in socialMetadata.ts emits op…
6h agopackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-511
hreflang="en" + hreflang="x-default" on all public storefront pages. shareMetadataFragment in apps/web/src/lib/socialMetadata.ts previously emitted hreflang="en-US" (the DEFAULT_LOCALE key). Changing the key from [DEFAULT_LOCALE] to the li…
6h agoapps/web/src/lib/socialMetadata.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-510
metadata.alternates.canonical on every storefront listing page currently missing one. Audit result: all affected pages already emit a canonical via shareMetadataFragment({ canonicalPath: "..." }): /shop (dynamic based on filters/sort/page)…
6h agopackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-500
metadata.authors + metadata.creator + metadata.publisher on the root apps/web/src/app/layout.tsx. Emits <meta name="author">, <meta name="creator">, <meta name="publisher"> ??? the attribution surface Google's "About this result", Bing Web…
6h agopackages/core/src/publicExperienceReadiness/index.test.ts×4packages/core/src/engagementExperienceReadiness/index.test.ts×2apps/web/src/app/layout.tsx+2 more - ShippedREQ-SEO-501
Content-Language: en-US HTTP header on all three RSS feed routes (/shop/rss.xml, /events/rss.xml, /drops/rss.xml). Sourced from DEFAULT_LOCALE in @/i18n/config so the header tracks the app locale scaffold when i18n expands past v1's en-US.…
6h agoapps/web/src/app/(storefront)/drops/rss.xml/route.tsapps/web/src/app/(storefront)/events/rss.xml/route.tsapps/web/src/app/(storefront)/shop/rss.xml/route.ts+2 more - ShippedREQ-SEO-502
Content-Language: en-US HTTP header on both tenant iCalendar feed routes (/events/calendar.ics, /drops/calendar.ics). RFC 5545 has no channel-level language field ??? a VCALENDAR document carries per-event LANGUAGE parameters at most ??? s…
6h agoapps/web/src/app/(storefront)/drops/calendar.ics/route.tsapps/web/src/app/(storefront)/events/calendar.ics/route.tspackages/core/src/engagementExperienceReadiness/index.ts+1 more - ShippedREQ-SEO-503
Content-Language: en-US HTTP header on the three plaintext public endpoints served across every surface: /humans.txt (humanstxt.org credits), /llms.txt (llmstxt.org agent index), and /.well-known/security.txt (RFC 9116 disclosure contact).…
6h agoapps/web/src/app/humans.txt/route.tsapps/web/src/app/llms.txt/route.tspackages/core/src/engagementExperienceReadiness/index.ts+1 more - ShippedREQ-SEO-504
Content-Language: en-US HTTP header on the three structured-metadata endpoints that round out the feed / discovery surface: /feeds.opml (OPML 2.0 feed-subscription bundle), /opensearch.xml (OpenSearch 1.1 description document), and /roadma…
6h agoapps/web/src/app/(storefront)/opensearch.xml/route.tsapps/web/src/app/feeds.opml/route.tspackages/core/src/engagementExperienceReadiness/index.ts+1 more - ShippedREQ-SEO-505
<copyright> RSS channel element on all three tenant RSS feeds (/shop/rss.xml, /events/rss.xml, /drops/rss.xml), emitted via a shared renderChannelMeta() helper (apps/web/src/lib/rssChannelImage.ts). Format mirrors the storefront-footer cop…
6h agoapps/web/src/lib/rssChannelImage.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-506
<managingEditor> channel element on all three tenant RSS feeds (/shop/rss.xml, /events/rss.xml, /drops/rss.xml) via the shared renderChannelMeta() helper. Format: hello@{subdomain}.{rootDomain} ({subdomain}) per RSS 2.0 spec, derived from…
6h agoapps/web/src/lib/rssChannelImage.ts×2apps/web/src/app/(storefront)/drops/rss.xml/route.tsapps/web/src/app/(storefront)/events/rss.xml/route.ts+3 more - ShippedREQ-SEO-507
<lastBuildDate> channel element on all three tenant RSS feeds consolidated into the shared renderChannelMeta() helper via the lastBuildDate option on RssChannelMetaOptions. RFC 1123 timestamp of the most-recent item's pubDate, computed ser…
6h agoapps/web/src/lib/rssChannelImage.ts×2packages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-515
X-Robots-Tag: noindex, nofollow on the three colocated ld.json route handlers (/shop/[slug]/ld.json, /drops/[slug]/ld.json, /events/[slug]/ld.json). These endpoints serve machine-readable structured data for Googlebot's structured-data fet…
6h agoapps/web/src/app/robots.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-517
"application-name": "BoltToCart" in the other metadata field in apps/web/src/app/layout.tsx. Next.js does not model <meta name="application-name"> in its top-level Metadata type; adding it via the other escape hatch emits the tag for Windo…
6h agoapps/web/src/app/layout.tsxpackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-522
Audit of <link rel="author"> references in apps/web/src/app/layout.tsx. Audit result: two <link rel="author"> elements are emitted ??? (1) from metadata.authors: [{ name: "BoltToCart", url: getPublicSiteUrl() }] which generates a link poin…
6h agopackages/core/src/engagementExperienceReadiness/index.test.ts×3packages/core/src/publicExperienceReadiness/index.test.ts×3packages/core/src/engagementExperienceReadiness/index.ts+1 more - ShippedREQ-SEO-518
Cache-Control: no-store on all /admin/:path* and /account/:path* routes via the headers() rule in apps/web/next.config.mjs. Prevents ISP and corporate proxy caches from storing private session-gated responses (admin pages, order history, w…
6h agoapps/web/next.config.mjs×2packages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-519
<itunes:category text="Shopping" /> channel element in all three RSS feeds via the shared renderChannelMeta() helper. RssChannelMetaOptions extended with itunesCategory?: string; renderChannelMeta emits <itunes:category text="???" /> when…
6h agoapps/web/src/lib/rssChannelImage.tspackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-521
Vary: Accept-Encoding header on both the validator-headers bundle and the 200 response in all three RSS feed routes (/shop/rss.xml, /drops/rss.xml, /events/rss.xml). Tells CDN and intermediate caches to store compressed and uncompressed va…
6h agoapps/web/src/app/(storefront)/drops/rss.xml/route.ts×2apps/web/src/app/(storefront)/events/rss.xml/route.ts×2packages/core/src/engagementExperienceReadiness/index.ts+1 more - ShippedREQ-SEO-516
og:image:alt on storefront pages. Audit result: all storefront opengraph-image convention files (opengraph-image.tsx) already export alt ??? Next.js App Router uses this export to populate the og:image:alt meta property automatically. Cove…
6h agopackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts - ShippedREQ-SEO-520
BreadcrumbList JSON-LD on /drops/[slug] and /events/[slug] detail pages. Audit result: apps/web/src/lib/dropStructuredData.ts already emits BreadcrumbList (Home ??? Drops ??? {drop name}) and apps/web/src/lib/eventStructuredData.ts already…
6h agopackages/core/src/engagementExperienceReadiness/index.tspackages/core/src/publicExperienceReadiness/index.ts
REQ-A11YAccessibility38 shipped0 wip0 todo100%
- ShippedREQ-A11Y-513
aria-hidden="true" + focusable="false" on decorative SVG icons in apps/web/src/components/. Audit scope: BackToTopButton.tsx, MobileNavDrawer.tsx, ProductShareButton.tsx, SvgSwatch.tsx, QuiltVisualizer.tsx. All three icon-only SVGs (BackTo…
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-512
aria-disabled="true" (not disabled) on the "Add to cart" submit button in AddToCartForm.tsx when the product is out of stock (maxYardageSixteenths < MIN_YARDAGE_SIXTEENTHS). An HTML disabled attribute silently removes the button from the f…
6h agoapps/web/src/components/AddToCartForm.tsx - ShippedREQ-A11Y-511
role="progressbar" + aria-valuenow / aria-valuemin / aria-valuemax on the /account/loyalty tier progress bar. The TierProgress component in apps/web/src/app/account/loyalty/page.tsx already renders <div role="progressbar" aria-valuemin={0}…
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-510
aria-busy="true" on the outermost skeleton container in the loading.tsx files for the storefront route segments /shop, /drops, /events, /events/instructors, and /account/. All five files already carry aria-busy="true" aria-live="polite" on…
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-509
<caption> elements on every data <table> in apps/web/src/app/admin/ that uses a visually-separate heading above the table. The webhooks dead-letter table previously used a <h2>Recent dead-letters</h2> section heading plus a separate sr-onl…
6h agoapps/web/src/lib/roadmap.test.ts×4apps/web/src/app/admin/webhooks/page.tsx - ShippedREQ-A11Y-508
aria-label on every <form> in apps/web/src/app/admin/ that previously lacked one. Affected forms: audit custom-date-range popover form (aria-label="Custom date range filter"), presets save form (aria-label="Save current view as a preset"),…
6h agoapps/web/src/app/admin/audit/_components/PresetsToolbar.tsxapps/web/src/app/admin/audit/page.tsx - ShippedREQ-A11Y-500
aria-current="page" on the StorefrontShell primary header nav links (/drops, /events, /visualizer, /wizard) so screen-reader users hear "current page" when the shell's active section matches the URL, matching the AdminNavRail pattern.
6h agoapps/web/src/components/StorefrontNavLink.tsxapps/web/src/components/StorefrontShell.tsx - ShippedREQ-A11Y-501
aria-current="page" on the StorefrontShell footer "Browse" nav links (Shop all, Designers, Collections, Colors, New arrivals, Drops, Classes, Shop by project, Quilt Designer). Uses the exact-match strategy so /shop and /shop?new=1 don't bo…
6h agoapps/web/src/components/StorefrontNavLink.tsxapps/web/src/components/StorefrontShell.tsx - ShippedREQ-A11Y-502
aria-live="polite" + aria-atomic="true" sr-only sibling region inside the StorefrontShell Cart link so Server-Action revalidatePath("/cart") updates are announced to AT users even when the visual line-count badge is hidden (cart is empty)…
6h agoapps/web/src/components/StorefrontShell.tsx×3 - ShippedREQ-A11Y-503
aria-live="polite" + aria-atomic="true" sr-only sibling region inside the StorefrontShell wishlist "Saved" link so add / remove heart-button Server-Action updates are announced to AT users. Same pattern as REQ-A11Y-502.
6h agoapps/web/src/app/account/wishlist/_components/WishlistBulkList.tsx×2apps/web/src/components/StorefrontShell.tsx×2apps/web/src/app/account/wishlist/actions.ts - ShippedREQ-A11Y-504
Single role="search" ARIA landmark on the StorefrontFilterRail outer <aside> (apps/web/src/components/StorefrontFilters.tsx) with aria-label="Filter catalog", paired with dropping the redundant role="search" from the nested SearchInput <fo…
6h agoapps/web/src/components/StorefrontFilters.tsx×2apps/web/src/components/DropsFilterRail.tsxapps/web/src/components/EventsFilterRail.tsx - ShippedREQ-A11Y-505
aria-describedby wiring between the PDP AddToCartForm yardage <output id="yardage-${skuId}"> and its REQ-ECO-003 policy paragraph ("Minimum 1/2 yard � 1/4-yard steps � N available"). The policy text gains a stable SKU-scoped id (yardage-ru…
6h agoapps/web/src/components/AddToCartForm.tsx - ShippedREQ-A11Y-506
scope="col" on every <th> in the admin table headers for the receiving ledger (/admin/receiving), the bolt listing (/admin/bolts), and the audit-event grid (/admin/audit). Removes the "table header has no scope" WCAG 1.3.1 failure flagged…
6h agoapps/web/src/app/admin/receiving/page.tsx×2apps/web/src/app/admin/audit/page.tsxapps/web/src/app/admin/bolts/page.tsx - ShippedREQ-A11Y-507
Audit of every icon-only interactive element in packages/ui/ and apps/web/src/components/ for missing aria-label. Audit result: all icon-only <button> elements already carry aria-label attributes (added incrementally across REQ-A11Y-502, R…
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-514
scope="col" on every <th> in the admin events table header (/admin/events). Without scope, AT tools infer column/row association heuristically and can misread "Status" or "Roster" as a row header when VoiceOver's table-navigation mode (rot…
6h agoapps/web/src/app/admin/events/page.tsx - ShippedREQ-A11Y-515
scope="col" on every <th> in the admin drops table header (/admin/drops). Extends REQ-A11Y-506 and REQ-A11Y-514 to the drops admin grid (Drop, Status, Opens, Closes, Actions). Same WCAG 1.3.1 fix for VoiceOver table-navigation. Pure a11y a…
6h agoapps/web/src/app/admin/drops/page.tsx - ShippedREQ-A11Y-518
aria-label="Split bolt" on the <form> in apps/web/src/app/admin/bolts/[boltId]/SplitForm.tsx. Same form-landmark fix as REQ-A11Y-517 (CutForm) for the bolt-split flow. Pure a11y attribute ??? no visual change.
6h agoapps/web/src/app/admin/bolts/[boltId]/SplitForm.tsx - ShippedREQ-A11Y-519
aria-label="Merge bolts" on the <form> in apps/web/src/app/admin/bolts/[boltId]/MergeForm.tsx. Pure a11y attribute ??? no visual change.
6h agoapps/web/src/app/admin/bolts/[boltId]/MergeForm.tsx - ShippedREQ-A11Y-520
aria-label="Override bolt status" on the <form> in apps/web/src/app/admin/bolts/[boltId]/StatusOverrideControls.tsx. Two submit buttons (mark damaged, mark transferred) share one form; the form-level label names the shared action scope. Pu…
6h agoapps/web/src/app/admin/bolts/[boltId]/StatusOverrideControls.tsx - ShippedREQ-A11Y-535
role="status" on the success <p> in CutForm.tsx ("Cut recorded. Remaining updated."), SplitForm.tsx ("Bolt split."), and MergeForm.tsx ("Bolts merged."). The error paragraphs already carry role="alert" (assertive); success outcomes use rol…
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-521
aria-label="Webhook endpoint settings" on the save <form action={saveAction}> in apps/web/src/app/admin/webhooks/WebhookManager.tsx (line 86). Pure a11y attribute ??? no visual change.
6h agoapps/web/src/app/admin/webhooks/WebhookManager.tsx - ShippedREQ-A11Y-522
aria-label="Rotate webhook signing secret" on the rotate <form action={rotateAction}> in WebhookManager.tsx (line 173). Pure a11y attribute ??? no visual change.
6h agoapps/web/src/app/admin/webhooks/WebhookManager.tsx - ShippedREQ-A11Y-523
aria-label="Delete webhook endpoint" on the delete <form action={deleteAction}> in WebhookManager.tsx (line 200). Pure a11y attribute ??? no visual change.
6h agoapps/web/src/app/admin/webhooks/WebhookManager.tsx - ShippedREQ-A11Y-524
aria-label="Retry dead-letter event" on the <form> in apps/web/src/app/admin/webhooks/RetryDeadLetterButton.tsx (line 51). Pure a11y attribute ??? no visual change.
6h agoapps/web/src/app/admin/webhooks/RetryDeadLetterButton.tsx - ShippedREQ-A11Y-525
aria-label="Bolt ID lookup" on the GET <form> in apps/web/src/app/admin/page.tsx (line 287). The containing <section> already has aria-labelledby="admin-bolt-lookup-heading"; the form-level aria-label adds a named form landmark for AT form…
6h agoapps/web/src/app/admin/page.tsx - ShippedREQ-A11Y-526
aria-label="Create drop" on the <form> in apps/web/src/app/admin/drops/new/page.tsx (line 82). Pure a11y attribute ??? no visual change.
6h agoapps/web/src/app/admin/drops/new/page.tsx - ShippedREQ-A11Y-527
aria-label="Create class" on the <form> in apps/web/src/app/admin/events/new/page.tsx (line 96). Pure a11y attribute ??? no visual change.
6h agoapps/web/src/app/admin/events/new/page.tsx - ShippedREQ-A11Y-531
aria-label="Receive bolt" on the <form> in apps/web/src/app/admin/receiving/new/ReceiveBoltForm.tsx (line 43). Pure a11y attribute ??? no visual change.
6h agoapps/web/src/app/admin/receiving/new/ReceiveBoltForm.tsx - ShippedREQ-A11Y-533
aria-label="Rename POS device" on the inline rename <form action={renameDeviceAction}> in apps/web/src/app/admin/pos-devices/page.tsx (line 107). Pure a11y attribute ??? no visual change.
6h agoapps/web/src/app/admin/pos-devices/page.tsx - ShippedREQ-A11Y-534
aria-label on the three inline order-state-machine action forms in apps/web/src/app/admin/fulfillment/page.tsx: "Advance order to processing", "Mark order ready for pickup", "Mark order as fulfilled". Per-button aria-label already exists o…
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-528
Audit: apps/web/src/app/admin/fulfillment/[orderId]/return/RmaForm.tsx already carries aria-label="RMA / return details" on its <form> element (line 30). No code changes required; this entry documents the completed audit. REQ-A11Y-528.
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-529
Audit: apps/web/src/app/admin/fulfillment/[orderId]/ship/page.tsx already carries aria-label="Shipping details" on its <form> element (line 56). No code changes required; this entry documents the completed audit. REQ-A11Y-529.
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-530
Audit: apps/web/src/app/admin/customers/[id]/merge/page.tsx uses aria-labelledby on both candidate-selection forms (targeting visible <h2> headings "Merge source" and "Merge target"). aria-labelledby is preferred over aria-label when a vis…
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-532
aria-label="Loyalty program settings" on the <form> in apps/web/src/app/admin/loyalty/settings/LoyaltySettingsForm.tsx. This form is introduced by REQ-ADM-529 (loyalty earn-rate editor) and is not yet merged to main. The aria-label will be…
6h agoapps/web/src/app/admin/loyalty/settings/LoyaltySettingsForm.tsx - ShippedREQ-A11Y-536
role="status" + aria-live="polite" + aria-atomic="true" on the success <p> in apps/web/src/app/admin/settings/RemnantThresholdForm.tsx ("Threshold saved."). GeneralInfoForm.tsx already carries role="status" on its success paragraph; this c…
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-537
Audit of icon-only <a> and <button> elements in apps/web/src/app/admin/. Audit result: all icon-only interactive elements carry either an aria-label prop or an <span className="sr-only"> child. Notable cases: the CopyPageLinkButton has ari…
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-538
Audit of aria-describedby on the yardage input in apps/web/src/app/admin/receiving/new/ReceiveBoltForm.tsx. Audit result: the Field component used for the "Initial yardage" input already renders an ${id}-hint <p> and wires aria-describedby…
REQUIREMENTS.md verified audit ledger - ShippedREQ-A11Y-539
aria-label + aria-controls wiring for the mobile-nav drawer menu in apps/web/src/components/MobileNavDrawer.tsx. The <div role="menu"> gains aria-label="Storefront navigation" so AT users hear an explicit name when jumping by landmarks/rol…
6h agoapps/web/src/components/MobileNavDrawer.tsx×2
REQ-OPSREQ-OPS6 shipped0 wip0 todo100%
- ShippedREQ-OPS-001
BoltToCart must provide an operator-only /platform console on the platform apex for managing SaaS operations across tenants. The console is distinct from tenant /admin and must never derive tenant identity from request bodies, query parame…
6h agopackages/core/src/operationalTelemetryReadiness/index.test.ts×4packages/core/src/platformQualityReadiness/index.test.ts×2apps/web/src/app/admin/layout.tsx+2 more - ShippedREQ-OPS-002
Platform-console access must require membership in the dedicated internal BoltToCart Clerk Organization. Store-tenant organizations do not grant access, and the internal operator organization must not be treated as a tenant/store row.
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-OPS-003
Cross-tenant reads in /platform must go through a single audited server wrapper that verifies operator access before bypassing tenant RLS. Mutations such as tenant suspension, billing changes, feature-flag overrides, migration retries, or…
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-OPS-004
The full platform console must cover tenant management, support tooling, billing and plan state, feature flags, onboarding/migration operations, platform health, audit trails, and incident links without exposing tenant data exports except…
6h agopackages/core/src/platformOperationsReadiness/index.ts - ShippedREQ-OPS-005
The platform console must expose platform billing settings for store-owner purchases, including Stripe Mode (test or production), Stripe Test Account id, custom-domain purchase multiplier in basis points, custom-domain minimum purchase cha…
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/db/src/migrations/0038_platform_domain_purchases.sqlpackages/db/src/schema/platformAuditLog.ts+1 more - ShippedREQ-OPS-006
The platform console must let operators review and manage store-owner platform purchase orders across tenants, including domain purchase payment state, Vercel registrar order state, retryable failure details, refund/cancel/renewal status,…
6h agopackages/core/src/operationalTelemetryReadiness/index.test.tspackages/core/src/platformOperationsReadiness/index.tspackages/core/src/platformQualityReadiness/index.test.ts+2 more
REQ-QDCREQ-QDC32 shipped0 wip0 todo100%
- ShippedREQ-QDC-001
Tenant store admins must be able to create, draft, publish, pause, close, and archive Design Contests from the tenant admin surface. Every contest is tenant-scoped, has a stable contest ID and slug, and resolves tenant identity from authen…
6h agopackages/core/src/platformOperationsReadiness/index.test.ts×2packages/demo-data/src/packs/0013_design_contests.ts×2packages/core/src/platformOperationsReadiness/index.ts+5 more - ShippedREQ-QDC-002
A Design Contest must include a title, rich-text description, public status, optional cover image, submission start date/time, submission end date/time, judging start date/time, and optional judging end date/time. Date/time fields are stor…
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-003
During contest setup, the admin must be able to launch the Quilt Designer and save required preset design values for the contest. Required values may be empty or may include pattern, size, fabric roles, colors, selected SKUs, quilting moti…
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-004
Contest-required Quilt Designer values must be persisted as a locked, versioned preset. When a shopper starts an entry from the contest URL, locked values are preloaded and cannot be removed or contradicted, while all remaining Quilt Desig…
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-005
The admin contest detail page must expose a one-click copy action for the canonical public contest URL. The copied URL must target the tenant storefront host and must not contain a tenant override parameter in production.
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-006
Shoppers opening the public contest URL must land in a contest-aware Quilt Designer flow that displays the contest title, active dates, submission rules, locked requirements, remaining editable design choices, and the current shopper's sub…
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-007
Store admins must configure how many submissions are allowed per participant for each contest. Enforcement must apply to authenticated customer accounts and to anonymous participants using a tenant-scoped anonymous participation token, wit…
6h agoapps/web/src/lib/db.tspackages/core/src/platformOperationsReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-QDC-008
Store admins must configure whether participants may name their submitted design. When naming is disabled, the public UI must omit custom design-name input and display a system-generated neutral title instead.
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-009
Participants must be able to choose the public designer name and city/state displayed with a submission, and must also be able to submit as anonymous. Anonymous submissions must hide designer name and location from public cards, social met…
6h agopackages/core/src/platformOperationsReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-010
Submitting to a contest must validate the contest window, required Quilt Designer preset values, required fabric usage, participant submission limit, and design completeness before accepting the submission. The participant must receive a c…
6h agopackages/core/src/storefrontExperienceReadiness/index.test.ts×2packages/core/src/platformOperationsReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.ts+1 more - ShippedREQ-QDC-011
Store admins must be able to configure a required fabric rule stating that at least X yards of fabric SKU X, or a set of SKUs, must be used in the submitted design. Yardage is stored and validated in sixteenth-yard fixed-point units per RE…
6h agopackages/core/src/creativeCommerceReadiness/index.test.ts×2packages/core/src/platformOperationsReadiness/index.tspackages/core/src/storefrontExperienceReadiness/index.test.ts+2 more - ShippedREQ-QDC-012
Every contest submission must generate and save an AI preview image using the same prompt-construction path and rendering method as the Quilt Designer Generate Preview action. Contest submission renders must be attempted whenever Design Co…
6h agopackages/core/src/creativeCommerceReadiness/index.test.ts×9packages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.ts+2 more - ShippedREQ-QDC-013
New submissions must default to a pending moderation state. Store admins must be able to review each submission, inspect the design, product list, participant display information, and generated preview image, then approve, reject, or reque…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-014
Only approved submissions may appear in public contest browsing, voting, social share cards, product-list purchase flows, or winner selection. Rejected and pending submissions remain visible only to authorized tenant staff and the submitti…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-015
The tenant storefront navigation must expose a Design Contest link that opens a public contest index. The index must list active, upcoming, judging, and completed contests with status, dates, entry/voting eligibility, and a link to browse…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-016
The public contest detail page must let shoppers browse approved design submissions, filter or sort entries, open an entry detail page, see the participant-facing designer attribution, view the AI-generated preview, and start their own con…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-017
Store admins must configure voting mode per contest: simple likes only, one favorite vote, a configurable number of favorite votes, or ranked top-X favorites. The configuration must define whether likes are separate from official votes, ho…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-018
Authenticated shoppers must default to one official vote per contest unless the contest voting configuration grants more. Storefront shoppers must also be able to like approved quilt designs during the contest voting window, with likes tra…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-019
Non-registered shoppers must be allowed to like and vote during the contest voting window when the contest permits anonymous participation. Anonymous likes and anonymous votes must be tracked and totaled separately from authenticated likes…
6h agoapps/web/src/lib/db.tspackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.ts+1 more - ShippedREQ-QDC-020
If a shopper with an existing favorite vote or ranked top-X ballot attempts to vote again in a way that would replace their prior ballot, the site must prompt for confirmation before changing the stored vote. Confirmed changes must retain…
6h agopackages/core/src/platformOperationsReadiness/index.test.ts×2packages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.ts+1 more - ShippedREQ-QDC-021
When a shopper has liked, favorited, or ranked contest entries, those entries must appear at the top of the contest submission list for that shopper in every public sort/filter view, preserving their selected order for ranked top-X ballots…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-022
Store admins must be able to see vote counts at any time, including authenticated likes, anonymous likes, authenticated official votes, anonymous official votes, ranked-position totals, and computed score under the contest's current voting…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-023
Store admins must be able to select one or more winning submissions after judging starts. Winner selection must support placement labels such as winner, runner-up, honorable mention, or custom labels, and must be auditable and reversible u…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-024
Store admins must configure the prize for each contest. Prize components may include store credit, all fabric and supplies needed for the winning design, a quantity of a specific product, paid tickets to a specific class/event, cash, a cou…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-025
Prize values involving money must use integer minor units, percentage awards must use basis points, and any recurring percentage-of-kit-sales award must record the eligible kit, recipient, calculation basis, start date, optional end date,…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-026
Store admins must be able to configure whether the winning design remains on the storefront after the contest as a purchasable quilt kit. When enabled, the public winner page must link to the kit after the admin publishes it.
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-027
Any shopper viewing an approved design submission must be able to see every product needed to make that design, including fabric yardage, notions, supplies, substitutions, unavailable items, and estimated price. The entry page must preserv…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-028
Store admins must be able to create a quilt kit from any approved design submission at any time, not only from winners. The kit creation flow must let the admin choose whether the kit references the designer, the contest, both, or neither…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-029
Shoppers and participants must be able to share approved design submissions on social media using canonical tenant storefront URLs, saved AI preview images, and attribution metadata that respects anonymous-submission settings.
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-030
Contest data must emit typed domain events through the outbox for contest creation/publication, submission received, submission approved/rejected, vote cast, vote changed, winner selected, winner selection reversal, prize awarded, and kit…
6h agopackages/events/src/registry.ts×2packages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.ts+2 more - ShippedREQ-QDC-031
The tenant admin dashboard must include a Design Contest tile or named SLI (REQ-ANL-042) showing active contest status, pending submissions, approved submissions, vote totals, anonymous participation totals, judging window state, winner pu…
6h agopackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.tspackages/demo-data/src/packs/0013_design_contests.ts - ShippedREQ-QDC-032
The Design Contest feature must ship behind a feature flag from packages/flags; demo data for at least one active contest, one completed contest, approved submissions, anonymous participation, and a winner-created kit must live under packa…
6h agopackages/core/src/creativeCommerceReadiness/index.test.tspackages/core/src/creativeCommerceReadiness/index.tspackages/core/src/platformOperationsReadiness/index.test.ts+2 more
REQ-TELREQ-TEL8 shipped0 wip0 todo100%
- ShippedREQ-TEL-001
/admin/settings?tab=phone Telnyx store phone-number search. Tenant admins must be able to search available Telnyx phone numbers from the store dashboard, choose local or toll-free inventory, and filter by country, area code/NPA, locality,…
2h agoapps/web/src/app/admin/settings/actions.tsapps/web/src/env.tsapps/web/src/lib/telnyxNumbers.test.ts+1 more - ShippedREQ-TEL-002
Telnyx phone-number quotes must be computed server-side from Telnyx availability cost information. BoltToCart must parse Telnyx upfront and monthly costs into integer minor-unit money, preserve the provider currency, apply the platform-con…
6h agoapps/web/src/lib/telnyxNumbers.test.tsapps/web/src/lib/telnyxNumbers.ts - ShippedREQ-TEL-003
Platform operators must be able to configure Telnyx phone-number pricing from the operator console: multiplier basis points, minimum upfront charge, minimum monthly charge, and supported currency. These settings are platform-managed like d…
6h agoapps/web/src/app/(platform)/platform/PlatformSettingsForm.tsxapps/web/src/app/(platform)/platform/actions.ts - ShippedREQ-TEL-004
Telnyx store phone-number purchases are store-owner platform purchases per REQ-MON-005 and must use Stripe Checkout or Stripe Billing surfaces per REQ-MON-006. Checkout must persist the selected phone number, Telnyx quote snapshot, custome…
2h agoapps/web/src/app/admin/settings/actions.ts×4 - ShippedREQ-TEL-005
After successful payment, BoltToCart must provision the selected phone number through Telnyx number orders, persist the Telnyx order id and per-number provider status, and reconcile pending, success, failure, cancelled, and regulatory-acti…
6h agoapps/web/src/lib/telnyxNumbers.test.ts×2apps/web/src/lib/telnyxNumbers.ts - ShippedREQ-TEL-006
Store phone-number state must be tenant-scoped, RLS-protected data. The active number, candidate quotes, Telnyx order records, provider references, provisioning failures, retryability, regulatory requirement status, billing references, and…
2h agoapps/web/src/app/admin/settings/actions.ts×2packages/db/src/schema/tenantPhoneNumbers.ts - ShippedREQ-TEL-007
Telnyx phone-number provisioning must emit typed domain events through the outbox and catalog in packages/events: quote created, checkout started, payment succeeded/failed through the shared platform-purchase events, Telnyx order requested…
6h agopackages/events/src/domain/platformPurchases.tspackages/events/src/registry.test.ts - ShippedREQ-TEL-008
The store dashboard must include a phone-number readiness tile or named SLI per REQ-ANL-042, showing active phone-number coverage, pending Telnyx provisioning, failed/retryable orders, and regulatory action blockers. A demo-data pack under…
6h agopackages/demo-data/src/packs/0075_telnyx_phone_numbers.ts
Last refreshed at build: . Redeploy to regenerate. Also available as JSON → Edit REQUIREMENTS.md on GitHub →
