docs: 收口 HWLAB Web 产品体验重写

This commit is contained in:
Codex
2026-07-13 15:19:02 +02:00
parent a88ba74586
commit 5f86e23c33
5 changed files with 94 additions and 3 deletions
@@ -0,0 +1,20 @@
# R1.13.1 任务报告
## 交付
- UniDesk PR #1928merge ea6c3e05)对齐全量重写后的 MDTODO DOM 合同,按稳定 data-task-ref 和语义任务行分析,不再依赖旧标题/正文结构。
- UniDesk PR #1930commit 1468e56a)消除“仅任务树较短”造成的 mdtodo-pane-bottom-gap 误报;详情/报告与多窗格真实缺口仍保留检测。
- UniDesk PR #1931commit e20dee77)让 performanceCapture status 只返回有界摘要与 artifact 下钻,避免直接输出大型 CPU profile JSON 污染 stdout。
- UniDesk PR #1932commit 62acb55a)接受移动端渐进披露下“任务树隐藏但已选详情存在”的就绪状态,桌面根页仍要求任务集合。
## 验证
- DOM/分析器相关测试分别通过 19、28、33 项。
- 真实 observer webobs-mrj769vg-13a7c1 采集 60 samples;重分析后 mdtodo-taskref-missing、旧 body/launch 与假 pane gap 均消失。
- 最终分析报告:report.json sha256:27b8401c…,report.md sha256:1da6524d…。
- performanceCapture Artificer 任务 qt_9baa530ce58f4f358c4f562737fe6923 成功完成,修复后状态入口不再触发 control-blocked/status-unreadable。
- 390×844 真机等价浏览器验收确认 MDTODO 任务/正文/报告渐进页签与已选详情可用。
## 结论
误报、状态输出污染和移动端就绪误判均已修复;未新增锁、租约、围栏、第二状态机或旁路入口。
@@ -0,0 +1,22 @@
# R1.13 任务报告
## 策略与实现
- UniDesk PR #1912merge a1cfbf1b)把所有 WebProbe 创建入口统一到 owning YAML 的物理内存门禁。
- 资格只读取 /proc/meminfo 的 MemAvailable,要求严格大于 4 GiB;swap、虚拟内存和总可提交量不参与判定。
- 人工入口不足阈值时阻断,要求先执行受控 memory-pressure GC 并复核;哨兵不足阈值时跳过本 cadence,不创建 observer 或 Chrome。
- GC 识别并清理孤立 Chrome 与 stale observer 进程树,同时保护活跃 observer;终止使用有界 TERM、身份复核和同树残留 KILL。
- WebProbe browser/context 在成功、失败、timeout 与 signal 路径均有有界关闭;status/plan 默认有界披露。
- 该原则已固化到 unidesk-gc skillNC01 swap 调整为 12 GiB,但明确不计入启动资格。
## 运行面实证
- 每次新 observer 前都先执行 gc remote NC01 memory 与 memory-pressure-only plan。
- 本轮启动门禁分别观测到 5.0/5.1/5.2 GiB MemAvailableswapExcluded=truecandidateCount=0,未发现逃逸 Chrome。
- 单个 desktop observer 活跃时 MemAvailable 曾降至 3.6 GiB;期间没有启动第二个浏览器。observer 停止后恢复至约 5 GiB。
- 最终 mobile onboarding observer 自动完成 24 samples,进程为 not-running;回收后 MemAvailable 4.74.9 GiB,候选进程仍为 0。
- 12 GiB swap 已确认生效,所有启动判据仍只使用真实物理 MemAvailable。
## 结论
WebProbe 与哨兵现在在低内存时 fail-closed/skip-next-cadence,并能清理可疑逃逸浏览器;活跃任务不会被 GC 误杀。
@@ -0,0 +1,23 @@
# R1.14 任务报告
## 页面与组件重写
- HWLAB PR #2523 全量重写管理域与 MDTODOmerge commit dbd4af6d4dab。
- 抽取并复用 OperationsWorkspace、EntityIndex、Inspector、ViewModeSwitch、FactPath、AuditTimeline、工业状态轨、权限矩阵、密钥流向、账本/审计时间线与 Markdown/报告 Viewer。
- 授权、密钥、用户、账务均改为高信息密度的集合索引→事实详情→低频动作渐进披露;移除 AC/SK/UR/AB 字母方块式导航,Secret 值始终不进入浏览器。
- MDTODO 在保留三栏信息架构的前提下重写组件树、model/controller 与样式:任务树→正文→报告、Source/File、编辑/创建/删除、报告关闭/调宽/全屏、公共 Workbench Launch、URL 深链与前进后退均由新通用组件实现。
- PR #2524merge commit 35a679aa850e)补齐精确 data-task-ref,保证真实任务引用与浏览器分析合同一致。
- HWPOD 设备、Node 与节点接入复用同一资源工作区:PCB 电路板图标卡片/高密度列表切换、克制动效、node 下挂载 HWPOD、在线/离线/阶段 readiness,以及 Python 单文件版本、大小、SHA 与下载引导。
## 验证与部署
- 源码验证:typecheck 通过;全量前端测试 115/115HWPOD 后端测试 17/17;定向 R6 回归通过。
- 普通 PR→PaC 自动交付 1/1 成功;NC01/v03 Argo 最终 Synced/Healthy,运行面精确来源为 35a679aa850eGitOps commit 42a49f79f09b。
- 1920×1080 实入口覆盖 MDTODO、Projects、授权、密钥、用户、账务、HWPOD devices/nodes/onboarding;所有浏览器命令成功,瞬时 ERR_NETWORK_CHANGED 页面均以 fresh observer 重试通过。
- 390×844 实入口覆盖上述核心管理/HWPOD/MDTODO 页面。设备页与接入页 fresh 重试确认无空白、无会话遗留横向偏移;MDTODO 使用任务/正文/报告渐进页签。
- 接入引导最终截图 hwpods-onboarding-mobile-retry.png 为 69,475 bytesSHA-256 9ac3c0a2227da9633a3143efb1d8a3eea1ce66bed6f785d48ad4f61e74fea876。
- HWPOD 数据源离线时页面显示 typed partial/offline,并禁用依赖在线 HWPOD 的报告操作;未伪造成功态。
## 架构结论
依据 OA 战略 SPEC,当前目标是统一云端硬件研发闭环和开箱即用接入。现有 typed BFF/Cloud API 职责足以承载本轮 read model 与操作,拆微服务会增加部署与一致性成本而无独立伸缩/权限/生命周期收益,因此本轮不拆新微服务;后续只有 HWPOD registry 形成独立容量、权限与发布边界时再评估。
@@ -0,0 +1,23 @@
# R1 任务报告
## 结果
HWLAB v0.3 除 Workbench 主工作流外的 Cloud Web 能力已按 UniDesk OA 战略 SPEC 完成工业化增强,并对用户追加的管理域、MDTODO、WebProbe 资源治理要求完成二次全量重写与真实入口验收。
- 建立统一工业设计系统、资源集合/列表切换、状态轨、Inspector、弹窗、日志、Markdown/JSON/Trace Viewer 与有界异步状态。
- HWPOD 提供 PCB 卡片/列表、设备事实与 blocker;HWPOD Node 管理连接节点及其挂载设备;节点接入提供 Python 单文件下载、版本/SHA 与阶段式 readiness。
- Projects、Dashboard、组织/用户、Keys、Usage/Billing、Settings/Help、管理 Access/Secrets/Users/Billing、Performance/Gate/Skills/OpenCode 等页面统一采用高密度、渐进披露和稳定深链。
- MDTODO 完整重写代码,保留成熟三栏布局思想和报告/Workbench 联动。
- 后端补齐 typed DTO/read model 与 HWPOD 拓扑/节点接入元数据;没有为了形式拆出新微服务。
- WebProbe 物理内存门禁、哨兵 skip、逃逸 Chrome 清理、12 GiB swap、分析器与性能状态输出已完成长期治理。
## 交付链
- HWLAB 主实现 PR #2523、精确任务引用 PR #2524 均已合并并由普通 PaC 自动部署到 NC01/v03。
- 最终运行面为 Synced/Healthy,来源 commit 35a679aa850eGitOps commit 42a49f79f09b。
- UniDesk WebProbe 资源/分析修复 PR #1912#1928#1930#1931#1932 均已合并。
- 桌面与移动真实入口截图、observer samples、分析报告、测试和资源回收证据均已留存。
## 已知降级
当前 HWPOD Project Management 数据源在验收窗口为 offline,因此依赖在线来源的报告编辑按 typed degraded 路径禁用;页面、深链和禁用原因已验证,不以伪数据替代。该外部状态不影响本轮前端/合同交付完成。
+6 -3
View File
@@ -11,7 +11,7 @@
- Workbench 主工作流不在本文件内重写,但共享应用壳变更不得造成其回退。
## R1 [in_progress]
## R1 [completed]
依据 UniDesk OA SPEC 全量重写 HWLAB v0.3 除 Workbench 主工作流外的 Cloud Web 页面:先抽取工业风、高信息密度、渐进披露且符合用户直觉的通用前端模块;MDTODO 保留成熟布局语义后重写;HWPOD/HWPOD Node 重点实现设备卡片/列表、node→HWPOD 管理和 Python 节点接入;必要时补强后端并按职责合理拆分微服务。完整范围、现状证据、战略判断和验收见[任务上下文](./details/hwlab-web-product-experience/R1_Context.md);执行锚点见[HWLAB #2514](https://github.com/pikasTech/HWLAB/issues/2514),完成任务后将详细报告写入[任务报告](./details/hwlab-web-product-experience/R1_Task_Report.md)。
@@ -63,10 +63,13 @@
依赖 R1.4-R1.11,在 NC01/v03 YAML-selected Cloud Web 原入口完成全量验收:覆盖 1920x1080、960x600、约 390px、键盘/焦点/ARIA、reduced-motion、深链刷新/前进后退、卡片/列表语义一致、loading/refreshing/partial/empty/error/ready、大表/长树/长日志性能和权限差异。用 web-probe observe/analyze 留存证据;HWPOD 覆盖一 node 多设备、离线 node、在线无 spec、invalid spec、mismatch、busy、更新和诊断错误,完成任务后将详细报告写入[任务报告](./details/hwlab-web-product-experience/R1.12_Task_Report.md)。
### R1.13 [in_progress]
### R1.13 [completed]
补强 WebProbe 全浏览器入口与 Web 哨兵资源治理(子 issue [pikasTech/unidesk#1907](https://github.com/pikasTech/unidesk/issues/1907)):所有会创建浏览器的人工入口只以 /proc/meminfo 的 MemAvailable 判定真实物理内存,未满足 owning YAML 策略时先阻断并要求受控 GC 后复核;哨兵未满足策略时不创建 observer/Chrome,跳过本轮等待下一 cadence。将阈值、锁、TTL、样本、截图、性能、历史、响应体和终态关闭上限收敛到 owning YAML,保证成功、失败、timeout、signal 全路径关闭 browser/context,并在 NC01/v03 验证 12GiB swap 不计入资格,完成任务后将详细报告写入[任务报告](./details/hwlab-web-product-experience/R1.13_Task_Report.md)。
### R1.14 [in_progress]
#### R1.13.1 [completed]
修复 [UniDesk #1927](https://github.com/pikasTech/unidesk/issues/1927) 的 WebProbe MDTODO 任务引用误报与性能采集状态污染:按语义任务行去重 analyzerperformanceCapture 状态只返回有界摘要和 artifact 下钻,不新增锁、租约、围栏或旁路入口,完成任务后将详细报告写入[任务报告](./details/hwlab-web-product-experience/R1.13.1_Task_Report.md)。
### R1.14 [completed]
依据用户最新反馈全量重写 HWLAB v0.3 管理域导航、授权、密钥、用户、账务与 MDTODO 页面代码(子 issue [pikasTech/HWLAB#2522](https://github.com/pikasTech/HWLAB/issues/2522)):禁止以换色、圆角、字母方块、薄包装组件或局部 CSS 冒充重写;先抽取工业运营台通用工作区、状态轨、实体索引、权限矩阵、密钥流向、审计/账本时间线、真实线性图标与 Markdown/报告 Viewer,再重建五页组件树、状态组合和样式并删除旧私有实现。MDTODO 只保留成熟的有界三栏、任务树→正文→报告、Source/File、inline edit、报告调宽/关闭/全屏和深链思想;保留 typed API、稳定 ID、revision/fingerprint、ACL、Secret 脱敏与公共 Workbench Launch 合同,完成 1920/960/390 原入口验收,完成任务后将详细报告写入[任务报告](./details/hwlab-web-product-experience/R1.14_Task_Report.md)。