v0.10.8 — Dashboard Servers UI copy fix + polish chain
v0.10.8 — Dashboard Servers panel UI copy fix (Vincent 5560)
Patch ship: Dashboard 服务器面板修正 —
pending hub ≥ 0.8.2-preview误导文案改为not reported by hub,配data-server-*-missing="true"Playwright 钩子。
Released versions (npm latest tag):
@sleep2agi/agent-network@2.2.6(unchanged, v0.10.7)@sleep2agi/agent-node@2.4.2(unchanged)@sleep2agi/commhub-server@0.8.2(unchanged)@sleep2agi/agent-network-dashboard@0.5.3← bumped (UI copy + Playwright attrs)
Install (first-time users)
npm install -g @sleep2agi/agent-network
anet hub start
anet hub dashboard # 看 Servers Drawer,文案精准反映 hub 是否上报 agent rollup / diskUpgrade (existing users)
npm install -g @sleep2agi/agent-network-dashboard@latest
# 或如果已经在 2.2.5+:
anet upgrade # 自动 detached spawn 升 4 包Fixed in this patch
#157 — Dashboard Servers panel UI 文案修正 (RC#1)
Vincent 5560 实测 catch (附 dashboard 截图 — Servers 面板对每台 hub 显示 "agent rollup pending hub ≥ 0.8.2-preview" / "disk metric pending hub ≥ 0.8.2-preview",但生产 hub 已经全部 ≥ 0.8.2,文案过时且误导,让 Vincent 以为版本控制台数据完全错误)。
Root cause #1 (本 patch): ServersDrawer UI 早期为 0.8.2 升级 window 而埋的占位文字。0.8.2 早已上线,但占位文字未删,对 ≥ 0.8.2 hub 仍显示 "pending",误导用户认为 hub 数据缺失。
Root cause #2 (留 v0.10.9): 同 hostname 多实例时 dedupe 缺失,可能 double-count 服务器。N站牛 fix backed up at /tmp/n站牛-fix2-dedupe-v0.10.9.patch。
Root cause #3 (留 v0.11.0): status=offline 与 telemetry 报告 mismatch(telemetry 仍在上报但 SSE last_seen 超时)。
Implementation (app/components/ServersDrawer.tsx):
// Before — 文案过时
<div ... >agent rollup pending hub ≥ 0.8.2-preview</div>
<div ... >disk metric pending hub ≥ 0.8.2-preview</div>
// After — 精准 + Playwright 钩子
<div ... data-server-agents-missing="true">agent rollup not reported by hub</div>
<div ... data-server-disk-missing="true">disk metric not reported by hub</div>文案精准反映"该 hub 此刻未上报"语义,不再 imply 版本不够。data-server-*-missing Playwright 钩子供下一轮 e2e 验证 hub-side telemetry coverage。
Also folded in (polish-cycle, purely additive)
R502 TopoGraph density tier (N站马 commit 3f73810, 0.5.3-preview.16) — Canvas state attr data-topo-fleet-density-tier ∈ {empty, sparse, normal, dense, very-dense} surfaces 12th observable testing surface. Tier boundaries (sparse 1-3 / normal 4-15 / dense 16-30 / very-dense 31+) align with R109 dense-layout collapse gate. 纯 additive,无 UX 改变,配 R469 numeric counts 提供 e2e selector 完整 canvas state snapshot 能力。
Quality gates
| Gate | Owner | Method | Result |
|---|---|---|---|
| Source-grep verify | 通信龙 | grep -rh "not reported by hub" 命中 + 旧文案只在 JSDoc 注释 |
✅ PASS |
| npm publish preview | 通信工程马 | 0.5.3-preview.15 LIVE on registry |
✅ PASS |
| 通信龙 docker install 实测 | 通信龙 | docker run --rm node:24-slim sh -c "npm install -g @...@0.5.3-preview.15 && grep ..." |
✅ PASS |
| Vincent 视觉 ack | Vincent | dashboard 截图确认 | ⏳ pending |
| Method B 2-phase promote | 通信工程马 | publish 0.5.3 → 60s CDN → dist-tag latest → docker smoke | ⏳ pending |
Cross-version compat
| Path | Result |
|---|---|
| 老 0.5.2 dashboard | |
| 0.5.3+ dashboard | ✅ 新文案 + Playwright 钩子 |
| agent-network / agent-node / commhub-server | ✅ 不变, 0 schema change |
| Playwright e2e | ✅ data-server-agents-missing / data-server-disk-missing selectors 可用 |
Cycle 13 stats
- 18 cumulative
@latestpublishes (v0.9.0 → v0.10.8): 0 split-brain / 0 rollback / 0 retry - v0.10.x today (5月17日): v0.10.1-8 = 8 ships in ~14 hours (audit-first cadence, 历史最高单日 patch 密度)
- 12 Vincent telegram catch today (5443→5575): 全闭环 (R697 + v0.10.3-8 release + 红线 SOP + #157 P0 + #158 LOCKED + /goal cron)
Roadmap (per #158 LOCKED)
| 版本 | scope | ETA |
|---|---|---|
| v0.10.9 | RC#2 hostname dedupe + #146 rename bug | next |
| v0.11.0 | RC#3 status=offline vs telemetry mismatch + #120 codex Mobile 调研 | after v0.10.9 |
Lessons saved this cycle
- 沿用
feedback_dist_obfuscated_use_source_grep— JSX 文案 verify 在app/components/ServersDrawer.tsxsource level, 不依赖.next/serverbundled output - v0.10.x patch density 单日 8 patch 验证 audit-first cadence 可持续
Author: 通信龙 (lead, source-grep gate + Round 16 实测 verify) · N站马 (#157 Fix #1 实施 + git push d83e077+69f03e3) · 通信工程马 (Method B promote standby) · 通信文档马 (R704 docs sync standby) · Vincent (5560 catch + #158 LOCKED directive)