import type { Metadata } from "next"; import { PublicShell, StatusPill } from "../components/Shells"; import { getPublicCommercialSnapshot } from "@/db/repository"; export const dynamic = "force-dynamic"; export const metadata: Metadata = { title: "免费公测上线门禁", description: "免费公测开放前必须完成的安全、主机接入、主体路径、隐私与运维证据。", }; const categoryName: Record = { security: "安全", entitlement: "权益", infrastructure: "基础设施", billing: "账单与支付", compliance: "经营与合规", privacy: "隐私与数据", operations: "运维", product: "产品规则", }; export default async function ReadinessPage() { const commercial = await getPublicCommercialSnapshot(); return (
{commercial.blockedP0 ? "PUBLIC BETA BLOCKED" : "P0 GATES PASSED"}

{commercial.blockedP0 ? "先把免费公测跑稳。" : "免费公测基础门禁已经通过。"}

{commercial.blockedP0 ? `控制台可以演示数据和管理流程;真实主机接入、生产租户开通和强隐私承诺仍由 ${commercial.blockedP0} 项 P0 证据门禁阻止。` : "P0 证据已经齐全;接下来按邀请范围、支持能力和运营容量逐步开放。"}

P0 BETA GATES

一项没过,就不向公众开放。

门禁状态来自控制平面数据库。管理员可以补负责人、证据与审计,但不能用一个“公测免费”开关绕过安全与运行条件。

{commercial.gates.map((gate) => (
{categoryName[gate.category] ?? gate.category} {gate.status === "passed" ? "已通过" : gate.status === "in_progress" ? "进行中" : "阻止"}

{gate.title}

负责人
{gate.owner || "待指定"}
证据
{gate.evidence_url ? 打开证据 : "尚未提交"}
))}
DOMESTIC BETA BASICS

国内个人用户公测,先确认这些基础项。

当前不收款,因此支付、发票和付费条款不阻塞免费测试;主体/域名路径、隐私告知和真实运维能力仍要在开放前讲清楚。

01

主体、域名与接入路径

确认以什么身份提供免费测试、域名和部署位置,以及当前服务形态对应的备案路径。

02

隐私告知与数据退出

当前数据清单与退出入口已公开;仍需确定保存期、受托方、跨境事实和卷/备份擦除证据。

查看公测数据说明 →
03

真实主机接入安全

配对码认领、来源限速、设备撤销、凭据恢复和异常告警必须在真实 daemon 链路上验证。

04

故障与反馈渠道

准备最小可用的状态通知、问题反馈、回滚和数据恢复路径,让测试用户知道出问题该怎么办。

); }