From a3a1e1332145a07f23d41595c46b1dfdca6e30dc Mon Sep 17 00:00:00 2001 From: Christopher Sellers <1@christophersellers.com> Date: Wed, 28 Oct 2026 05:05:40 -0700 Subject: [PATCH 1/5] fix(copy): SEL-607 qualify E11 product/import claims Qualify advisory enforcement and checked-export wording on the product page, mark Sensitech experimental / not on the production allowlist, and remove XLSX claims from Data Import Hub + readiness copy (CSV only). Linear: https://linear.app/sellers01/issue/SEL-607/e11-diligence-qualify-product-page-data-import-hub-claims-that-exceed --- frontend/src/__tests__/pages/product.test.tsx | 2 +- frontend/src/app/product/page.tsx | 12 ++++++------ .../data-import/components/DataImportClient.tsx | 14 +++++++------- frontend/src/lib/customer-readiness.ts | 6 +++--- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/frontend/src/__tests__/pages/product.test.tsx b/frontend/src/__tests__/pages/product.test.tsx index 9b520db99..d201df8b8 100644 --- a/frontend/src/__tests__/pages/product.test.tsx +++ b/frontend/src/__tests__/pages/product.test.tsx @@ -23,6 +23,6 @@ describe("ProductPage Inflow impact illustration", () => { expect(screen.getByRole("heading", { name: "Fix before evidence" })).toBeInTheDocument(); expect(screen.getByRole("heading", { name: "Persist and prove" })).toBeInTheDocument(); expect(screen.getByRole("heading", { name: "Tenant-scoped evidence" })).toBeInTheDocument(); - expect(screen.getByRole("heading", { name: "Export-ready package" })).toBeInTheDocument(); + expect(screen.getByRole("heading", { name: "Export package from stored records" })).toBeInTheDocument(); }); }); diff --git a/frontend/src/app/product/page.tsx b/frontend/src/app/product/page.tsx index 5c95163c2..6fa2f6147 100644 --- a/frontend/src/app/product/page.tsx +++ b/frontend/src/app/product/page.tsx @@ -57,8 +57,8 @@ const inflowEffects = [ const engineResults = [ { - title: "Blocked or corrected", - detail: "Bad supplier data is routed back through the fix queue instead of polluting the evidence ledger.", + title: "Flagged for fix", + detail: "Incomplete or inconsistent supplier rows are surfaced in the fix queue so operators can correct them before treating them as production evidence. Rule blocking is advisory in production today; rejection is not guaranteed.", icon: PackageX, }, { @@ -67,8 +67,8 @@ const engineResults = [ icon: Lock, }, { - title: "Export-ready package", - detail: "Coverage and completeness checklist results, recall posture, and FDA/retailer exports use checked records only.", + title: "Export package from stored records", + detail: "Coverage and completeness checklist results, recall posture, and FDA/retailer export packages are built from records stored for the tenant. RegEngine helps with recordkeeping; it does not certify FDA acceptance or guaranteed compliance.", icon: FileOutput, }, ]; @@ -105,7 +105,7 @@ function InflowImpactDiagram() {
Raw supplier feed
- CSV/XLSX upload or supplier portal, the JSON events API, or EPCIS-shaped records (EPCIS in Preview) + CSV upload or the JSON events API (Live). EPCIS-shaped records are Preview. Other feeds are Beta.
Commit gate says yes
- RegEngine promotes checked records into tenant-scoped evidence, then uses that evidence for scores and exports. + RegEngine can promote records that passed the commit gate into tenant-scoped evidence and use that stored evidence for scores and export packages. Enforcement remains advisory unless RULES_ENGINE_ENFORCE is explicitly set and the route opts in.
diff --git a/frontend/src/app/tools/data-import/components/DataImportClient.tsx b/frontend/src/app/tools/data-import/components/DataImportClient.tsx index 04d60bff6..f18611390 100644 --- a/frontend/src/app/tools/data-import/components/DataImportClient.tsx +++ b/frontend/src/app/tools/data-import/components/DataImportClient.tsx @@ -182,19 +182,19 @@ export function DataImportClient() { return (Three Ways to Import
-CSV and XLSX upload with templates for every Critical Tracking Event (CTE) type, Sensitech TempTale CSV import, and the JSON events API.
+CSV upload with templates for every Critical Tracking Event (CTE) type, and the JSON events API. Live today: CSV upload and the JSON events API. Other connectors are Beta or Preview.
} > @@ -392,9 +392,9 @@ export function DataImportClient() {Import your traceability data into RegEngine via CSV upload, XLSX spreadsheets (including IoT temperature logs), or the JSON events API. Supports all FSMA 204 Critical Tracking Event (CTE) types with automatic validation and auto-cleaning of common formatting issues.
+Import your traceability data into RegEngine via CSV upload or the JSON events API. Supports all FSMA 204 Critical Tracking Event (CTE) types with automatic validation and auto-cleaning of common formatting issues.