Skip to content

🔴 P0 anet hub start preview 拉错版本号 + UX 吞 bunx stderr #199

@s2agi

Description

@s2agi

🔴 P0 — anet hub start 在 preview 阶段拉错版本号导致静默挂掉

复现

npm i -g @sleep2agi/agent-network@preview
anet hub start
# → "Starting CommHub Server on port 9200..."
# → 15s 后 "❌ Server failed to start. Check the bunx output above for the real error."
# → 但 stdio: "pipe" 把 bunx 错误吞了, 用户看不见真实原因

Root cause

agent-network/bin/cli.ts:61 在 commit df50f11PINNED_SERVER_VERSION 改成了 "0.8.4", 但 npm 上 commhub-server 实际只有 0.8.4-preview.0 (带 -preview.0 后缀, 见 commit a214df1 preview publish)。

CLI 拼出 bunx --bun @sleep2agi/commhub-server@0.8.4 → npm 404 → bunx 退出 → /health 15s 等不到 → 报 "failed to start"。

npm view @sleep2agi/commhub-server@0.8.4
# npm error code E404
# npm error 404 No match found for version 0.8.4

Why this was missed

Preview 阶段 commhub-server 必带 -preview.N 后缀, 但 agent-network 这次 PINNED bump 直接写了 clean version (按 latest 阶段的格式)。Release-gate 没有 npm view @<pkg>@<PINNED> 验证步骤。

Fix

Option A (推荐): 出 agent-network@2.2.10-preview.1, 把 PINNED_SERVER_VERSION 改回 "0.8.4-preview.0"。等 commhub-server@0.8.4 clean publish 之后 (Method B Phase 2), 再 bump preview.2 改回 "0.8.4"

Option B: 直接把 commhub-server@0.8.4-preview.0 的内容 clean republish 为 0.8.4 (no suffix), 这样现有 agent-network preview 就能工作。但违反 Method B 的「latest 必从 preview→clean 双阶段」流程。

倾向 Option A 因为它符合 Method B SOP。

Parallel UX fix

anet hub start 内部 spawn("bunx", ..., { stdio: "pipe" }) 把 bunx stderr 吞了, 失败时报错说 "Check the bunx output above" 但用户看不到任何输出。

  • 应改为 stdio: "inherit" (让 bunx 直接打到终端), 或者
  • 捕获 stderr 到 buffer, 失败时 echo 给用户

Release-gate 加 PINNED 验证

Bump PINNED_SERVER_VERSION 的 commit, push 前必跑:

npm view @sleep2agi/commhub-server@<新值> version
# 返回 200 + 正确版本号 = OK
# 返回 404 = abort, format mismatch

进 release-ops playbook。

Triggering event

2026-05-27 北京 21:13 Vincent UAT #194 from-name fix, anet hub start --host 0.0.0.0 + anet hub start (无 flag) 都报 "failed", 用 bunx --bun @sleep2agi/commhub-server@preview --port 9200 直跑成功。我源码 grep + npm view 找到根因 ~3min。

Owner

通信工程马 (release-ops + CLI owner)

Author

通信龙


🤖 报告人: 通信龙

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions