Skip to content

[E7][CODE] web_search 失败映射诚实化(替换 orDie,禁伪成功;意外状态 LOUD) #489

Description

@jinjunnn

父票: #223. 基线: docs/design/2026-07-22-e7-cloud-web-search-baseline.md §4 票2(REQ 号由主 session 落库时分配)。

负责哪些AC:packages/opencode/src/tool/websearch.ts:133-140 用可辨错误替换 Effect.orDie,区分 401/403-scope_forbidden/400/502/任何非 2xx→LOUD;:136 空/nullish 结果不再当成功串;云失败不静默切 keyless。
边界:opencode websearch.ts execute 分支 + 云壳失败呈现语义;core 副本不动(打包引擎不挂载它)。
out-of-scope:不改平台失败契约;不新增回退路径(除已允许的模型自带 search);无 402 分支(该路径今天不产生余额失败)。
退出条件:各真实状态与意外状态均有可辨错误文本、无 defect 崩溃;无「空=成功」路径;无 402 死码。

跨仓依赖注记(基线 §4 票3c):402/余额分支依赖 alpha-platform#37 的 web_search reserve 入册——不在本票设计#37 的 web_search 切片落地后,随之出现的 insufficient-funds decline 作为又一个 LOUD 失败状态被本票的失败映射自然消费;§3 失败诚实不变量不变。

Metadata

Metadata

Assignees

Labels

area:runtimeServices, jobs, infrastructure, or operationstype:featureNew user or system capability

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions