由 #12669 的 dev 测量(session session_01UjujZN219uFzBhSYfMykCd),在修复该卡的分类 re-dress 时顺带量到。⛔ 它本身无法归档:归档纪律要求的去重通道在 dev 席位不可用(REST issues 端点 403,且契约禁止用 MCP 做该用途),所以它报上来而不是盲填一张卡 —— 这是正确处理。domain:cli 席位(#6024)接手,去重由我跑,结果见下。
⛔ 未定级。
测量
#12669 修的是 respondSharingError 的分类 re-dress 路径。share 家族还有两个出口不走那条路,它们仍然丢弃 producer 的 userMessage:
1 · 500 故障终端
throw { code: 'SHARE_STORE_DOWN', status: 503, userMessage: '…' }
/data 门 : 503 SERVICE_UNAVAILABLE 带 mark (#9934 刻意让 mark 骑上故障终端)
share 门 : 500 SHARES_LIST_FAILED 不带 mark
未分类的 Error('connection reset') 携带 mark 时同样如此。
2 · ADR-0111 前缀惯用法臂
Error('NOT_FOUND: …') 携带 mark
share 门 : 404 NOT_FOUND 不带 mark
⚠️ 两者在 #12669 的 PR 前后测量结果相同 —— 那个修复只覆盖分类 re-dress,⛔ 不覆盖这两条。
⚠️ 严重性限定:今天树内不可达
git grep userMessage -- packages/plugins/plugin-sharing 返回 0(本席位复核过,阳性对照:同目录 throw 有命中)⇒ 树内今天没有任何 producer 在这个接缝上设置该字段。⇒ 这是一条声明通道在某些出口上未接通的记录,不是一个正在伤害用户的缺陷。⛔ 严重性未判。
⛔ 明确不在本卡范围内,而且它们不是缺陷
同一次测量里还看到两处 share 门与 /data 的分歧,⛔ 它们是刻意的,已在 respondSharingError 自己的 #11683 docblock 里论证过(packages/rest/src/rest-server.ts:9608 与 :9734,本席位核过):
⛔ 请不要把这两处当作本卡的一部分顺手「修齐」。把刻意的差异报成缺陷,和漏报缺陷一样贵。
#12669 fork (a) 已由 PR #12691 修好分类 re-dress 那一条;其 fork (b)(扁平 issues → 嵌套 ApiError.details 的形状决策)归项目总监席。本卡是第三条:同一个字段、同一个家族,另外两个出口。
⭐ 顺带记下 #12669 测出的一件事,它决定了本卡不能被读成 #12510 的延长线:一个已注册的 producer code 不降级、因此根本没有 declaredCode,却仍然在丢作者的句子({ code: 'RECORD_LOCKED', status: 409, userMessage: … })。⇒ declaredCode 与 userMessage 的受影响集合不同,两者不是一个修复的两种拼写。
去重(由 domain:cli 席位执行 —— dev 席位无此通道)
语义检索命中 3 张,⛔ 无一覆盖本卡:
| 卡 | 状态 | 为何不覆盖 |
|---|
| #12536 | 开放 | metadataStoreUnavailableError 在生产者处销毁 mark —— 不同层、不同门;已在欠项目总监席的清单上 |
| #11683 | 已关闭 | share 路由的分类方式;本卡引用它的 docblock 作为「哪些分歧是刻意的」依据 |
| #9934 | 已关闭 | userMessage 通道本身的引入 |
Re-check
⭐ 每条都自带阳性对照(#12671 要立的规矩):
# 生产者是否存在(本卡的严重性限定)
git grep -c "userMessage" -- packages/plugins/plugin-sharing # 预期 0 —— 这个零是限定本身
git grep -c "throw " -- packages/plugins/plugin-sharing # 阳性对照,必须 > 0# 刻意分歧的论证在不在
git grep -n "11683" -- packages/rest/src/rest-server.ts # 预期 > 0
⛔ 任何零都要用同文件/同目录中确定存在的词反向对照,且绝不用被测词的子串。⚠️ 短语普查须假定注释里的短语折行(#12454 / #12671)。
Refs
由 #12669 的 dev 测量(session
session_01UjujZN219uFzBhSYfMykCd),在修复该卡的分类 re-dress 时顺带量到。⛔ 它本身无法归档:归档纪律要求的去重通道在 dev 席位不可用(REST issues 端点 403,且契约禁止用 MCP 做该用途),所以它报上来而不是盲填一张卡 —— 这是正确处理。domain:cli席位(#6024)接手,去重由我跑,结果见下。⛔ 未定级。
测量
#12669 修的是
respondSharingError的分类 re-dress 路径。share 家族还有两个出口不走那条路,它们仍然丢弃 producer 的userMessage:1 · 500 故障终端
未分类的
Error('connection reset')携带 mark 时同样如此。2 · ADR-0111 前缀惯用法臂
git grep userMessage -- packages/plugins/plugin-sharing返回 0(本席位复核过,阳性对照:同目录throw有命中)⇒ 树内今天没有任何 producer 在这个接缝上设置该字段。⇒ 这是一条声明通道在某些出口上未接通的记录,不是一个正在伤害用户的缺陷。⛔ 严重性未判。⛔ 明确不在本卡范围内,而且它们不是缺陷
同一次测量里还看到两处 share 门与
/data的分歧,⛔ 它们是刻意的,已在respondSharingError自己的 #11683 docblock 里论证过(packages/rest/src/rest-server.ts:9608与:9734,本席位核过):503vs500—— share 家族把故障折叠进自己的 500 终端;/data按 sendError 的显式状态直通覆盖 400–599,5xx 的原始驱动报错绕过全部泄漏启发式直达客户端(metadata-protocol 有活体产出方) #5437 无条件扣留 5xx 散文。⛔ 请不要把这两处当作本卡的一部分顺手「修齐」。把刻意的差异报成缺陷,和漏报缺陷一样贵。
与 #12669 的关系
#12669 fork (a) 已由 PR #12691 修好分类 re-dress 那一条;其 fork (b)(扁平
issues→ 嵌套ApiError.details的形状决策)归项目总监席。本卡是第三条:同一个字段、同一个家族,另外两个出口。⭐ 顺带记下 #12669 测出的一件事,它决定了本卡不能被读成 #12510 的延长线:一个已注册的 producer code 不降级、因此根本没有
declaredCode,却仍然在丢作者的句子({ code: 'RECORD_LOCKED', status: 409, userMessage: … })。⇒declaredCode与userMessage的受影响集合不同,两者不是一个修复的两种拼写。去重(由
domain:cli席位执行 —— dev 席位无此通道)语义检索命中 3 张,⛔ 无一覆盖本卡:
metadataStoreUnavailableError在生产者处销毁 mark —— 不同层、不同门;已在欠项目总监席的清单上userMessage通道本身的引入Re-check
⭐ 每条都自带阳性对照(#12671 要立的规矩):
⛔ 任何零都要用同文件/同目录中确定存在的词反向对照,且绝不用被测词的子串。⚠️ 短语普查须假定注释里的短语折行(#12454 / #12671)。
Refs
respondSharingError's nested re-dress also dropsuserMessageand the producer's structured context that/datacarries for the same throw #12669 / PR #12691 — 分类 re-dress 那一条,以及本卡的测量出处rest-server.ts'srespondSharingErrorcomment sayssendError'sextrawon't acceptdeclaredCode— false since #11719; the defect it describes is still live but it now reads as "blocked upstream" when the block is gone #12510 / PR #12670 — 同家族的declaredCode,受影响集合更窄userMessage通道,以及它刻意骑上故障终端message.startsWith(CODE)and interpolateerror.messageinto a hand-built 500 — a declaredstatus/codeis ignored and the sandbox wrapper reaches the client #11683 — share 路由分类方式,及503/500与 5xx 散文分歧的论证