29 KiB
元境幻生管理台一期菜单与交互图示规划
本文是管理台历史页面蓝本。当前长期目标的唯一权威入口是
docs/miragenflow-long-task-goal-prompt.md;如旧蓝本与综合目标冲突,以综合目标为准,尤其是渠道只支持 OpenAI、使用统一弹窗和三个可自由切换 Tab。
本文是管理台重构的交互基线。本轮只规划,不改变后台业务接口。 ASCII 图即 SSII 页面图;Mermaid 图用于菜单、权限和跨页面状态流转。
实现同步:当前代码已接入渠道/渠道组/模型产品编辑抽屉、渠道健康全部探活、审批状态筛选与驳回、任务详情/调用记录;认证消息列表不返回目标哈希。详情请求失败会保留抽屉并提供重试,设置与调用记录抽屉显式支持关闭按钮、遮罩和 ESC。管理台请求在 401 刷新后的重试会复用原始请求头和幂等键,渠道生成测试会按模型映射把平台显示模型 ID 转为供应商请求模型 ID。上述交互仍需浏览器逐页验收,未验证项保留在
pending-test.mdx。
1. 本轮结论与边界
1.1 必须修复的问题
| 问题 | 规划结论 |
|---|---|
| 系统概览 403、白板无权限 | 统一角色到权限映射;进入后台后先加载 me 和权限,再决定页面;无权限页必须提供返回总览/重新登录按钮。 |
| 用户管理没有新增用户 | 增加“新增用户”按钮和抽屉;管理员创建的用户默认状态由表单选择,密码只显示一次并强制首次修改。 |
| 认证消息换行 | 内容列使用多行预览抽屉,模板编辑使用 Textarea;表格不显示超长原文,只显示摘要和“查看详情”。 |
| 消息供应商 | 本期不接入、不显示在主菜单;保留后端适配器和页面占位,不提供未完成的配置表单。 |
| 渠道无法新增 | 页面只展示列表和“新增渠道”按钮;点击后打开弹窗/抽屉,不在首屏铺开全部字段。 |
| 渠道健康英文 | healthy/degraded/open/disabled 统一映射为“健康/降级/熔断/已停用”,状态用中文标签和颜色。 |
| 渠道分组、模型产品 | 分组先选渠道再排序;模型产品先选公开 ID、档位、能力、分辨率、价格和渠道组,未绑定渠道组时默认下架。 |
| capability 列异常换行 | 能力使用中文标签和固定宽度;超过宽度显示 +N,悬停或详情抽屉显示完整能力,不让 JSON 撑高表格。 |
| 价格规则不能调整 | 价格表显示版本、当前生效状态和 If-Match 版本;“调整价格”弹窗提交后刷新列表,冲突时显示当前版本并要求重载。 |
1.2 一期不进入可见菜单
- 消息供应商、消息模板:只保留认证消息列表和发送状态;供应商接入等待第三方邮件/SMS 文档。
- 视频、动画、真实 3D、团队、内容治理、插件市场、Local Agent、远程 Prompt:不在管理台或用户端出现入口。
- 3D 仅保留后台能力开关字段,关闭时返回
CAPABILITY_NOT_ENABLED。
2. 一级/二级菜单规划
后台左侧采用可折叠的二级菜单。一级标题只负责分组,不直接承载业务表格;二级菜单才是可访问页面。
元境幻生管理台
├─ 01 总览
│ └─ 系统概览 /admin/dashboard/base admin:read
├─ 02 用户与认证
│ ├─ 用户管理 /admin/users admin:security
│ ├─ 认证消息 /admin/auth-messages admin:security
│ └─ 管理员安全 /admin/security/mfa admin:security
├─ 03 渠道与模型
│ ├─ 渠道管理 /admin/channels admin:read
│ ├─ 渠道健康 /admin/channel-health admin:read
│ ├─ 渠道分组 /admin/channel-groups admin:read
│ ├─ 模型产品 /admin/model-products admin:read
│ └─ 价格规则 /admin/pricing admin:read
├─ 04 计费与套餐
│ ├─ 金币单位与换算 /admin/billing/units admin:finance
│ ├─ 余额与账本 /admin/billing admin:finance
│ ├─ 套餐管理 /admin/plans admin:read
│ ├─ 充值订单 /admin/recharges admin:finance
│ ├─ 支付事件 /admin/payments admin:finance
│ ├─ 支付适配器 /admin/payment-providers admin:finance
│ └─ 审批中心 /admin/approvals admin:finance
├─ 05 任务与运行
│ ├─ 任务中心 /admin/tasks admin:read
│ └─ 实时指标 /admin/ws-metrics admin:read
├─ 06 存储与系统
│ ├─ 存储策略 /admin/storage admin:read
│ └─ 系统设置 /admin/settings admin:security
└─ 07 审计
├─ 日志大板 /admin/audit admin:audit
└─ 详细日志 /admin/audit-logs admin:audit
2.1 菜单交互规则
- 一级菜单支持展开/收起;收起时完全隐藏侧栏,不保留窄图标栏。
- 当前二级路由高亮;刷新后根据 URL 自动展开对应一级菜单。
- 没有权限的二级项不显示,不允许先显示后跳 403。
- 页面接口 403 时保留页面壳,显示“权限不足”卡片,不出现白板。
- 侧栏底部固定放“帮助/退出登录”;供应商消息不出现在本期导航。
admin:read只允许查看;新增、编辑、启停、调价等操作额外检查admin:write或admin:finance。- 所有写操作统一使用弹窗/抽屉,成功后刷新对应列表并保留筛选条件。
3. 通用页面交互规范
+--------------------------------------------------------------------------------+
| 一级菜单 / 二级菜单 面包屑 刷新 帮助 管理员菜单 |
+--------------------------------------------------------------------------------+
| 页面标题 + 描述 [搜索] [筛选] [批量操作] [新增/配置] |
+--------------------------------------------------------------------------------+
| 标签/统计卡片 |
+--------------------------------------------------------------------------------+
| 表格:选择 | 关键字段 | 状态 | 更新时间 | 操作(详情/编辑/启停/更多) |
| 固定列宽、中文状态、长文本摘要、分页、空态、错误态、重试 |
+--------------------------------------------------------------------------------+
| 右侧抽屉/弹窗:字段分组 | 校验提示 | 取消 | 保存/提交 |
+--------------------------------------------------------------------------------+
页面必须具备:加载态、空态、接口错误态、403 态、提交中态、成功 Toast、版本冲突态;禁止把所有配置字段直接堆在首屏。
4. 管理员登录与错误页 SSII
4.1 /admin/login
+-----------------------------------------------+
| 元境幻生管理台 |
| 管理员登录 |
| 邮箱 [admin@admin.com.......................] |
| 密码 [••••••••••••••••......................] |
| [登录] |
| 登录失败:账号或密码不正确 / 账户已冻结 |
+-----------------------------------------------+
交互:登录按钮提交中禁用;MFA/CAPTCHA 开关开启时才动态插入对应步骤;成功进入 /admin/dashboard/base,不直接进入上一次无权限页面。
4.2 /403 与 /404
+-------------------------------------------------------------+
| 403 你没有权限访问此页面 |
| 当前角色:{role} 需要权限:{scope} |
| [返回系统概览] [重新登录] [切换管理员] |
+-------------------------------------------------------------+
5. 业务页面 SSII 图示
5.1 /admin/dashboard/base 系统概览
+--------------------------------------------------------------------------------+
| 系统概览 [时间范围▼] [刷新] [导出摘要] |
+--------------------------------------------------------------------------------+
| 用户总数 | 活跃用户 | 今日任务 | 今日消耗 | 队列等待 | 渠道告警 |
+--------------------------------------------------------------------------------+
| 任务趋势折线图 | 渠道健康卡片 |
| 图片/音频/工具任务 · 成功率 · 平均耗时 | 健康 12 降级 2 熔断 1 |
+--------------------------------------------------------------------------------+
| 待处理事项:渠道异常 / unknown 任务 / 审批 / WebDAV 失败 [查看全部] |
+--------------------------------------------------------------------------------+
交互:卡片点击进入带筛选条件的二级页面;无权限时显示权限卡片而非白板;接口失败可单独重试。
5.2 /admin/users 用户管理
+--------------------------------------------------------------------------------+
| 用户管理 [新增用户] [导出] |
| [邮箱/手机号/ID 搜索........] [状态▼] [创建时间▼] [筛选] |
+--------------------------------------------------------------------------------+
| 选择 | 用户 | 联系方式 | 状态 | MFA | 余额 | 最近登录 | 操作 |
| □ | ... | 脱敏 | 正常 | 关 | ... | ... | [详情] [冻结] [更多] |
+--------------------------------------------------------------------------------+
| 新增用户抽屉:邮箱/手机号、昵称、初始密码、状态、是否发送欢迎消息 [保存] |
+--------------------------------------------------------------------------------+
交互:新增成功显示一次性初始密码;冻结/解冻和密码重置需要确认并写入审计;详情抽屉分账户、任务、账本、权益和审计 Tab。
5.3 /admin/auth-messages 认证消息
+--------------------------------------------------------------------------------+
| 认证消息 [状态▼] [通道▼] [时间▼] [刷新] |
+--------------------------------------------------------------------------------+
| 目标(脱敏) | 类型 | 模板 | 状态 | 重试次数 | 创建时间 | 操作 |
| ... | 邮件 | 注册 | 成功 | 0 | ... | [查看详情] [重试] |
+--------------------------------------------------------------------------------+
| 消息详情抽屉:目标、用途、状态时间线、错误摘要、内容预览(保留换行) |
+--------------------------------------------------------------------------------+
交互:长文本只在抽屉中 pre-wrap 展示;重试需二次确认;不展示供应商密钥和未接入的供应商配置。
5.4 /admin/security/mfa 管理员安全
+---------------------------------------------------------------+
| 管理员安全 |
| 当前管理员 | 角色 | MFA 状态 | 全局策略 |
| [启用 MFA] [验证设备] [关闭 MFA] |
| 恢复码:仅在生成后显示一次;关闭需要当前 TOTP + 原因 |
+---------------------------------------------------------------+
5.5 /admin/channels 渠道管理
+--------------------------------------------------------------------------------+
| 渠道管理 [新增渠道] [批量启停] [刷新] |
| [名称/供应方式/模型 ID 搜索] [状态▼] [健康▼] |
+--------------------------------------------------------------------------------+
| 渠道名称 | 供应方式 | 能力/状态 | 健康 | 优先级 | 更新时间 | 操作 |
| ... | OpenAI | 图片 | 健康 | 1 | ... | [详情] |
+--------------------------------------------------------------------------------+
| 新增/编辑渠道弹窗: |
| [基础信息] [模型列表] [模型映射] |
| 基础信息:名称、完整请求地址示例、API Key;模型列表:主动拉取后勾选加入; |
| 模型映射:平台显示模型 ID ↔ 供应商请求模型 ID(可选) |
| [取消] [保存] |
+--------------------------------------------------------------------------------+
交互:首屏只显示列表和新增按钮;当前只支持 OpenAI 图片端点;拉取模型是管理员主动点击的独立动作,不在新增/编辑保存时隐式发起;模型列表与模型映射独立;密钥只写服务端密文;支持编辑回填、Tab 草稿保留、启停、凭证轮换、手动探活和版本冲突提示。渠道生成测试提交时,若存在平台显示模型 ID 到供应商请求模型 ID 的映射,必须使用供应商请求模型 ID 调用上游;无映射时沿用平台显示模型 ID。弹窗必须支持取消、右上角、遮罩和 ESC 关闭,异步成功自动关闭,失败保留表单。
5.6 /admin/channel-health 渠道健康
+--------------------------------------------------------------------------------+
| 渠道健康 [全部探活] [自动刷新○] |
| [状态▼] [渠道组▼] [最近窗口▼] |
+--------------------------------------------------------------------------------+
| 渠道 | 中文状态 | 最近探活 | 延迟 | 连续失败 | 熔断剩余 | 操作 |
| ... | 健康/降级/熔断/已停用 | ... | ... | ... | ... | [单项探活] [查看日志] |
+--------------------------------------------------------------------------------+
5.7 /admin/channel-groups 渠道分组
+--------------------------------------------------------------------------------+
| 渠道分组 [新增分组] [刷新] |
| 分组 | 用途/档位 | 状态 | 渠道数 | 重试预算 | 版本 | 操作 |
+--------------------------------------------------------------------------------+
| 旗舰图像组 | 旗舰 | 启用 | 4 | 3 | v5 | [配置顺序] [启停] [详情] |
+--------------------------------------------------------------------------------+
| 分组编辑抽屉:可用渠道池 → 已选渠道排序(拖拽) → 重试预算 → 保存 |
| 渠道 1 ──> 渠道 2 ──> 渠道 3 ──> 渠道 4 [模拟故障切换] |
+--------------------------------------------------------------------------------+
5.8 /admin/model-products 模型产品
+--------------------------------------------------------------------------------+
| 模型产品 [新增产品] [发布/下架] |
| 公开 ID | 档位 | 能力 | 分辨率 | 绑定分组 | 价格 | 状态 | 版本 | 操作 |
| basic-image-v1 | 基础 | 文生图/图生图 | 低/中 | 基础组 | 10 | 上架 | v3 | [编辑] |
+--------------------------------------------------------------------------------+
| 产品抽屉:公开 ID/名称/档位 → 能力多选 → 分辨率矩阵 → 渠道组 → 价格预览 |
| 能力标签超出宽度显示 +N,点击“查看全部”打开能力详情,不撑高表格。 |
+--------------------------------------------------------------------------------+
5.9 /admin/pricing 价格规则
+--------------------------------------------------------------------------------+
| 价格规则 [新增规则] [刷新] |
| 产品 | 分辨率 | 数量阶梯 | 基础价格 | 倍率 | 生效版本 | 状态 | 操作 |
+--------------------------------------------------------------------------------+
| ... | 中 | 1-4 | 10 | 1.0 | v7 | 生效 | [调整价格] |
+--------------------------------------------------------------------------------+
| 调价弹窗:新价格/倍率/生效时间/原因/预览;提交 If-Match;冲突时显示当前版本。 |
+--------------------------------------------------------------------------------+
5.10 /admin/billing/units 金币单位与换算
+--------------------------------------------------------------------------+
| 金币单位 [编辑单位] |
| 图标 🪙 | 名称 金币 | 短码 COIN | 精度 0 | 换算比例 1:1 | 版本 v2 |
+--------------------------------------------------------------------------+
| 换算规则 [编辑单位] |
| 支付货币 | 金币比例 | 舍入方式 | 生效版本 | [编辑] |
+--------------------------------------------------------------------------+
5.11 /admin/plans 套餐管理
+--------------------------------------------------------------------------------+
| 套餐管理 [新增套餐] [上架/下架] |
| 名称 | 时长 | 包含金币 | 售价 | 并发 | 队列级别 | 可用渠道组 | 状态 | 操作 |
+--------------------------------------------------------------------------------+
| ... | 30天 | 1000 | ¥99 | 2 | 1 | 基础/高级 | 上架 | [编辑] |
+--------------------------------------------------------------------------------+
| 套餐抽屉:名称/介绍/时长/包含金额/购买金额/并发/队列优先级/保留期/渠道组权益 |
+--------------------------------------------------------------------------------+
5.12 /admin/billing、/admin/recharges、/admin/payments、/admin/approvals
+--------------------------------------------------------------------------------+
| 余额与账本 / 充值订单 / 支付事件 / 审批中心 [Tab 切换] [筛选] [导出] |
+--------------------------------------------------------------------------------+
| 余额与账本:用户 | available | reserved | reserve/settle/release/refund | 时间 |
| 充值订单:订单 | 用户 | 金额 | 状态 | mock/人工 | 创建时间 | [详情] |
| 支付事件:eventId | 订单 | 签名 | 金额 | 状态 | 收到时间 | [对账] |
| 审批中心:类型 | 申请人 | 审批人 | 状态 | 过期时间 | [审批] [驳回] |
+--------------------------------------------------------------------------------+
5.13 /admin/payment-providers 支付适配器
+--------------------------------------------------------------------------------+
| 支付适配器 [新增适配器] [刷新] |
| 名称 | 模式(mock/adapter) | 状态 | 密钥状态 | 版本 | 更新时间 | 操作 |
+--------------------------------------------------------------------------------+
| ... | mock | 启用 | 已配置 | v2 | ... | [编辑] [探活] |
+--------------------------------------------------------------------------------+
| 适配器抽屉:名称/模式/回调地址/签名密钥(仅服务端保存)/启用状态 |
| [测试 webhook] [保存] |
+--------------------------------------------------------------------------------+
交互:仅保留 mock、人工充值和支付 adapter 接口;第三方支付文档到位后再接入具体 provider。
5.14 /admin/tasks 任务中心
+--------------------------------------------------------------------------------+
| 任务中心 [状态▼] [类型▼] [模型▼] [刷新] |
| taskId | 用户 | 类型 | 公开模型 | 状态 | 预扣/实扣 | attempt | 更新时间 | 操作 |
+--------------------------------------------------------------------------------+
| ... | ... | 图片 | basic-v1 | 运行中 | 10/-- | 2 | ... | [详情] [取消] |
+--------------------------------------------------------------------------------+
| 任务详情抽屉:输入快照 → attempt 时间线 → 输出 → 账本 → 脱敏错误 → [重试/对账] |
+--------------------------------------------------------------------------------+
5.15 /admin/ws-metrics
+--------------------------------------------------------------------------+
| 实时指标 [时间窗▼] [自动刷新○] [断线重连] |
| 在线 WS | 活跃订阅 | 事件吞吐 | 轮询降级 | 断线率 | 心跳超时 | 队列深度 |
+--------------------------------------------------------------------------+
| 时间序列:WS 连接 / 任务事件 / fallback 轮询 / Redis 租约 |
+--------------------------------------------------------------------------+
5.16 /admin/storage 与 /admin/settings
+--------------------------------------------------------------------------------+
| 存储策略 [保存策略] [立即 GC] |
| 本地 staging TTL | WebDAV 保留期 | 最大延长 | 归档模式 | 扫描策略 | 版本 |
+--------------------------------------------------------------------------------+
| WebDAV 连接 | manifest | queued/running/conflict | 归档/删除任务 | [详情] |
| 系统设置 Tab:功能开关、用户认证增强、管理员安全增强、默认限流、审计保留期 |
+--------------------------------------------------------------------------------+
5.17 /admin/audit 与 /admin/audit-logs
+--------------------------------------------------------------------------------+
| 审计日志 [导出摘要] [校验链] |
| 时间 | 操作者 | 角色 | 动作 | 对象 | requestId | 结果 | 操作 |
+--------------------------------------------------------------------------------+
| ... | admin@... | super_admin | pricing.update | ... | ... | 成功 | [详情] |
+--------------------------------------------------------------------------------+
| 详情抽屉:before/after 脱敏摘要、IP、关联任务、hash、前后链校验状态 |
+--------------------------------------------------------------------------------+
/admin/audit 是日志大板,负责分类、HTTP 结果和趋势概览;/admin/audit-logs 是详细日志列表,负责按业务分类查看具体操作人、请求来源和详情抽屉。两者共用 audit-logs 读取接口,但必须作为两个可见路由分别验收。
5.18 延期页面(不出现在菜单)
消息供应商 /message-providers、消息模板 /message-templates
┌─────────────────────────────────────────────────────────────┐
│ 本期暂不接入第三方邮件/SMS provider │
│ 认证消息仍可查看 outbox 状态;供应商配置待文档确认后启用。 │
└─────────────────────────────────────────────────────────────┘
6. 管理台 Mermaid 图示
6.1 菜单与权限
flowchart TB
LOGIN[管理员邮箱+密码登录] --> SESSION[admin audience 会话]
SESSION --> POLICY{增强开关}
POLICY -->|MFA/CAPTCHA 关闭| RBAC[加载角色与 scopes]
POLICY -->|任一开启| CHALLENGE[按策略追加挑战]
CHALLENGE --> RBAC
RBAC --> ROOT[管理台壳层]
ROOT --> G[总览]
ROOT --> U[用户与认证]
ROOT --> C[渠道与模型]
ROOT --> B[计费与套餐]
ROOT --> T[任务与运行]
ROOT --> S[存储与系统]
ROOT --> A[审计]
U --> U1[用户管理]
U --> U2[认证消息]
U --> U3[管理员安全]
C --> C1[渠道]
C --> C2[健康]
C --> C3[分组]
C --> C4[模型产品]
C --> C5[价格规则]
B --> B1[金币/换算]
B --> B2[余额/充值/支付]
B --> B3[套餐]
B --> B4[审批]
T --> T1[任务中心]
T --> T2[WS 指标]
S --> S1[存储策略]
S --> S2[系统设置]
A --> A1[审计日志]
RBAC -.->|无 scope| FORBIDDEN[403 卡片:返回总览/重新登录]
6.2 渠道到模型产品的强交互流
sequenceDiagram
participant Admin as 管理员
participant UI as 管理台弹窗
participant API as Admin API
participant DB as 配置存储
Admin->>UI: 点击新增渠道
UI->>UI: 三个 Tab 共享一份草稿
Admin->>UI: 点击“拉取模型”(可选)
UI->>API: GET {baseUrl}/v1/models
API-->>UI: 候选模型列表(不自动创建映射)
Admin->>UI: 勾选模型并(可选)填写显示 ID/请求 ID 映射
UI->>API: POST/PATCH /admin/channels
API->>API: HTTPS、密钥、协议校验
API->>DB: 保存密文 + version=1
API-->>UI: 渠道摘要
Admin->>UI: 新增分组并拖拽渠道顺序
UI->>API: POST/PATCH /admin/channel-groups
API->>DB: 保存 channelIds + priorities + version
Admin->>UI: 新增模型产品
UI->>API: POST /admin/model-products
API->>API: 校验启用分组、能力、分辨率
API->>DB: 保存公开 ID/价格/路由快照
API-->>UI: 上架预览或校验错误
6.3 价格调整与版本冲突
stateDiagram-v2
[*] --> Loaded
Loaded --> Editing: 点击调整价格
Editing --> Submitting: 提交 If-Match(version)
Submitting --> Saved: 200 + version+1
Submitting --> Conflict: 409 VERSION_CONFLICT
Conflict --> Reloaded: 查看当前版本
Reloaded --> Editing: 重新编辑
Submitting --> Error: 422/503
Error --> Editing: 修正或重试
Saved --> Loaded: 刷新列表并保留筛选
6.4 后台任务监控
flowchart LR
FILTER[筛选/搜索] --> LIST[任务列表]
LIST --> DETAIL[详情抽屉]
DETAIL --> ATTEMPTS[attempt 时间线]
DETAIL --> OUTPUTS[输出/资产]
DETAIL --> LEDGER[预扣/结算/释放]
DETAIL -->|取消| CANCEL[任务取消 API]
DETAIL -->|重试| RETRY[幂等重试 API]
DETAIL -->|unknown| RECONCILE[对账 API]
CANCEL --> LIST
RETRY --> LIST
RECONCILE --> LIST
6.5 统一写入反馈
flowchart TD
ACTION[新增/编辑/启停/审批/调账] --> VALIDATE[前端字段校验]
VALIDATE --> API[带 If-Match + Idempotency-Key 的请求]
API -->|200/201| REFRESH[刷新当前列表/统计]
API -->|403| PERM[权限卡片]
API -->|409| VERSION[版本冲突弹窗]
API -->|422| FIELD[定位字段错误]
API -->|503| RETRY[保留表单并重试]
实施状态:P0 菜单/权限壳层已接入代码;用户、渠道、渠道组、模型产品和价格规则已切换为弹窗入口,认证消息详情/重试 API 已接入。管理台 401 自动刷新重试会保留原幂等键,渠道生成测试会执行显示模型 ID 到供应商请求模型 ID 的转换。完整逐页浏览器验收仍记录在
docs/content/docs/progress/pending-test.mdx。
7. 实施顺序与验收
- P0 壳层与权限:修正角色 scopes、总览 403、403/404 按钮、二级菜单和面包屑。
- P0 渠道/模型闭环:新增渠道弹窗、中文健康状态、分组排序、模型产品绑定、能力标签。
- P1 用户与认证:新增用户抽屉、认证消息详情/多行模板展示;消息供应商页面保持隐藏。
- P1 计费:金币单位、换算、价格调整、套餐和审批统一表单/版本冲突反馈。
- P1 任务/存储/审计:详情抽屉、WS 指标、WebDAV 策略、审计详情。
- P2 视觉优化:固定列宽、响应式抽屉、空/错/加载状态、中文标签、无障碍键盘操作。
验收必须逐页确认:
- 一级菜单可折叠,二级菜单和 URL 一致,权限不足不白屏。
- 每个新增/编辑动作都从按钮打开弹窗或抽屉,而不是把字段永久铺开。
- 渠道 → 分组 → 模型产品 → 价格规则可以连续完成并在列表中看到版本和状态。
- 用户管理可以新增、冻结、解冻、查看详情;认证消息多行内容不破坏表格布局。
- 所有状态、能力、错误码和操作按钮使用中文;长文本、能力标签、JSON 均不能撑高表格。
- 写操作成功、403、409、422、503、网络断开均有可见反馈和恢复路径。