Skip to content

docs: 英文 troubleshooting 把 latest 的现状写成了历史;并更正 RELEASE-SOP 一句不成立的话 - #807

Merged
vansin merged 5 commits into
mainfrom
docs/en-latest-channel-parity
Aug 18, 2026
Merged

docs: 英文 troubleshooting 把 latest 的现状写成了历史;并更正 RELEASE-SOP 一句不成立的话#807
vansin merged 5 commits into
mainfrom
docs/en-latest-channel-parity

Conversation

@vansin

@vansin vansin commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

docs: 英文 troubleshooting 补上 latest 信道警告;更正 RELEASE-SOP 里一句现在不成立的话

1. 英文页把「现在时」写成了「历史」

中文 troubleshooting 有(#773 加的):

🔴 latest 线(当前 2.2.21)还没有这道 preflight —— 那里仍是裸崩
spawn bunx ENOENT + Node 堆栈。所以下面这个字样对 latest 用户是现在时,不是历史。

英文页一次都没提 latest,而且写的是:

spawn bunx ENOENT is the pre-#235 behaviour — the string is kept in this
heading so people arriving from older versions still find this section.

「pre-#235」「people arriving from older versions」都在告诉英文读者:这是历史。
但 npm i -g 默认装的就是 latest,对他们是现在时。getting-started 和
clean-server 的 zh/en 都对齐了,只有 troubleshooting 漏了 —— 这是我 #773 的遗漏。

2. RELEASE-SOP 有一句现在不成立的话

原文(R367 那段)结尾:「现在 没有 docs 还 pin npm 版本号了。」

今天实测不成立:docs-site 下 7 个文件、13 行钉着当前版本号。

但要分清两类,否则会误删:

  • R367 清掉的是安装命令里的版本 pin(npm i -g pkg@2.1.7 那种)—— 那类确实清干净了;
  • 剩下的是限定信道的行为断言(「在 latest 2.2.21 上你会看到裸崩」)——
    这类去掉版本号就失去意义,不该清,但一发版就立刻变假,
    而且是危险的假:会告诉用户一道已经存在的安全 preflight 不存在。

所以把那句话改准,并列出逐次发版必须重新核对的 7 个文件位置。
核对方法写明不是 grep 而是真机装。

证据

干净容器(node:22 + @sleep2agi/agent-network@latest,不装 bun):

anet v2.2.21
anet hub start →
syscall: 'spawn bunx'
code: 'ENOENT'
spawnargs: [ '--bun', '@sleep2agi/commhub-server@0.8.8' ]
+ Node.js v22.23.2 堆栈

与文档写的「latest 裸崩」逐字相符,所以这些断言今天全部成立 —— 发版后就不一定。

另核:anet.sh 线上内容与 origin/main 的 docs-site 一致(npm i -g bun 与
bun.sh/install 各出现 1 次,与源码同),快速开始页 33 条命令的动词在
latest 2.2.21 的 --help 里全部存在,且 bun 安装步骤排在 anet hub start 之前。
这三项没有发现缺陷

## 1. 英文页把「现在时」写成了「历史」

中文 troubleshooting 有(#773 加的):

  🔴 latest 线(当前 2.2.21)还没有这道 preflight —— 那里仍是裸崩
     spawn bunx ENOENT + Node 堆栈。所以下面这个字样对 latest 用户是现在时,不是历史。

英文页**一次都没提 latest**,而且写的是:

  `spawn bunx ENOENT` is the **pre-#235** behaviour — the string is kept in this
  heading so people arriving from older versions still find this section.

「pre-#235」「people arriving from older versions」都在告诉英文读者:这是历史。
**但 npm i -g 默认装的就是 latest**,对他们是现在时。getting-started 和
clean-server 的 zh/en 都对齐了,只有 troubleshooting 漏了 —— 这是我 #773 的遗漏。

## 2. RELEASE-SOP 有一句现在不成立的话

原文(R367 那段)结尾:「现在 **没有 docs 还 pin npm 版本号**了。」

今天实测不成立:docs-site 下 7 个文件、13 行钉着当前版本号。

但要分清两类,否则会误删:
- R367 清掉的是**安装命令里的版本 pin**(npm i -g pkg@2.1.7 那种)—— 那类确实清干净了;
- 剩下的是**限定信道的行为断言**(「在 latest 2.2.21 上你会看到裸崩」)——
  这类**去掉版本号就失去意义**,不该清,但**一发版就立刻变假**,
  而且是危险的假:会告诉用户一道已经存在的安全 preflight 不存在。

所以把那句话改准,并列出逐次发版必须重新核对的 7 个文件位置。
核对方法写明不是 grep 而是真机装。

## 证据

干净容器(node:22 + @sleep2agi/agent-network@latest,不装 bun):

  anet v2.2.21
  anet hub start →
    syscall: 'spawn bunx'
    code: 'ENOENT'
    spawnargs: [ '--bun', '@sleep2agi/commhub-server@0.8.8' ]
    + Node.js v22.23.2 堆栈

与文档写的「latest 裸崩」逐字相符,所以这些断言**今天全部成立** —— 发版后就不一定。

另核:anet.sh 线上内容与 origin/main 的 docs-site 一致(npm i -g bun 与
bun.sh/install 各出现 1 次,与源码同),快速开始页 33 条命令的动词在
latest 2.2.21 的 --help 里全部存在,且 bun 安装步骤排在 anet hub start 之前。
这三项**没有发现缺陷**。

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bfb32e0948

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/RELEASE-SOP.md Outdated
> 所以 R367 没有、也不该把它们清掉。代价是:**latest 或 preview 一发布,它们立刻变成假的**,
> 而且是危险的那种假 —— 会告诉用户一道已经存在的安全 preflight 不存在。
>
> 逐次发版必须重新核对的位置(2026-08-13 实测,共 7 个文件):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include every release-sensitive document in the checklist

When an agent-network preview containing the preview.29 fix is promoted to latest, this new “must recheck on every release” list will not cover docs-site/docs/{,en/}guide/windows.md:102, so those pages can continue claiming that the fix exists only on preview and that a latest patch is pending; a repository-wide git grep also finds unlisted current-channel assertions in both dashboard guides. Following this supposedly exhaustive table can therefore still publish stale upgrade and troubleshooting guidance; include all release-sensitive channel assertions (and correct the count, since the final row alone represents two files).

AGENTS.md reference: AGENTS.md:L23-L24

Useful? React with 👍 / 👎.

Comment thread docs/RELEASE-SOP.md Outdated
Comment on lines +51 to +53
> 核对方法不是 grep,是**真机装**:`npm i -g @sleep2agi/agent-network@latest` 进干净容器,
> 不装 bun 跑一次 `anet hub start`,看它到底裸崩还是被拦。今天实测 `2.2.21` 仍是裸崩
> (`syscall: 'spawn bunx'`, `code: 'ENOENT'`),所以上述断言现在全部成立 —— 发版后就不一定了。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Validate the preview channel during preview releases

For a preview release, this prescribed verification installs only @latest, yet the checklist also asserts that 2.3.0-preview.x performs the preflight and concludes that all listed assertions are valid. A regression or behavior change in the newly published preview would therefore pass this procedure entirely untested while the documentation retains the old claim; install and exercise both relevant dist-tags in isolated containers before making that conclusion.

AGENTS.md reference: AGENTS.md:L28-L28

Useful? React with 👍 / 👎.

@vansin

vansin commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

补上正文里「今天实测」缺的那一半:可复现的命令与输出

正文写了「今天实测 2.2.21 仍是裸崩」,但没有附命令和输出。这类句子在本仓已经被判过一次(#810 上:「仅作者声明,无原始日志 → 不得当独立复验证据」),那条判得对,所以这里补上。

先说清楚这不是什么: 我和本 PR 是同一作者侧,所以下面不是独立复核。它的作用是把一句断言变成任何人都能在两分钟内证伪的东西。

复现方法(干净容器,装完断网跑)

docker build -t probe - <<'EOF'
FROM node:22-bookworm-slim
RUN npm i -g @sleep2agi/agent-network@latest
EOF
docker run --rm --network none probe sh -c 'anet hub start; echo exit=$?'

--network none 是刻意的:保证探针不接触任何外部服务。(不加这条会踩到本仓记过的坑 —— 探针默认去连生产 hub,短路成 already running,被测分支根本没执行。)

2026-08-13 实际输出

@latest2.2.21:

  Starting CommHub Server on port 9200 (bind 127.0.0.1)...
node:events:497
      throw er; // Unhandled 'error' event
Error: spawn bunx ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:285:19)
  errno: -2, code: 'ENOENT', syscall: 'spawn bunx', path: 'bunx'
exit=1

同一容器 @preview2.3.0-preview.39:

  ❌ anet hub start requires the Bun runtime (commhub-server is bun-only —
     uses Bun.serve + bun:sqlite, no Node fallback).
exit=1

一处正文可以更准的地方

正文英文侧写 preview「exit with code 1」,并把 latest 描述成「bare Error: spawn bunx ENOENT plus a Node stack trace」。实测两条通道的退出码相同,都是 1

所以差别不在退出码,纯在可读性 —— 脚本包装(|| exit)在两边行为一致。正文没说错(它只对 preview 声明了 exit 1),但读者容易顺势以为 latest 是 exit 0 或没有退出码语义。加半句「两边都 exit 1,差别只在提示」会更难被误读。

顺带抽验了正文 RELEASE-SOP 表里钉的行号

「行号 pin 会漂到无关代码」是 #810 刚踩过的,所以按 origin/main 抽验了 5 处:

文件 结果
guide/getting-started.md 19 / 20 ✅ 命中 latest 2.2.21 裸崩 / preview 被拦
troubleshooting.md 29 / 37 ✅ 命中 preview 有 preflight / latest 还没有
guide/versioning.md 11 ✅ 命中 anet v2.2.21

5/5 准确,表可用。


另外提一句流程上的事:本 PR 自 01:38 创建至今零条审查评论,是我这批里唯一一条完全没被碰过的。不是催,只是它可能在派发时被漏掉了。

@vansin

vansin commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

清单是对的,但不完整:发布站 7 个之外,还有 4 个内部活文档也是现在时

正文那份「逐次发版必须重新核对」的表列了 7 个文件。7 个全部准确(上一条已抽验行号 5/5 命中)。但清单不全比没有更危险 —— 它给人"已覆盖"的错觉,所以我把范围验了一遍。

怎么筛的

origin/main 上含 2.2.21 的文件共 17 个。但提及次数只能找出候选,不能判定缺陷 —— 其中多数是该留旧版本号的归档(发版计划快照、v2.3.0 发布说明、冻结的测试证据、版本目录)。逐个读上下文分辨"现在时断言" vs "历史快照":

17 个提及
 ├─ 7 个在 docs-site/(发布站)  ← 正文清单已覆盖,准确
 ├─ 6 个是真归档              ← 应当保留旧版本号,不要动
 └─ 4 个是内部活文档的现在时断言 ← 清单漏了

漏掉的 4 个

文件 现在时断言
docs/plans/release-plan.md 11 **latest**(稳定) | 2.2.21 | 2.4.13 | ⚠ 带 Windows 跨盘崩溃
docs/plans/stability-tiers.md 16 / 43 「已发布 latest 2.2.21 真机验证」/「latest 2.2.21 跨盘仍崩,等 2.2.22」
docs/release/versioning-and-compatibility.md 43 latest(稳定线) | 2.2.21 | 2.4.13 | 0.8.8 | ✅ 旧稳定
docs/version/README.md 11 v0.10.15 | **当前 stable** | 2.2.21 | 2.4.13 | 0.8.8

这 4 个失效的方向和发布站那 7 个相反,而且更要紧

  • 发布站那 7 个变假时,是告诉用户「一道已经存在的安全 preflight 不存在」;
  • 这 4 个变假时,是告诉团队「latest 还坏着」——例如 stability-tiers.md:43 那句「latest 2.2.21 跨盘仍崩,等 2.2.22」。一旦 latest 升上去,这句就成了假的,而它恰恰是做晋级决策时会去读的那类文档

也就是说:它们在最需要准确的那一刻变得不准确。 发布站的错会误导用户;这 4 个的错会误导下一次发版决策本身。

判为归档、不应列入清单的 6 个

docs/release/v2.3.0/plan.mddocs/release/v2.3.0/RELEASE-NOTES.mddocs/version/0.10.16/README.mddocs/version/0.11.0/feature-audit.md(带 2026-07-16 走查日期)、docs/tests/report-onboarding.txtdocs/tests/report-grok-tui-doc-correction-2026-07-31.txt

这些必须保留 2.2.21 —— 它们记录的是当时的事实。把它们一起塞进清单会造成每次发版都去改历史记录,那是另一种错。

建议

表扩到 11 个文件,并按失效方向分两组(面向用户 / 面向发版决策),再加一句:docs/ 下的归档不在此列,发版时不要动。

冻结中未改分支,记在这里等收口。

@vansin

vansin commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

更正归属:上一条那个「清单不完整」的发现,自动审查在 5 小时前就提出了

我上一条把「清单漏了 4 个内部活文档」当作自己的发现写出来。这不准确。

本 PR 的行内审查里已有一条(docs/RELEASE-SOP.md:39,2026-08-13 01:42):

Include every release-sensitive document in the checklist

我是在 06:5x 才用手工筛法得到同一结论的。先提出的不是我。

我为什么没看到

我一直用 gh pr view --json comments 判断一条 PR 有没有被审。那个字段是 issue 级评论,不含行内审查评论 —— 后者在 repos/{owner}/{repo}/pulls/{n}/comments

结果是:本 PR 显示"评论 = 0",我据此在多轮汇报里说它"零审查、整个会话没人碰过"。这个判断是错的,而且错在我量错了字段。

全量重查后,我这批 11 条 PR 上共有 36 条行内审查评论,其中 19 条 P1,全部未处理。本 PR 的 2 条只是其中一小部分。

这件事本身值得记

这跟我这几轮反复在查的是同一个毛病,只是这次发生在我自己身上:

  • 我查过「分母和判据同源 → 只能证明自洽」;
  • 我查过「扫描器没校准 → 给你一个很有说服力的错数字」;
  • 这次是「查询范围没覆盖目标对象 → 得到一个语法正确、语义为空的 0」。

「评论 = 0」这个 0,不是"没人审",是"我没查到审在哪"。 和之前那个 find 返回 0 的坑完全同构 —— 0 可能是"没有",也可能是"根本没找对地方"。

接下来

上一条那份 4 个漏项的清单内容本身经得起追问(我逐个读了上下文、区分了发布面与归档面),结论保留,但功劳归属更正,并且它现在有了两个独立来源。

我会把 11 条 PR 上那 36 条(尤其 19 条 P1)逐条过一遍,不再只看 issue 级评论。

审查(通信狗 advisory,MAJOR)两条,都成立:

① 分母数错:表里最后一行把 zh/en 的 versioning 合成一行,按路径应为 8。
   分母数错会漏核 —— 已拆成两行,并写明「8 行 = 8 个文件,不要合并数」。

② 证据越权(更要紧):我在文末用一次「latest 2.2.21 + 无 bun +
   anet hub start」的探针,宣称「上述断言现在全部成立」。
   那次探针只证明了 ENOENT/preflight 这一族。它从没跑过 `anet -v`,
   而 versioning 那条断言正是关于 `anet -v` 顶行输出的;安装命令里的
   版本 pin 同样没验。一次运行只能证明它实际执行过的那条路径。

改成按断言分列核法并逐行标注状态:第一行「已实测」,另两行明确
「未实测」。同时钉上当前 preview 坐标(0.9.0-preview.29),并说明它
每次发版都变、重核以 npm dist-tag 为准。

这与本 PR 要修的是同一类:原文把 latest 的现状写成了历史(时态错),
我在修它时把一次探针的结论扩到了整张表(范围错)—— 都是陈述超出了
证据实际覆盖的范围。
@vansin

vansin commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

MAJOR 成立,已修(bfb32e09 → 39283688)。另:我在修的过程中把这个文件推坏过一次,已回退。

先说那次事故,因为它比修复本身更该被看见。

⚠️ 事故:一次 str.replace 把 355 行的文件变成 158,627 行,并推上了远端

我用 Python 做替换,锚点是 s[s.index("…"):s.index(":::")] —— ::: 取到的是全文第一个,切出来的片段极短且多处重复,于是 replace 全局命中了几百次。

推坏时  docs/RELEASE-SOP.md = 158,627 行
原始    docs/RELEASE-SOP.md = 355 行

--force-with-lease 回退到 bfb32e09,远端确认已还原。之后改用逐条精确替换(强制唯一匹配),并在提交前做体检:

文件行数 = 367 (原 355,+12 合理)
「证据越权」出现 = 1
「8 个路径」  出现 = 1
表格路径行   = 8

教训很直白:批量文本替换没有唯一性约束时,不能凭"我知道自己要替什么"就跑。 我这两天一直在别人和自己的产出里查"判据没校准",而这次是替换锚点没校准,后果比读错数字严重得多 —— 它直接改坏了产物。


回到审查本身,两条都成立

① 分母数错:7 行,但 8 个路径

表的最后一行是 docs-site/docs/guide/versioning.md + en/ 对应 —— 一行两个文件。已拆开,并写明「8 行 = 8 个文件,不要合并数」。

分母数错的后果很具体:照着"7 个"去核,会漏掉一个英文页。

② 证据越权 —— 这条更要紧

我在文末写的是:

今天实测 2.2.21 仍是裸崩(syscall: 'spawn bunx', code: 'ENOENT'),所以上述断言现在全部成立

那次探针跑的是 anet hub start。它从没跑过 anet -v,而表里 versioning 那条断言正是关于 anet -v 顶行输出的;安装命令里的版本 pin 同样没验。

已改成按断言分列核法,并逐行标注实测状态:

断言 状态
latest 裸崩 / preview 被拦 已实测
anet -v 顶行示例 未实测
安装命令的版本 pin 未实测

并加了一句:一次运行只能证明它实际执行过的那条路径。

顺带钉上当前 preview 坐标(0.9.0-preview.29),并写明它每次发版都变、重核以 npm dist-tag 实际值为准。


这条与本 PR 要修的是同一类

  • 原文:把 latest 的现状写成了历史 —— 时态错;
  • 我的版本:把一次探针的结论扩到整张表 —— 范围错。

两者都是「陈述超出了证据实际覆盖的范围」。我在修一个越界的陈述时,写了另一个越界的陈述。

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3928368861

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/RELEASE-SOP.md Outdated
Comment on lines +39 to +40
> 逐次发版必须重新核对的位置(**8 个路径**,下表 8 行 = 8 个文件 ——
> 不要把 zh/en 合成一行数,分母数错会漏核):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add omitted release-sensitive docs to the checklist

In the corrected version, the new “8 个路径” claim remains incomplete: a repo-wide rg still finds current-channel assertions in docs-site/docs/{,en/}guide/windows.md:102 (preview .29 fixed, latest patch pending) and docs-site/docs/{,en/}guide/dashboard.md:313-314 (preview current, latest stable 2.2.x). When the Windows fix reaches latest or preview is promoted, maintainers following this purported complete list will not recheck those four pages and can publish stale channel guidance; include them and adjust the count.

AGENTS.md reference: AGENTS.md:L24-L24

Useful? React with 👍 / 👎.

Comment thread docs/RELEASE-SOP.md Outdated
> 🔴 **那次探针只证明了第一行。** 把它当成「整张表都成立」是证据越权 ——
> **一次运行只能证明它实际执行过的那条路径。**
>
> 当前坐标(便于下次比对):latest `2.2.21`、preview `0.9.0-preview.29`(commhub-server)。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Track the CLI preview coordinate used by the preflight

The verification above installs an @sleep2agi/agent-network channel and checks a preflight implemented in agent-network/bin/cli.ts:5736-5746, but this coordinate records the unrelated commhub-server preview version (the server pin used only after the preflight). On the next CLI preview release, a maintainer using this coordinate can compare the wrong dist-tag and leave the 2.3.0-preview.x behavior assertions stale; record the agent-network preview coordinate here, separating the server pin if it also needs tracking.

AGENTS.md reference: AGENTS.md:L24-L24

Useful? React with 👍 / 👎.

Comment thread docs/RELEASE-SOP.md
>
> | 断言 | 核法 | 2026-08-13 状态 |
> |---|---|---|
> | latest 裸崩 / preview 被 preflight 拦 | 干净容器装对应通道、**不装 bun**,跑 `anet hub start` | **已实测**:latest `2.2.21` 仍裸崩(`syscall: 'spawn bunx'`, `code: 'ENOENT'`);preview 被拦 |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Save the claimed channel-test evidence

This row marks both the installed latest and installed preview channel probes as tested, but the commit adds no corresponding report under docs/tests/: report-onboarding.txt covers only stable 2.2.21, while report-test766-bunx-preflight.txt explicitly exercises repository source with a fixture and disclaims npm publication or registry-install coverage. Without the actual Docker command, resolved preview package version, and output, this new 已实测 claim cannot be audited or repeated during the next release; save the channel probe result as required rather than treating an unrecorded run as release evidence.

AGENTS.md reference: AGENTS.md:L7-L8

Useful? React with 👍 / 👎.

三条审查意见,都成立:

① 清单仍不完整。全仓还有四页有现在时信道断言:
   docs-site/docs/{,en/}guide/windows.md:102(跨盘 anet --version 崩溃是哪个通道的现状)
   docs-site/docs/{,en/}guide/dashboard.md:313/328(anet -v 应显示 2.3.0-preview.N,
   preview 不自动 promote)
   已加进表,分母 8 → 12。并写明这张表的分母被修正过两次(7→8→12),
   加新信道断言时要同时加进表 —— 否则下一个人照着一份"看起来完整"的清单
   去核,漏掉的那几页永远不会被发现。

② 坐标记错了包。被核的 preflight 实现在 agent-network/bin/cli.ts,而我钉的是
   commhub-server 的 dist-tag。下次比对会比错对象。已改成两行分列,并写明
   哪个是本表断言的坐标、哪个不是。

③ 「已实测」没有证据制品。补 docs/tests/report-latest-channel-preflight.txt:
   复现命令(含为什么必须 --network none)、两个通道的原始输出、退出码,
   以及明确写出它不覆盖 anet -v 与安装命令 pin 这两条。

这是同一张表的分母第三次被修正。前两次我都以为补完了。
上一版我把表里两行标成「未实测」就交付了。这轮去消它们,两条都不难:

① `anet -v` 顶行示例 —— 真跑了。干净容器 npm i -g @sleep2agi/agent-network@latest
   之后 `anet -v` 顶行输出 `anet v2.2.21`,与 versioning.md 的断言一致。
   (断网运行,探针镜像用完即删。)

② 安装命令里的版本 pin —— 不适用。getting-started(中英)与 clean-server 里的
   安装命令全是裸 `npm i -g @sleep2agi/<pkg>`,一个都不钉版本,与 RELEASE-SOP
   自己那句「现在没有 docs 还在安装命令里 pin 版本号」一致。
   这一行改为负向不变量:每次发版确认「没有新出现钉版本的安装命令」。

顺带在正文里记一笔:标注不确定性是诚实的,但当那个不确定性两分钟就能消除
时,标注会变成不去消除它的借口。
@vansin

vansin commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

把上一版留下的两个「未实测」都消掉了(0456a731 → e28ecaf2)

上一版我在核法表里留了两行 **未实测** 就交付了。这轮去消它们 —— 两条都不难

anet -v 顶行示例 —— 真跑了

干净容器:npm i -g @sleep2agi/agent-network@latest,断网运行

$ anet -v
anet v2.2.21

Components (auto-fetched on first use…)
  ○ agent-node — not installed yet
exit=0

versioning.md:11 声称的是 anet v2.2.21顶行完全一致。 探针镜像用完即删。

② 安装命令里的版本 pin —— 不适用,而且这个结论比「实测」更强

查了表里各页的安装命令:

getting-started.md(中英)  npm i -g @sleep2agi/agent-node
                            npm install -g @sleep2agi/agent-network
clean-server.md             npm i -g @sleep2agi/agent-network
                            npm i -g @sleep2agi/agent-node

全是裸命令,一个都不钉版本 —— 与 RELEASE-SOP 自己那句「现在没有 docs 还在安装命令里 pin npm 版本号」一致。

所以这一行不该是「待测」,该是「不适用」。我把它改成了负向不变量:每次发版确认「没有新出现钉版本的安装命令」—— 这才是这一行真正该守的东西。


记在正文里的一句

标注不确定性是诚实的,但当那个不确定性两分钟就能消除时,标注会变成不去消除它的借口。

这两行一条要一个容器(约两分钟),一条零成本(几次 grep)。我上一版选择了「标注 + 交付」。

它和「没验就断言」不是同一个毛病 —— 后者是把未知当已知,前者是把可知当未知第二种更难被发现,因为它在形式上是无可指摘的。

@vansin
vansin merged commit 96137f2 into main Aug 18, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants