mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-22 18:08:04 +00:00
接上一条腿:桌面版已同步,这次补鸿蒙端缺的运行态面板。
落点按之前的建议放在「设置 → 运行状态」二级明细页最前:明细卡回答「内核有哪些
东西、多少」,运行态回答「现在在干什么」,后者是进这个页面最先想看的。
## 新增
- `common/StageTrail.ets`:阶段轨迹单例(SSE 驱动)。由 ChatSse 的 stage 分支
喂入,面板读取。**不并进 StatusStore**:轨迹来自 SSE 流,与 /status、/kernel
的轮询是两条独立数据源,生命周期与失败模式都不同(SSE 断连不该让状态卡变空,
状态轮询失败也不该清掉轨迹)。七阶段归并成五格,同阶段同一条累加计数,
2.5s 无新事件自动回空闲。
- `components/RuntimePanel.ets`:等大表框面板。
- 四个数字块(排队/中断/栈/子代理)
- 阶段管道:每格 = 阶段名 + 本阶段本轮事件;当前阶段整框点亮
- 中断队列:5 格(L4/L3/L2/L1 + 排队),级别色贯穿框头/槽位/描边;
有积压整框描边点亮;排队队列虚线框区分(另一类别,不是另一优先级)
- 格槽固定可见:深度为 0 时也有形状,不会剩一片空白
## 改动
- `StatusStore`:新增 `/runtime` 采集与 `RuntimeSnapshot`/`RuntimeQueue`
(明细与运行态分开取、分开存);失败保留上一次快照,旧后端无此端点时
面板显示「运行态数据不可用」。
- `ChatSse`:stage 分支先喂轨迹,再管聊天侧角标。
- `SettingsPage`:`stageTrail.init()`。
- `StatusCards`:二级明细顶部渲染 `RuntimePanel()`。
## 关于宽度
模拟器(API 24,1256x2760 ≈ 360vp 宽)上 5 框一行会让「内核独占」这类标签被
挤成省略号,所以按项目已有的 `isWideScreen` 分两支:宽屏 5 框一行,手机 3+2
(补一个占位格保证框宽对齐)。两档都是等大框。
## 验证
- `hvigorw assembleHap` → **BUILD SUCCESSFUL**;`clean` 后全量重建,
本次新增/改动的 6 个文件 **零 ArkTS 告警**。
- 未上机实测:本机签名 profile 无法授予 `ohos.permission.READ_PASTEBOARD`
(module.json5 里已有的一项,非本次改动),`hdc install -r` 报
`error: install failed due to grant request permissions failed`。
没有为此卸载设备上的应用(会丢用户已存的连接配置),也没有改权限列表
(属产品决定)。要上机的话,我可以临时去掉那一条权限打个一次性包验证。