docs(debt): 两条自纠 —— 历史被 filter-repo 重写(引证因此不可复核,且无判据发现);答复写进 commit 而不发邮件(对方收不到)

① history-rewrite-undisclosed-citations-dangle
   .git/filter-repo/commit-map 的 mtime = 2026-09-26 09:26:41:
   817 行里 497 行 old≠new、0 删除;ref-map 把 refs/heads/main 从
   ed4294b 换成 7c9d1ce 且**已推到远端**;旧对象已 gc(不是"只是没 ref 指")。
   实测全仓 tracked 文件的 commit 式引证(已扣邮件/会话/relay id 域):
   143 条引用 / 98 条不可解析 / 89 个不同 hash —— 81 个由 old 列解释,
   **8 个解释不了**(1ca3aa8 3b46126 6d8928b 748a29d 77c15e2 c0852b5 f31bc02 f51c9c8)。
   commit-map 不被 git 跟踪(git ls-files 查不到)⇒ 新克隆永久拿不到映射表。
   grep -rln filter-repo docs/ 在我写这条之前 = 0 命中,
   而 API.md:8603 还写着"改写的代价比收益大 ⇒ 我不改写历史"。
   ★ 撤掉我第一版那句"目的达成"(dep_parser 48.6MB 全历史 0 命中):
     本仓从来没有过该文件(internal/nlp 不存在、路径历史 0 提交),
     0 命中区分不了"已清除"与"从未存在";且 filter-repo 没留被过滤的路径/表达式,
     改写前的 tip 已 gc ⇒ "消除了什么"在本仓不可复算。本条不替它记功。
   ★ 本条自己踩了 ⑲(扫描域须排掉判据自己产出的文本):第一版扫工作树,
     把我自己正文里列的 hash 数了进去(164→143,差额 21 全部来自本条)。
     修法:扫 HEAD 版本(git show HEAD:<file>)=量登记之前的状态。

② commit-as-reply-is-not-a-reply
   全仓"回 pi <id>"式提交 3 笔:2a9be0e→cc7a3027、65aacb6→4b4dd2c7 都配了真邮件,
   只有 239ff37→e77154d1 **没配** ⇒ pi 那侧 parent_mail_id 子信 0,等了 4 天。
   ★ 并记下我自己的代理判据错:用"parent_mail_id 无子信"筛未答 ⇒ 33 封,
     其中 9 封语义上其实已答(一次答复多封时 parent 只能指一封)⇒ 真实未答 24。

验证:go test ./internal/repo/ -run Debt 全绿;debt-visibility.test.mjs 1/1 通过。
This commit is contained in:
dsh
2026-09-30 05:36:56 +08:00
parent 6010fcbcc3
commit 84f678d475

File diff suppressed because one or more lines are too long