Files
yovision/docs/raw/11-Sense原型-第二轮缺口.md
QiuSW e0b0bfafeb
Harness governance / validate (push) Has been cancelled
Harness governance / validate (pull_request) Has been cancelled
docs(design): close Sense second-review gaps
2026-08-04 11:08:41 +08:00

140 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Sense 原型第二轮评审复核版
> 原始输入:Claude《Sense 原型第二轮评审》,2026-08-04
> 复核基准:`docs/design/sense/index.html`,提交 `e18a1ea`
> 复核视角:产品边界、全栈架构、M2 用户流程与 UI/UX
> 状态:项目负责人已确认按本复核结论继续修改
---
## 1. 总结
Claude 指出的对账运维、设备能力来源、非视频适配器阶段、待激活、凭据恢复、写入降级和边缘隧道等缺口方向成立;但原稿不能直接作为执行清单,主要有三类问题:
1. **基准落后**:设备分页和推理收敛成功态已经实现,分片数据也不再是原稿引用的 `8 / 32`。
2. **范围扩大**:T-004 当前关联 US-001、US-002、US-008 和部分 US-005,并未承诺一次画完完整 M2/M4 管理端。新增 P0 页面必须先同步 US/IX 与任务范围。
3. **系统归属混淆**:`routes.md` 的 `/sites`、`/operations`、`/audit` 是统一管理 Web 的候选页面职责,不等于都应成为 Sense 一级导航。Bell 拥有租户/RBAC、审计、配额真相源和管理端;Sense 负责设备接入与运行态运维。
因此,本轮采纳“补核心流程、收敛导航、冻结归属”的方案,不采用“Sense 导航机械扩为 8 项”。
---
## 2. 对原评审事实的纠正
| 原判断 | 当前事实 | 处理 |
| --- | --- | --- |
| 设备列表分页未实现 | 已有 5 条/页、上一页/下一页、页数和总数 | 标记完成;批量选择未来新增时再定义跨页语义 |
| “推理绑定 16/16”仍是紫色满格 | 已改为“推理配置收敛 16/16”绿色成功态 | 标记完成 |
| 分片仍显示 `8 / 32` | 当前为 `16 / 32`,并显示“当前 1 / 最多 4” | 只补“32 是可配置建议值、最终由压测确定” |
| T-004 `write_paths` 只有三个文件 | 已扩展到需求、架构、US/IX、评审稿和两个原型 | 更新清单基准 |
| modality 筛选包含 ONVIF/MQTT | modality 是 video/radar;ONVIF/RTSP/MQTT 属于 protocol | 文档严格区分模态、设备种类、协议和能力 |
---
## 3. 最终产品信息架构
### 3.1 Sense Edge Console
Sense 保持最多五个一级入口,移动端底部导航不超过五项:
```text
运行总览
实时监控
设备
接入任务
运维
├─ 对账与孤儿资源
├─ 媒体分片
├─ 边缘节点与隧道
├─ 运维告警
└─ 系统状态
```
原“系统状态”并入“运维”。总览的待收敛项、设备告警和分片状态均可下钻到运维的对应子页。Sense 顶栏显示当前租户、站点、用户和角色,并消费 Bell 下发的授权上下文,但不自建租户/RBAC 真相源。
### 3.2 Bell / 统一管理端
以下能力归 Bell/统一管理端,而不是在 Sense 重复建设一级页面:
- Tenant、Site、Area 管理和 RBAC。
- Area 的 `capture_policy` 编辑与已有成像设备的显式处置流程。
- 全局审计查询;Sense 设备操作记录只提供带设备筛选的深链。
- `site.max_video_channels` 的配置与真相源。
Area 与策略由 Bell 持有,Sense 使用带版本的只读投影执行新增/启用准入;投影未知或过期时 fail closed,只阻止新的成像变更,不中断已有链路。
---
## 4. 采纳的真实缺口
### 4.1 对账与运维中心(P0)
- 未收敛项展示期望态/实际态具体差异、重试次数、退避间隔和下次重试时间。
- 手动动作语义为“提高优先级并重新触发收敛”,不能绕过对账器直接修改实际资源。
- 展示孤儿资源、占比、10% 安全闸及人工处置提示;不提供绕过安全闸的一键删除。
- 展示媒体分片、边缘节点、控制隧道、数据面、补传队列和独立运维告警。
- 明确“控制隧道断开但已有视频数据面仍正常”的组合态。
### 4.2 设备能力来源(P0)
`capabilities` 必须来自探测/适配器结果并保存来源、探测时间与版本,不能由前端名称猜测。详情展示“已探测能力”和“当前生效能力”;重新探测显示新增/消失差异,能力降级时列出受影响的触发、Profile 或空间配置。
US-007 的采购白名单当前仍是版本化测试文档,无产品 UI;运行设备可只读显示“白名单型号/未验证型号”,不把白名单管理升级成 M2 P0 页面。
### 4.3 非视频适配器阶段态(P0)
M1~M5 可登记 radar 等模态以验证信息架构和隐私准入,但实际态必须是 `adapter_not_ready`(用户文案“适配器未就绪 · M6”),不得显示在线/离线或模拟 MQTT 遥测连接,也不计入视频配额。
### 4.4 设备生命周期(P0)
- 待激活作为可筛选状态,支持重新探测、校时、配额/策略复核、激活和逐项失败原因。
- 认证失败与离线分开;更新凭据只写不读、不回显旧值,更新后显示重试结果。
- 批量凭据仅允许安全导入逐设备凭据,不提供把同一密码覆盖到多台设备的一键操作。
- Profile 切换展示对当前观看、推理、区域校准与短暂中断的影响。
### 4.5 写入降级与权限(P0)
- 配额不可读:列表与已有视频可用,新增/启用被阻止。
- Area 策略投影不可读/过期:只阻止新的成像变更,已有链路保持现状并告警。
- 只读角色隐藏写操作;越权或资源不存在的深链使用统一安全拒绝态。
- 原型角色切换器只用于枚举状态,不代表 Sense 拥有账号或权限数据。
### 4.6 措辞与可观察结果(P0)
“暂停推理”统一为:
> 解除推理侧对该路的订阅;有其他观看者时上游继续拉流,无其他 reader 时上游按需停止。
执行结果同时显示推理订阅、reader 数和上游拉流状态,避免实现成推理插件内部直接 `return` 而持续浪费带宽。
---
## 5. 降级或后置的建议
| 原建议 | 最终处理 |
| --- | --- |
| Sense 新增“站点与区域”一级导航 | 不采纳;Bell/统一管理端持有管理页,Sense 顶栏只做站点上下文切换 |
| Sense 新增“审计”一级导航 | 不采纳;保留设备操作记录并深链 Bell 全局审计 |
| 直接批量覆盖同一设备密码 | 不采纳;仅做逐设备写入或安全文件导入 |
| M2 提供跨媒体分片迁移 | 后置 M4;本轮只展示分片详情与影响范围 |
| M2 提供节点升级/重启 | 后置独立高风险运维任务;本轮只展示状态 |
| 提前为推理绑定、pre-roll、设备型触发创建空页面 | 不采纳;能力模型与运维子导航已保留扩展,不创建无操作价值的占位页 |
---
## 6. 审计接口的独立架构任务
Bell 是全局审计真相源,但 T-004 不修改 `docs/api.md`。后续任务需要冻结 Sense → Bell 审计投递或等价投影契约,至少包含:
- Sense 在执行高风险写操作前,把操作意图与审计 outbox 在本地持久化;不能“先执行后尝试记录”。
- Bell 不可达时,只要本地 outbox 已持久化,业务操作可继续;恢复后幂等补投。
- 明确租户/站点范围、事件 ID、操作者、目标、请求结果、重试与保留策略。
此项属于 API/一致性设计,不用原型中的 toast 代替契约。
---
## 7. 本轮实施边界
T-004 重新生成 Sense 原型并补 Bell 管理端入口,同时更新正式 US/IX 和本复核稿。`docs/api.md`、生产代码、事件 v0.1 与真实认证实现不在本任务修改;人工确认前 T-004 继续保持 `DOING`。