由 #12693 的 dev 测量(session session_01UjujZN219uFzBhSYfMykCd),在修复 share 家族两个旁路出口时量到。⛔ 它无法归档:归档纪律要求的去重通道在 dev 席位不可用 —— 它直接探测了本仓 REST open-issues 端点,得到 HTTP 403,body 为 "GitHub access is not enabled for this session. An org admin must connect the Claude GitHub App for this organization.",而契约禁止用 MCP list_issues / search_issues 做去重。⇒ 它报上来而不是盲填,与 #12693 自己的作者同样的处理。domain:cli 席位(#6024)接手,去重由我跑,结果见下。
⛔ 未定级。
测量
不是读出来的,是驱动出来的。对 { code: 'READ_SCOPE_COMPILE_FAILED', status: 500, userMessage: 'Ask an admin to review the dataset read policy.' }:
declaredServerFaultAnswer(error) ← rest-server.ts 在 analytics 臂 3a 原样发送它的 body
→ {"error":"Internal server error","code":"READ_SCOPE_COMPILE_FAILED"} 无 mark
handleRouteError(error)
→ 500 {"error":"Internal server error","code":"READ_SCOPE_COMPILE_FAILED",
"userMessage":"Ask an admin to review the dataset read policy."} 带 mark
臂 3b(通用 500 ANALYTICS_QUERY_FAILED)有同样的缺口。
机制(本席位复核过)
packages/rest/src/error-response.ts:468-482,declaredServerFaultAnswer 的整个函数体:
exportfunctiondeclaredServerFaultAnswer(error: any,): {status: number;body: Record<string,unknown>}|undefined{constdeclaredStatus=declaredHttpStatus(error);if(declaredStatus===undefined||declaredStatus<500)returnundefined;return{status: declaredStatus,body: {error: INTERNAL_ERROR_MESSAGE,
...(declaresServerFault({status: declaredStatus,code: error?.code})
? thrownCodeFields(error,declaredStatus)
: {}),},};}⇒ 它只 spread thrownCodeFields,没有withDeclaredUserMessage。该文件里 withDeclaredUserMessage 的三个调用点在 :536 / :1606 / :1664,都不在它体内。
⭐ analytics 门的分类臂已经没问题
它 spread ...refusalFields,所以 mark 照样骑上。⇒ ⛔ 这不是「analytics 门丢 mark」,是它的 5xx 终端丢。范围要按臂划,不要按门划。
⛔ 严重性不判
#12693 的 dev 没有为这个门跑 producer 普查(它的普查是针对 plugin-sharing 的)。⇒ ⛔ 本卡不主张可达性,也不主张有人正在受损。⚠️ 谁接手请先跑该门的 producer 普查,⛔ 不要沿用 share 家族那次的结论。
与已落地 / 在飞工作的关系
| 卡 | 关系 |
|---|
#12510 → 1e4d2eb6c | share 门的 declaredCode,受影响集合更窄 |
#12669 fork (a) → b853cf303 | share 门分类 re-dress 的 userMessage |
| #12693 → PR #12707(在飞) | share 门两个旁路出口的 userMessage;⭐ 它把 boundedDeclaredUserMessage 从私有包装器里提出来导出,本卡的修复很可能直接复用它 |
| 本卡 | 另一个门(analytics)的 5xx 终端 |
⛔ 围栏:本卡触及 packages/rest/src/error-response.ts 与 rest-server.ts,两者都在 PR #12707 手里 ⇒ 要等它合并(裁定 ①,由合并释放)。
去重(由 domain:cli 席位执行 —— dev 席位无此通道)
语义检索命中 2 张,⛔ 都不覆盖:
| 卡 | 状态 | 为何不覆盖 |
|---|
| #12536 | 开放 | metadataStoreUnavailableError 在生产者处销毁 mark —— 不同层;已在欠项目总监席清单上 |
| #12669 | 开放 | share 家族的分类 re-dress —— 不同门;fork (a) 已落地,fork (b) 归总监席 |
Re-check
⭐ 每条自带阳性对照:
# 机制:函数体内没有那个包装器
sed -n '468,482p' packages/rest/src/error-response.ts # 读全体,应无 withDeclaredUserMessage
git grep -c "withDeclaredUserMessage" -- packages/rest/src/error-response.ts # 阳性对照,应 > 0
git grep -c "declaredServerFaultAnswer" -- packages/rest/src/rest-server.ts # 消费方,应 > 0
⛔ 任何零都要用同文件中确定存在的词反向对照,且绝不用被测词的子串。⚠️ 短语普查须假定注释里折行,且注意 git grep 默认大小写敏感(#12454 / #12671:这两个缺陷各让一次普查从 13 掉到 7、再掉到 1)。
Refs
由 #12693 的 dev 测量(session
session_01UjujZN219uFzBhSYfMykCd),在修复 share 家族两个旁路出口时量到。⛔ 它无法归档:归档纪律要求的去重通道在 dev 席位不可用 —— 它直接探测了本仓 REST open-issues 端点,得到 HTTP 403,body 为 "GitHub access is not enabled for this session. An org admin must connect the Claude GitHub App for this organization.",而契约禁止用 MCPlist_issues/search_issues做去重。⇒ 它报上来而不是盲填,与 #12693 自己的作者同样的处理。domain:cli席位(#6024)接手,去重由我跑,结果见下。⛔ 未定级。
测量
不是读出来的,是驱动出来的。对
{ code: 'READ_SCOPE_COMPILE_FAILED', status: 500, userMessage: 'Ask an admin to review the dataset read policy.' }:臂 3b(通用 500
ANALYTICS_QUERY_FAILED)有同样的缺口。机制(本席位复核过)
packages/rest/src/error-response.ts:468-482,declaredServerFaultAnswer的整个函数体:⇒ 它只 spread
thrownCodeFields,没有withDeclaredUserMessage。该文件里withDeclaredUserMessage的三个调用点在:536/:1606/:1664,都不在它体内。⭐ analytics 门的分类臂已经没问题
它 spread
...refusalFields,所以 mark 照样骑上。⇒ ⛔ 这不是「analytics 门丢 mark」,是它的 5xx 终端丢。范围要按臂划,不要按门划。⛔ 严重性不判
#12693 的 dev 没有为这个门跑 producer 普查(它的普查是针对⚠️ 谁接手请先跑该门的 producer 普查,⛔ 不要沿用 share 家族那次的结论。
plugin-sharing的)。⇒ ⛔ 本卡不主张可达性,也不主张有人正在受损。与已落地 / 在飞工作的关系
1e4d2eb6cdeclaredCode,受影响集合更窄b853cf303userMessageuserMessage;⭐ 它把boundedDeclaredUserMessage从私有包装器里提出来导出,本卡的修复很可能直接复用它⛔ 围栏:本卡触及
packages/rest/src/error-response.ts与rest-server.ts,两者都在 PR #12707 手里 ⇒ 要等它合并(裁定 ①,由合并释放)。去重(由
domain:cli席位执行 —— dev 席位无此通道)语义检索命中 2 张,⛔ 都不覆盖:
metadataStoreUnavailableError在生产者处销毁 mark —— 不同层;已在欠项目总监席清单上Re-check
⭐ 每条自带阳性对照:
⛔ 任何零都要用同文件中确定存在的词反向对照,且绝不用被测词的子串。⚠️ 短语普查须假定注释里折行,且注意
git grep默认大小写敏感(#12454 / #12671:这两个缺陷各让一次普查从 13 掉到 7、再掉到 1)。Refs
userMessage—— 500 故障终端与 ADR-0111 前缀臂 #12693 / PR #12707 — 本卡的测量出处,以及boundedDeclaredUserMessage的导出userMessage通道,及它刻意骑上故障终端500 ANALYTICS_QUERY_FAILEDon/analytics/dataset/querywhere/dataanswers the declared status and code #11718 — 把该臂的 body 移进declaredServerFaultAnswer的那次改动(error-response.ts:968的注释)