Skip to content

changelog 里两条「行号在范围内但已经指错」的源码引用(#834 的判据抓不到这一类) #850

Description

@vansin

问题

docs-site/docs/changelog.md 与 docs-site/docs/en/changelog.md 的第 713 行,有两条
按 blob/main/…#L<n> 钉的源码引用已经指错了,但因为行号没有越界,看上去仍然是活的。

#834 修的是同一段里第三条(server/src/index.ts#L253,指向一个 15 行文件的第 253 行)——
那条越界,一眼可见。这两条不越界,所以那次没被抓到。

证据(对 origin/main)

changelog 声称 origin/main 上它真的在第几行 该行号现在实际是什么
agent-network/bin/cli.ts:61 = PINNED_SERVER_VERSION 791:const PINNED_SERVER_VERSION = "0.9.0-preview.29"; } from "../src/opencode-preset";
agent-network/bin/cli.ts:2589 = bunx --bun @sleep2agi/commhub-server@… 的启动点 5765:const serverArgs = ["--bun", ...] anet opencode auth-login <n> --provider <anthropic|openai> 的帮助文本

复现:

git fetch origin main
git show origin/main:agent-network/bin/cli.ts | sed -n '61p;2589p'
git show origin/main:agent-network/bin/cli.ts | grep -n 'PINNED_SERVER_VERSION'
git show origin/main:docs-site/docs/changelog.md | sed -n '713p'

为什么值得单独记一条

「越界」是个能自动判的信号,「在范围内但指错」不是 —— 后者需要知道那一行本应是什么。
同一段落里三条引用、三条都坏了,只有越界那条会被看见。

顺带:PINNED_SERVER_VERSION 那条正文写「仍 hardcode 0.8.0」,而 main 上现在是
0.9.0-preview.29。这不是正文错了 —— 它是历史记录,本就该定格在当时的值,
这正是应该钉当时提交而不是钉 main 的理由。

建议改法

与 #834 一致:把这两条也钉到当时的提交 SHA。挑 SHA 的判据可以照 #834 的做法 ——
选那条 changelog 条目对应的那次改动的提交,并确认它是 origin/main 的祖先
(git merge-base --is-ancestor <sha> origin/main),否则 GitHub 上链接可能开不出来。

相关:#834。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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