Company Profile
@@ -384,7 +389,7 @@ export default function SettingsPage() {
/>
-
+ : null}
{/* ── API Keys Tab ── */}
diff --git a/frontend/src/components/ui/beta-unavailable-state.tsx b/frontend/src/components/ui/beta-unavailable-state.tsx
new file mode 100644
index 000000000..cda68fa3e
--- /dev/null
+++ b/frontend/src/components/ui/beta-unavailable-state.tsx
@@ -0,0 +1,14 @@
+import { Callout } from '@/components/ui/callout';
+import { BETA_UNAVAILABLE_COPY } from '@/lib/dashboard-load-failure';
+
+export interface BetaUnavailableStateProps {
+ feature?: string;
+}
+
+export function BetaUnavailableState({ feature = 'This feature' }: BetaUnavailableStateProps) {
+ return (
+
+ Contact support
+
+ );
+}
diff --git a/frontend/src/lib/dashboard-load-failure.ts b/frontend/src/lib/dashboard-load-failure.ts
new file mode 100644
index 000000000..ec2322d52
--- /dev/null
+++ b/frontend/src/lib/dashboard-load-failure.ts
@@ -0,0 +1,11 @@
+import { getErrorStatus } from '@/lib/api-error';
+
+export const BETA_UNAVAILABLE_COPY = 'not yet available in RegEngine Beta';
+
+export function isBetaUnavailableStatus(status: unknown): boolean {
+ return status === 404 || status === 403;
+}
+
+export function isBetaUnavailableError(error: unknown): boolean {
+ return isBetaUnavailableStatus(getErrorStatus(error));
+}
From b012f09f507146222d62146afc53bf8ed11b14c0 Mon Sep 17 00:00:00 2001
From: Christopher Sellers <1@christophersellers.com>
Date: Wed, 28 Oct 2026 21:26:05 -0700
Subject: [PATCH 2/2] fix(copy): Trust Preview detail avoids GA live-claim next
to EPCIS
Match #3707 wording: Preview stays evaluation-only without saying GA.
Refresh copy-lint baseline so the gate matches the scan.
Signed-off-by: Christopher Sellers <1@christophersellers.com>
---
frontend/src/app/trust/page.tsx | 2 +-
scripts/copy-lint/baseline.json | 26 --------------------------
2 files changed, 1 insertion(+), 27 deletions(-)
diff --git a/frontend/src/app/trust/page.tsx b/frontend/src/app/trust/page.tsx
index ad7269059..2637f9a13 100644
--- a/frontend/src/app/trust/page.tsx
+++ b/frontend/src/app/trust/page.tsx
@@ -50,7 +50,7 @@ const STATUS_SUMMARY = [
},
{
label: 'Preview',
- detail: 'Capability is usable for evaluation in supported workspaces, but is not GA. GS1 EPCIS 2.0 export and ingest stay Preview until separately promoted.',
+ detail: 'Capability is usable for evaluation in supported workspaces, but has not reached general release. GS1 EPCIS 2.0 export and ingest stay Preview until separately promoted.',
},
{
label: 'Pilot',
diff --git a/scripts/copy-lint/baseline.json b/scripts/copy-lint/baseline.json
index a9272faea..6d091f71f 100644
--- a/scripts/copy-lint/baseline.json
+++ b/scripts/copy-lint/baseline.json
@@ -2,22 +2,12 @@
"frontend/src/app/auth/verify/page.tsx": {
"empty-render": 2
},
- "frontend/src/app/blog/fda-food-traceability-requirements/page.tsx": {
- "epcis-unlabeled": 1
- },
"frontend/src/app/blog/food-traceability-software/page.tsx": {
- "epcis-unlabeled": 1,
"sample-demo": 2
},
"frontend/src/app/blog/fsma-204-compliance-checklist-2026/page.tsx": {
"invented-entity": 2
},
- "frontend/src/app/blog/fsma-204-compliance-guide/page.tsx": {
- "epcis-unlabeled": 2
- },
- "frontend/src/app/blog/fsma-204-cte-kde-guide/page.tsx": {
- "epcis-unlabeled": 5
- },
"frontend/src/app/contact/layout.tsx": {
"sample-demo": 2
},
@@ -38,7 +28,6 @@
"empty-render": 1
},
"frontend/src/app/design-system/page.tsx": {
- "invented-entity": 1,
"sample-demo": 1,
"sandbox": 1
},
@@ -58,9 +47,6 @@
"dash-placeholder": 3,
"empty-render": 2
},
- "frontend/src/app/fsma-204/[cte]/page.tsx": {
- "invented-entity": 1
- },
"frontend/src/app/identity/page.tsx": {
"dash-placeholder": 2,
"empty-render": 1
@@ -78,9 +64,6 @@
"frontend/src/app/legal/vulnerability-disclosure/page.tsx": {
"sample-demo": 1
},
- "frontend/src/app/product/page.tsx": {
- "sandbox": 2
- },
"frontend/src/app/records/page.tsx": {
"dash-placeholder": 3,
"empty-render": 1
@@ -100,9 +83,6 @@
"frontend/src/app/tools/tlc-validator/components/TLCValidatorClient.tsx": {
"sample-demo": 1
},
- "frontend/src/app/why-regengine/page.tsx": {
- "epcis-unlabeled": 1
- },
"frontend/src/components/dashboard/compliance-status-widget.tsx": {
"empty-render": 1
},
@@ -133,9 +113,6 @@
"frontend/src/lib/dev-compliance-snapshots.ts": {
"dash-placeholder": 2
},
- "frontend/src/lib/epcis-upload.ts": {
- "epcis-unlabeled": 4
- },
"frontend/src/lib/mock-tenants.ts": {
"sample-demo": 1
},
@@ -144,8 +121,5 @@
},
"frontend/src/lib/trust-subprocessors.ts": {
"sample-demo": 1
- },
- "frontend/src/lib/utils.ts": {
- "dash-placeholder": 1
}
}