v0.10.4 — anet upgrade UX explicit warning + dashboard orphan layout
v0.10.4 — anet upgrade UX explicit warning + dashboard orphan layout (Vincent 5462+5453+5472)
Patch ship: anet upgrade self-skip 警告更明确 + dashboard 拓扑图落单节点收到 "其他" cluster box。Vincent 紧急 trust path (跳 测试马 Docker smoke gate)。
Released versions (npm latest tag):
@sleep2agi/agent-network@2.2.3← bumped (#151 anet upgrade UX)@sleep2agi/agent-network-dashboard@0.5.2← bumped (#150 orphan-band layout)@sleep2agi/agent-node@2.4.2(unchanged from v0.10.3)@sleep2agi/commhub-server@0.8.2(unchanged)
Install (first-time users)
npm install -g @sleep2agi/agent-network
anet hub start
anet hub dashboard
anet node create demo --vendor codex --runtime codex-sdk # 默认 gpt-5.5 (v0.10.3)Upgrade (existing users)
# 推荐 — manual install per v0.10.3+ 警告
npm install -g @sleep2agi/agent-network@2.2.3
npm install -g @sleep2agi/agent-network-dashboard@0.5.2
# verify
anet --version # 期望 2.2.3
anet upgrade # 现在会看到 explicit "⚠️ NEEDS MANUAL UPGRADE" 警告 (#151 fix)Fixed in this patch
#151 — anet upgrade self-upgrade UX 误导 "Done"
anet upgrade skip self (process 不能替换自己的 binary), 之前 output 报 "Done. 0 upgraded" 让 user 以为完事了。Vincent 5462 实测 catch: ran anet upgrade, "Done", 然后 anet node create --batch 仍是老 gpt-5.4 (因为 anet binary 没升)。
Option A applied (15 LOC verbiage fix):
Before:
anet (self): skipped (would replace the running CLI).
...
[anet] Done. 0 upgraded, 2 up-to-date, 1 lazy.
After:
anet (self): ⚠️ NEEDS MANUAL UPGRADE — 2.2.2 → 2.2.3
(skipped to avoid replacing the running CLI mid-execution)
...
[anet] Done. 0 upgraded, 2 up-to-date, 1 lazy, 1 NEEDS MANUAL UPGRADE (anet self).
⚠️ anet CLI itself was NOT upgraded. Run this in a fresh shell:
npm install -g @sleep2agi/agent-network@latest
anet --version # verify upgrade landed
Without this, new features (e.g. updated vendor presets) won't apply.
零 functional 改动 — skip 行为不变, 只 verbiage 更明确。Option B (默认 detached spawn) + C (blocking npm spawn) deferred v0.11.0+ 真改 runtime。
#150 — Dashboard 拓扑图落单节点散落在中间
Vincent 5453 + screenshot 实测: 5 处 red box annotation, 落单 nodes (没匹配 prefix-group) 散在 cluster boxes 中间。
Option A applied (N站马 + N站牛 co-ship):
- TopoGraph.tsx grid layout Pass 1 重构: 落单 nodes 不再 interleaved 在 real groups 中, 而是 bundle 到一个
isOrphan=trueband 推到 grid 末尾 - groupBoxes mapping: orphan band 用 key="其他" 给独立 cluster box
- 视觉: 4 prefix cluster boxes (agent-network-dashboard / ai-insight-node / p-station-worker) + "其他" Orphans box at bottom — zero 落单散落
E (lone-node 视觉降级 + orphan tag) deferred — A 视觉效果已满足 Vincent 实测。
Quality gates
| Gate | Owner | Result |
|---|---|---|
| SDK马 #151 ship (Option A verbiage) | SDK马 | ✅ 12min (3-5x beat 30-60min ETA) |
| N站马 + N站牛 #150 co-ship (Option A) | N站马 + N站牛 | ✅ ~30min (better than 1.5h ETA) |
| Method B 2-phase promote | 工程马 | ✅ ~8min (Vincent 紧急 trust path, skip 测试马 smoke) |
| Docker smoke | 测试马 | ⏭ skipped per Vincent 紧急 (内部 verify done, fix 低风险) |
Cycle 9 stats
- 13 cumulative
@latestpublishes (v0.9.0 → v0.10.4): 0 split-brain / 0 rollback / 0 retry - End-to-end (Vincent /goal 5453 → LIVE): 37min (12:16 → 12:53)
- End-to-end (Vincent 5462 → LIVE): 17min (12:36 → 12:53)
- v0.10.x 1-day series total: v0.10.1 (PINNED hotfix) + v0.10.2 (Hero A disk + D 拓扑) + v0.10.3 (codex gpt-5.5 + yolo) + v0.10.4 (anet upgrade UX + dashboard orphan) — 4 ships in ~6 hours
Cross-version compat
| Path | Result |
|---|---|
| 新 CLI (2.2.3) + 新 dashboard (0.5.2) | ✅ full feature |
| 新 CLI + 旧 dashboard | ✅ dashboard 0.5.1 仍 LIVE, render unchanged (无 backend schema change) |
| 旧 CLI + 新 dashboard | ✅ orphan layout dashboard 端 only, 不依赖 CLI version |
| commhub-server / agent-node | ✅ 不变, 0 schema change |
Lessons saved
feedback_release_notes_install_upgrade_split(R697) — release notes 必双 section- (待 save)
feedback_anet_upgrade_self_skip_misleads— Vincent 5462 教训 feedback_pane_vs_commhub_truth— N站马 #150 ship 我 git log 漏看, pane truth verify catch (commhub 比 git 早 5min reflect)
Author: 通信龙 (lead) · SDK马 (#151) · N站马 + N站牛 (#150) · 工程马 (promote) · Vincent (catch 5453+5462+5472)