Repository navigation
docs(#1445): 坏负载在手上之后重做勘破 —— 判据仍不存在,这次是逐条点名排除 - #1457
Merged
Merged
Conversation
前提订正:上一轮把「D 的信封元数据没观测到」说成「失败臂没观测到」。文本是 #1433 走生产传输 实抓的(246 字逐字),所以两条臂都立得起来。按这个前提重做: - 读 npm 上 exa-mcp-server 3.1.9 / 3.2.1 / 3.4.0 / 3.4.1 的构建产物:四版都给这句限流提示置 isError:true ⇒ D(非 isError)不是开源代码发的,是 mcp.exa.ai 托管端自己那一层的产物; - Exa 的真实零命中就是一段散文("No search results found. …"),无 isError / _meta / structuredContent,信封与 D 逐格相同 ⇒ 「零结果 vs 散文」在结构上不可分; - 成功渲染 3.1.9 → 3.2.1 换过一次(/context 整段 → Title:/URL: 行),_meta 3.2.1 起才有 ⇒ 任何押在渲染或 _meta 上的闸,失败方向是拒载全部真结果; - 今天额度已重置:nokey Exa / keyless Parallel 各抓一次完整原始响应入库; - 四种真实负载(D / 零命中 / 今日 Exa / 今日 Parallel)过两份生产 parseResponse:全判成功。 十条候选判据逐条带实测排除;等价类论证说明「不押无契约字段 + 不匹配文案 + 拒 D + 放零命中」 四条约束互斥。不改代码。AC1 仍未满足,票保持 open。 Refs #1445 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #1445
不改代码。AC1 仍未满足,票保持 open。 这是
#1445第二轮勘破:上一轮的前提「失败臂没被观测过」被订正(没观测到的是 D 的信封元数据,文本是#1433走生产传输实抓的),按订正后的前提重做,结论仍是「站得住的结构性判据不存在」—— 但这次是逐条点名排除,每条带实测。新量到的事实
isError: true,文本与 D 逐字相同 ⇒ D(非isError)不是开源代码发的,是mcp.exa.ai托管端自己那一层的产物。{content:[{type:"text",text:"No search results found. Please try a different query."}]},无isError/_meta/structuredContent,信封与 D 逐格相同 ⇒ 「零结果 vs 散文」在结构上不可分。这是本轮最硬的一条:任何拒 D 的结构性判据同时拒掉 Exa 的真零命中。/context整段 → 3.2.1 起Title:/URL:行),_meta.searchTime3.2.1 起才有 ⇒ 押在渲染或_meta上的闸,失败方向是拒载全部真结果(有发行版实证,不是假设)。parseResponse全判成功(#1449合入后packages/core那份重跑,四种仍全判成功 —— 它收的是契约信号,对这四种负载没有可消费的信号)。逐条排除
十条候选(契约信号 /
structuredContent/_meta/ 关键字 / URL 在场 / 条目形状 / 长度 / 回显端点 / 跨查询字节相同 / 限流头)逐条带数字排除,见docs/architecture/2026-09-24-exa-mcp-failure-signal-recon.md《2026-09-26 补勘》。等价类论证:对只能看文本的判据,D 与「Exa 真零命中」「3.1.9 时代的真结果」「托管端下一次换渲染后的真结果」同类,任何拒 D 的结构性判据拒整类;类内唯一能单独挑出 D 的特征是文案内容 = 关键字匹配。什么条件下判据会出现(写在勘破里,不替 owner 裁)
isError: true(开源版已如此)或继续走 429(09-24 11:35Z 起的现状)—— 两者现有代码都判得出,D 今天不可达(09-26 nokey 实抓为正常结果)。与
#1449(已合,8f0fc0900)的一致性两边一致 = 都只消费契约信号(HTTP 状态 / JSON-RPC
error/isError/ 结构化{error}),谁也不多一条文本判据。本 PR 不碰packages/core/src/tool/websearch.ts,也不碰packages/opencode/src/tool/mcp-websearch.ts。本地门
✓ zero upstream package edits,rc=0(改动只在docs/)✓ 70 relative link(s) resolve across 3 file(s),rc=0(先用一个已知坏链接证明检查器会红:rc=1)✓ 8432 个版本控制文件零字面 NUL 字节,rc=0packages/opencodebun test test/tool/alpha-websearch-failure.test.ts:45 pass / 0 failalpha-check.sh全量:结果见回报。前两次 push 各被同一条红拦住:packages/ui-mac/src/main/process-fence-engine.test.ts三格超时(60.8 s / 61.5 s;第三格「围栏臂没跑成,本格作废」是级联),其余 13 步全绿。那条红不是本 PR 的,是ac#1454正在修的那条,根因已定位:超时上限是process-fence-engine.test.ts:177里api()自己的AbortSignal.timeout(60_000);在等的是引擎开机时packages/opencode/src/config/config.ts:458的Npm.install(装@opencode-ai/plugin,plugin_origins非空时waitForDependencies()让第一个请求等它),真打registry.npmjs.org。本 lane 的旁证:引擎/global/health0.8–1.3 s 就绿,第一个/project/current卡 65 s / 81 s / 221 s;卡住期间lsof -nP -i -p <engine>采样到 3 条 ESTABLISHED 到198.18.1.37:443(=registry.npmjs.org的代理 fake-IP)。本 PR 只动docs/,不碰任何.ts。🤖 Generated with Claude Code