Filed unassigned by the domain:cli 执行 PM 席位(#6024),会话 session_01TvqBFLRzXdSPcbusDoED9k。
⚠️ 来源申报:本条是 #12573 的 dev 在 PR #13380 一轮里的实测,本席未独立复现(本席走 MCP,不走那条 payload 通道)。⛔ 不要把它记成本席的读数。但它带着一个能把它和"猜测"分开的控制组,见下。
事实
零配额的 public-repo payload 通道,在读单张卡时只渲染时间线的前 15 项(本次实测:15 / 37),而 backTimelineItems 返回空、⛔ 不携带尾部。
⇒ 在一张长卡上,这条通道根本看不到较近的评论。
⭐ 为什么这条比"分页少了点"严重得多
dev 用它回读自己刚发的报告评论,结果是:marker 不存在,21 行实质内容里 20 行"缺失"。
⚠️ 这个结果与"sanitizer 把 body 吃了"逐字节一致。 ⇒ 一个正常工作的通道,在它的盲区里会产生一个看起来像数据损坏的读数。
把两者分开的控制组(这是本条能成立的原因):同一张卡的第 3–6 条评论 —— 全都确定存在 —— 在同一次渲染里同样缺席。⇒ 缺席的是位置,⛔ 不是内容;被截断的是时间线,⛔ 不是 body。
⛔ 没有这个控制组,同一个读数会被合理地误判成"我的评论被吃了",然后触发一次根本不需要的重发(或者更糟:一次"内容被 sanitizer 破坏"的错误结论写进卡里)。
⇒ 直接的方法规则
⭐ 一次 payload-channel 的回读,对一条刚发的评论来说,⛔ 不构成回读。
尾部必须取自 MCP issue_read get_comments,并显式指定 page。⚠️ 现有参考文档记了这条通道"覆盖单卡读取、不覆盖 issue 搜索"——15 项上限是它没写的第二条边界。
⚠️ 它属于哪一族
同 #13326(MCP search_issues 返回假零)。两条是同一个失败类:一个工具在它的盲区里返回一个语法合法、语义为"没有"的答案,而调用方无法从答案本身分辨"真的没有"与"我没看到"。
⇒ ⭐ 这一族的通用解不是"别用那个工具",是每个零都要有正控,且正控必须能命中同一个盲区维度——本例中的正控之所以有效,正因为它取的是同一张卡的更早位置,⛔ 而不是另一张卡的内容。
待判,⛔ 本席不裁
修法落在参考文档(governed surface)上,⛔ 不由本席位自行改:
- A:把"15 项上限 + 空尾部"写进那条通道的参考页边界一节,并写死规则「回读刚发的评论一律走 MCP
get_comments 并指定 page」。
- B:A 之外,再给出一个判别式——让读者能把"通道盲区"与"真的被吃了"分开(本卡记的那个控制组就是现成的形状:同卡更早位置的已知内容是否也缺席)。
⇒ 建议 B:只写 A 会让下一个人在遇到那个读数时仍然无法判断,而那正是本条的真正代价。
复现(dev 的记录)
在一张时间线 ≥ 16 项的卡上,用 payload 通道读单卡,数渲染出的时间线项数,并检查 backTimelineItems。控制组:挑一条确定存在的早期评论,确认它是否同样缺席。
去重申报
⚠️ NOT MEASURED,⛔ 不是零读数:MCP search_issues 正在返回假零(#13326)。若已有同形状的卡,请合并并留痕。
Refs
Generated by Claude Code
Filed unassigned by the
domain:cli执行 PM 席位(#6024),会话session_01TvqBFLRzXdSPcbusDoED9k。事实
零配额的 public-repo payload 通道,在读单张卡时只渲染时间线的前 15 项(本次实测:15 / 37),而
backTimelineItems返回空、⛔ 不携带尾部。⇒ 在一张长卡上,这条通道根本看不到较近的评论。
⭐ 为什么这条比"分页少了点"严重得多
dev 用它回读自己刚发的报告评论,结果是:marker 不存在,21 行实质内容里 20 行"缺失"。
把两者分开的控制组(这是本条能成立的原因):同一张卡的第 3–6 条评论 —— 全都确定存在 —— 在同一次渲染里同样缺席。⇒ 缺席的是位置,⛔ 不是内容;被截断的是时间线,⛔ 不是 body。
⛔ 没有这个控制组,同一个读数会被合理地误判成"我的评论被吃了",然后触发一次根本不需要的重发(或者更糟:一次"内容被 sanitizer 破坏"的错误结论写进卡里)。
⇒ 直接的方法规则
⭐ 一次 payload-channel 的回读,对一条刚发的评论来说,⛔ 不构成回读。
尾部必须取自 MCP⚠️ 现有参考文档记了这条通道"覆盖单卡读取、不覆盖 issue 搜索"——15 项上限是它没写的第二条边界。
issue_read get_comments,并显式指定 page。同 #13326(MCP
search_issues返回假零)。两条是同一个失败类:一个工具在它的盲区里返回一个语法合法、语义为"没有"的答案,而调用方无法从答案本身分辨"真的没有"与"我没看到"。⇒ ⭐ 这一族的通用解不是"别用那个工具",是每个零都要有正控,且正控必须能命中同一个盲区维度——本例中的正控之所以有效,正因为它取的是同一张卡的更早位置,⛔ 而不是另一张卡的内容。
待判,⛔ 本席不裁
修法落在参考文档(governed surface)上,⛔ 不由本席位自行改:
get_comments并指定 page」。⇒ 建议 B:只写 A 会让下一个人在遇到那个读数时仍然无法判断,而那正是本条的真正代价。
复现(dev 的记录)
在一张时间线 ≥ 16 项的卡上,用 payload 通道读单卡,数渲染出的时间线项数,并检查
backTimelineItems。控制组:挑一条确定存在的早期评论,确认它是否同样缺席。去重申报
search_issues正在返回假零(#13326)。若已有同形状的卡,请合并并留痕。Refs
search_issuesis returning FALSE ZEROS — reproduced on three seats across two repos, and it DEGRADED mid-session, so every dedup that rode on it passed vacuously #13326 —— 同族:search_issues的假零,三席两仓复现且会话中途退化packages/rest's new 37-error test-typecheck ledger — 13 of them are one class in one file, and 14 more look like one call-signature story across five #12573 / PR test(rest): pay down the one annotation-reachable error of rest.test.ts's four, and measure the other three #13380 —— 本读数的出处issue_read get_labelsfails on a FRESH PR number whilelist_pull_requestsreturns its labels — misread as "no labels", the mandated RMW fallback strips concurrent bot labels #13141 —— MCPissue_read get_labels在新 PR 号上失败而list_pull_requests能返回标签,被误读成"没有标签"。⭐ 同样是"工具的盲区被读成事实"Generated by Claude Code