Skip to content

anet hub dashboard 不分通道一律拉 @preview:稳定版 CLI 起出来的是 preview UI,而紧邻的注释写着 channel-matched #866

Description

@vansin

结论

anet hub dashboard 不分通道,一律拉 @preview 的 Dashboard
所以一个装了稳定版 CLI(当前 latest = 2.2.21)的用户,起出来的是
@sleep2agi/agent-network-dashboard@preview(当前 0.6.3-preview.56)。

而紧挨着这段代码的注释写的是相反的意思。

证据(origin/main,只读)

agent-network/bin/cli.ts:1484:

function dashboardReleaseTag(): string {
  const envOverride = process.env.ANET_DASHBOARD_VERSION;
  if (envOverride) return envOverride;
  return "preview";        // ← 无条件
}

它是 tag唯一来源,全文件只有一处赋值、没有别处覆盖:

6107:    const tag = dashboardReleaseTag();
6188:    : spawn("npx", ["-y", `@sleep2agi/agent-network-dashboard@${tag}`], …)

6176-6177 的注释是:

// Default stays channel-matched (see #61 + dashboardReleaseTag). A global
// binary is used only after the explicit ANET_DASHBOARD_LOCAL=1 opt-in.

「channel-matched」与代码不符 —— 代码里没有任何读取 CLI 自身版本/通道的逻辑。

当前各通道的实际版本(实测)

@sleep2agi/agent-network            latest 2.2.21          preview 2.3.0-preview.39
@sleep2agi/commhub-server           latest 0.8.8           preview 0.9.0-preview.29
@sleep2agi/agent-network-dashboard  latest 0.6.0(06-10)   preview 0.6.3-preview.56(08-12)

所以默认组合是:稳定 CLI + 稳定 hub + preview Dashboard
latest 的 Dashboard 0.6.0 在这条路径上几乎永远不会被用到

为什么这值得修(或至少值得写明)

  1. 注释在说谎,下一个人读它会以为通道是匹配的,不会去查;
  2. 用户拿到的是 preview UI,但他并不知道 —— guide/dashboard.md:283 有一节
    「Preview 通道(下一个 stable WIP)」把 preview 描述成需要显式选择的东西,
    而实际上默认就是它;
  3. ANET_DASHBOARD_VERSION 这个唯一的逃生口在文档里每个文件只出现 1 次
    (deploy/npm.md / guide/dashboard.md 各 1 处,中英各一),不容易被发现。

建议(三选一,都不大)

  • 要么改代码:让 tag 真的跟随 CLI 自身通道(注释描述的行为);
  • 要么改注释:直接写「默认固定 preview,ANET_DASHBOARD_VERSION 可覆盖」,
    并在 guide/dashboard.md 那节说明"默认就是 preview,不需要你切";
  • 要么钉住:如果希望稳定 CLI 配稳定 UI,那就让 latest 通道返回 latest

我倾向第二个 —— 现状(默认 preview)可能是有意为之(Dashboard 的 stable 落后两个月),
那么问题就只是注释和文档没说实话,改字比改行为安全。

我没做的事

没有真起 Dashboard 去验(那会占端口、起服务)。
上述结论全部来自 origin/main 的源码;已发布的 2.2.21 里这段逻辑是否相同,
我没有验 —— 它的 dist 是字符串表混淆的,grep 不能证明不存在
(这一点我在 #777 里踩过,见那条更正)。要确认 2.2.21 的实际行为,
需要在隔离环境里真跑一次 anet hub dashboard 并看它打印的
[anet] spawning dashboard @<tag> 那一行。

(只读:git show origin/main:... + npm view;未起服务、未改代码、未碰生产。)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions