TARGETF4B2 PARTIALQA 0/5 VERIFIEDR06 · 7/21 PASS COMPLETEAdmin · 发布者、审核者、应用 owner 与故障值班

版本历史、对比与回滚

以不可变 artifact 和发布回执管理候选、审核、线上、归档和失败版本

/apps/:appId/versionsminiapp-open-platform
R06 · KNIFE 7 / 21

版本历史、对比与回滚 · 页面级细化任务包

以不可变 artifact 与发布证据展示历史、失败、对比和创建新 pointer 的回滚。

CURRENT / TARGET ROUTE

尚无当前路由 → /apps/:appId/versions

ENTRY

从当前发布页结果或目标应用侧栏进入;当前没有 list versions API。

SUCCESS OUTPUT

打开 artifact/review/Gateway/host evidence,或生成新的 rollback release receipt。

COMMAND MODEL

AppVersionIndex + immutable artifact + release state + Gateway pointer + target host smoke;当前只有 create/get-by-id/publish store calls。

RESPONSIVE + A11Y

桌面列表 + 证据 Drawer;手机版本卡片 + 全屏详情,checksum 与失败 code 可复制但签名下载 URL 不展示。

TELEMETRY

open_versions_view · version_open · diff_open · rollback_confirm;不记录 package URL 或 signed ticket。

CURRENT SOURCE + PRODUCTIONfa9283d / fb1a1b
  • miniapp-open-platform formal main fa9283d;生产 developer-api / gateway 为 fb1a1b4、落后 1 提交;UX bc62595 +1 与 runtime 5e51842 +18 均为未合并 candidate
  • 当前 Portal 只有 `/login`、`/apps`、`/apps/new`、`/apps/:id/publish` 四个 React 路由;E06 以 68 个 formal-main 文件为源码边界
  • 当前 Portal 把 access token 写入 localStorage key `reits.portal.token`;邮箱写入 `reits.portal.email`
  • 生产 Developer API 运行于 :8090,Miniapp Gateway 运行于 :8081,health/ready 200;未授权 `/api/apps` 为 401,OTP/创建/上传/发布写调用为 0
  • app_versions 当前保存 asset_id、sha256、s3_version_id、状态与 published_at
  • Store 没有对 Portal 暴露版本列表、detail、日志、重试或回滚 API
IMPLEMENTATION GAPNOT PRODUCT UI
  • 无 AppVersionIndex、review timeline、Gateway/host evidence API
  • 无 release revision/outbox/rollback receipt
  • 当前历史状态不能区分 validation、review、sync 与 smoke 失败
四个 current Portal 路由与八张目标工作页分开记录;目标页面不能作为产品完成证据。
72-STATE PROGRAM / THIS SCREEN

八页分别改变身份、发布、配置、版本、能力与审核边界

QA 0 / 5 VERIFIED
READY版本证据结构可以评审

target version index

OPEN-VERSIONS-READY→ 创建新版本
LOADING正在读取版本与发布证据

version index + evidence

OPEN-VERSIONS-LOAD→ 返回发布页
EMPTY应用尚无版本

version index

OPEN-VERSIONS-EMPTY→ 创建第一个版本
PARTIAL ERROR版本列表可用,分发证据不完整

Gateway/host evidence

OPEN-VERSIONS-EVIDENCE-PARTIAL→ 重试分发证据
ERROR无法读取版本历史

version index

OPEN-VERSIONS-503→ 重试版本历史
OFFLINE离线查看版本快照

version snapshot

OPEN-VERSIONS-OFFLINE→ 重新连接
FORBIDDEN没有查看该应用版本的权限

release read/resource grant

OPEN-VERSIONS-SCOPE-DENY→ 返回可见应用
CONFIRM创建指向旧 artifact 的新发布?

RollbackCommand

OPEN-VERSIONS-ROLLBACK-CONFIRM→ 确认创建回滚
SUCCESS回滚 pointer 已发布

RollbackReceipt

OPEN-VERSIONS-ROLLED-BACK→ 查看回滚证据
OPEN PLATFORM BOUNDARYR06/E06 只细化 developer.reits.tech 的开放平台目标 UI 与可复核执行合同;不使用真实开发者凭证,不发送 OTP,不创建应用,不上传 ZIP,不发布或回滚版本,不轮换 secret,不提交能力申请,也不把 candidate 或目标路由冒充为当前生产事实。
UI STUDIOtarget-open-versions
Admin1440 × 900100%
100%
/apps/:appId/versions
TARGET UI1440 × 900FIT 100%
R06 DESIGN CANDIDATE · target-open-versions · NOT PRODUCT UI
PUBLIC GATEWAY SAMPLE / TARGET WORKSPACEProduction evidence
AU
VERSION CONTROL · TARGET ROUTE

版本管理

当前 schema 有不可变资产字段,但 Portal 没有版本列表、详情、失败证据、对比或回滚 API。

CURRENT LIST API0not implemented
KNOWN DB MODEL1app_versions
GATEWAY POINTER1public catalog
QA GATE0 / 5evidence required
证据类型状态当前能力来源
CURRENTschemaapp_versionsasset_id / sha256 / status
TARGETindexnot implementedlist / detail / diff
TARGETrollbacknot implementednew release pointer
REFERENCE VIEWPORT1440 × 900Desktop first · responsive
PRIMARY TASK创建新版本主操作、权限与完成反馈必须同屏可验证
DATA CONTRACTAppVersionIndexready / loading / empty / error 使用同一 fixture
ACCESSIBILITYKeyboard + WCAG AA焦点顺序、可读名称、对比度进入 UI CI
VISUAL BASELINETARGET · 2026-07-17桌面/移动、浅色/错误态按稳定 Screen ID 留档

IMPLEMENTATION MAP

目标定义与下一轮逐页细化入口

当前处于 B1/B2:可以拆出架构、设计、交互和 QA 任务,但完成 D01–D12、通过 B3/B4 之前,不得宣称页面已经可以照稿实现。

01

页面区域

  • 版本任务头
  • 状态摘要
  • 版本目录
  • 版本详情抽屉
  • Artifact 证据
  • 发布时间线
  • 版本对比
  • 回滚确认与回执
02

用户动作

  • 创建新版本
  • 查看版本详情
  • 比较两个版本
  • 查看失败证据
  • 撤回候选版本
  • 回滚线上 pointer
  • 导出发布证据
03

必须状态

  • 版本历史就绪
  • 历史和证据加载
  • 尚无版本
  • 宿主 smoke 部分失败
  • 版本目录失败
  • 离线只读历史
  • 缺少 release:read
  • 撤回/回滚确认
  • 回滚发布已完成
04

数据契约

  • AppVersionIndex
  • ImmutableArtifact
  • ReleaseCandidate
  • ReviewTimeline
  • GatewayPublishState
  • HostSmokeEvidence
  • VersionDiff
  • RollbackReceipt

TARGET MODULES

目标页面必须交付的模块

  1. 01版本状态 KPI
  2. 02版本历史表
  3. 03候选/线上对比
  4. 04Artifact/checksum
  5. 05审批时间线
  6. 06Gateway/host smoke
  7. 07失败详情与重试
  8. 08回滚创建新 release pointer

PRODUCT ROUTE INDEX

开放平台 的 38 个稳定 Screen ID

同一产品内的页面共享 token、导航和状态语言,但每个 Screen ID 保留自己的字段、数据契约和 QA 基线。

01
开发者登录/login
Web
02
我的小程序/apps
Web
03
创建小程序/apps/new
Web
04
应用发布/apps/:id/publish
Web
05
应用索引与控制面健康/apps
Admin
06
三步创建应用/apps/new
Admin
07
上传、审核与原子发布/apps/:appId/releases/new
Admin
08
应用基本信息与生命周期/apps/:appId/settings
Admin
09
环境、回调与凭证/apps/:appId/config
Admin
10
版本历史、对比与回滚/apps/:appId/versions
Admin
11
接口、Scope 与使用量/apps/:appId/capabilities
Admin
12
能力申请与审核/apps/:appId/capability-requests
Admin
13
组织目录与企业边界/mini-company/list
Admin
14
创建与验证企业/mini-company/create
Admin
15
开发治理概览/console/development
Admin
16
开发者身份与资源关系/console/developer
Admin
17
成员、邀请与离职治理/console/member
Admin
18
角色、策略与有效权限/console/role
Admin
19
服务账号与工作负载身份/console/service-accounts
Admin
20
操作、授权与安全审计/console/log
Admin
21
机器人目录与运行健康/robot/list
Admin
22
创建机器人与最小授权/robot/create
Admin
23
机器人基本信息与生命周期/robot/baseInfo/:id
Admin
24
事件订阅与开发配置/robot/devConfig/:id
Admin
25
命令定义、权限与测试/robot/command/:id
Admin
26
Bot Token 与运行凭证/robot/token/:id
Admin
27
事件交付、重试与 Redelivery/robot/:id/deliveries
Admin
28
支付订单与资金生命周期/mini/:type/paymentOrders/:id
Admin
29
用户数据、授权与主体请求/mini/:type/userData/:id
Admin
30
支付能力申请与独立复核/mini/:type/payApply/:id
Admin
31
组织财务、结算与对账/console/finance
Admin
32
公共开发者首页与能力总览/
Web
33
Mini App 产品、Quickstart 与宿主边界/mini
Web
34
企业开发与组织治理介绍/mini-company
Web
35
机器人、命令与事件自动化介绍/robot
Web
36
商业合作、场景准入与能力边界/business
Web
37
平台公告、变更影响与订阅中心/notice
Web
38
个人账号、安全、授权与偏好中心/console/my
Admin