docs(#850): 9 处文档还指着一个 15 行的空壳文件 server/src/index.ts(清单第 7 条) - #991
Conversation
`server/src/index.ts` 现在只有 **16 行** —— #438 整改之后它是个 run-entry 壳, 文件头自己就写着「All real code lives in ./server.ts … Do NOT import this module to "get at the server"」。真正的 3373 行在 `server/src/server.ts`。 于是分两类: **一、越界 pin(5 处)** —— 行号 98 / 138 / 771 / 788 / 816 全都超出 16 行。 这类一眼可见,#834 修过同族的一条(`index.ts#L253`)。 **二、🔴 不带行号、因而"看起来完全正常"的(4 处)** —— `blob/main/server/src/index.ts` 解析得到(那个壳确实存在), 链接检查器不会报,但它指向的文件里根本没有锚文本描述的东西。 这一类正是 #850 说的「在范围内但已经指错」,只是粒度在文件级而不是行级。 第一版我只改了链接目标,锚文本仍写着 `index.ts L98-122`、`index.ts /api/task 处理器`。 那会让文字和目标不一致 —— **正是我在 RFC-006 那条里指出过的缺陷**(路径被写成链接文字、 说明写成了目标)。锚文本一并改成 server.ts,并去掉已经失效的行号 (行号会再次漂移,而"server.ts 的 /api/task 处理器"不会)。 ``` 改前:指向 server/src/index.ts 的 md 链接 9 处;其中越界 5 处 改后:0 处;锚文本仍写 index.ts 的 0 处 ``` `check-no-memory-slugs.py` 在改动树上仍 OK。 `check-doc-relative-links.py` 报 38/288 —— 🔴 **那是既有状态,不是本次引入**: 在 `origin/main` 的干净检出上跑同一道门,同样是 38/288(本次只动绝对 GitHub URL, 一条相对链接都没碰)。
上一条我把 9 处指向 `server/src/index.ts` 的链接改指 `server.ts`。
其中 `docs/open-source-quality-review.md:337` 那条的**锚文本本身就是路径**:
[`server/src/index.ts`](…/blob/main/server/src/index.ts)
批量替换只改了目标,于是变成
[`server/src/index.ts`](…/blob/main/server/src/server.ts) ← 文字与目标互相矛盾
🔴 **这正是我在同一条 issue 里刚指出过的形态**(RFC-006 那处:路径写成链接文字、
说明写成目标)。指出一个缺陷不会让人免疫于它。
是新写的 `repo-gates/scripts/check-doc-anchor-target-mismatch.py` 抓到的 ——
它第一次跑就红在我自己的改动上,而**改动前的 origin/main 是绿的**
(改前锚文本 `index.ts` 与目标 `index.ts` 一致,只是双双指向已被掏空的文件)。
⇒ 那道门判的是**一致性**,不是**正确性**。两者都需要,而且是两道不同的门。
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
🔴 更正我自己在 PR 正文末尾写的那句我写的是:
那句是错的。我去逐条核了,剩下的绝大多数不该改 —— 按同样方式清会把正确的文档和历史记录一起改坏。 逐条分类① 它们是对的 ——
// agent-network/src/server.ts:26-27
// Dynamic import to avoid loading server code when only using client
await import("../../server/src/index.js");这不是遗留,是设计。 ⇒ 「指向 index.ts」在这几处是正确的,因为那几处讲的正是「谁去 run 它」。 把它们改成 ② 它们是记录 —— 改了等于篡改证据 这些是「某年某月我在那个文件里看到什么」。 那时 (第一条尤其反讽: 所以本 PR 改的那 9 处和剩下的不是同一类改的那 9 处是当前事实断言,而且断言的对象已经搬走了( ⇒ 不建议另开一条清剩下的。 如果真要动,判据不是「路径里有没有 这条更正本身也是复核出来的我原本准备下一轮就去「按同样方式清剩下的」。是先去核了 如果我照自己写的那句去做,会亲手把一批正确的文档改错,而且没有任何门会拦我 —— 路径存在、链接可解析、所有检查都会绿。 |
Refs #850。#856 清单里
fix/850-out-of-range-index-pins的前两个提交(第三、四条属于 #887/#834,不在本 PR)。前提我在今天的 main 上核过,而且它比标题更刺眼
server/src/index.ts现在是一个 15 行的空壳,真正的东西在server.ts(3374 行)。 而文档里还有一批引用指着那个空壳 —— 点进去看到 15 行,读者会以为自己点错了,或者以为这个项目的 server 只有 15 行。本 PR 改掉其中 9 处(7 个文件),把它们指向
server.ts。🔴 顺带被我自己刚落地的那道门抓了一次
改完跑
scripts/check-doc-symbol-pins.py(#987,今天刚合):那是这条两天前的旧提交里带进来的一个行号 pin,它当时可能是对的,今天不是了。
grep -n "function dashboardReleaseTag"实查 → 1569 行(不是 347)。改掉之后:一条今天上午还不存在的门,当天下午就抓住了一条我正要合进去的过期引用。 这也是我这几轮反复说的那件事的又一个例子:旧分支带的不只是代码,还带着它当时的事实。
冲突处理
docs/architecture.md有一处冲突,是同一行里index.ts→server.ts的那处改动本身。取 theirs —— 因为那正是这个提交的目的。🔴 我没有用
git checkout --theirs <file>—— 今晚早些时候我用它整份取旧版,git diff --stat显示96 insertions(+), 398 deletions(-),差点静默删掉 main 后来加的一整个 helper。这次是按 hunk 取的,最终净改动:本地全绿
还剩多少
git grep -c "server/src/index.ts" -- docs docs-site仍有若干处(docs/analysis/…3、docs/architecture.md6 等)。本 PR 只改这条旧提交覆盖的那 9 处,没有顺手扩大范围 —— 剩下的属于同一类,可以另开一条按同样方式清。