Skip to content

docs(adr): 修订 ADR-009 收编 E7 云优先 + kill-switch 语义 (#492) - #512

Merged
jinjunnn merged 1 commit into
alphafrom
adr009-e7-revision
Jul 22, 2026
Merged

docs(adr): 修订 ADR-009 收编 E7 云优先 + kill-switch 语义 (#492)#512
jinjunnn merged 1 commit into
alphafrom
adr009-e7-revision

Conversation

@jinjunnn

Copy link
Copy Markdown
Owner

父票 #223(E7)· DECIDE 子票 #492。把 ADR-009 从单一「keyless 放开」决策改写为两态决策,并登记 E7 已交付实现的裁决与残留。全部对照已合入 alpha 的 shipped 代码勘破(非计划措辞)。

决策收窄

  • 决策 A(2026-06-18,保留为兜底):登出/BYOK 态仍对所有 provider 放开 keyless websearch(set-if-unset,零改 upstream)。
  • 决策 B(2026-07-22,E7):登录/平台付费态 → cloud_web_search 云优先权威,forceOffKeylessWebSearch() 覆盖写 4 个 keyless flag 为 "0"(压过 shell export)抑制本地;权威判据全在本地(alpha-auth §③),零 platform 回声。

登记的四条裁决(对照 shipped 代码)

  • (a) 远端逐工具禁用:ConfigMCPV1.Remote 只支持整 server 开关 → 改用引擎 permission 层 permission["cloud_web_search"]="deny"(cloud-web-search.ts),保留 cloud server + 兄弟工具。残留(loud+TODO):catalog listTools 仍列该工具,仅模型工具集不含。
  • (b) umbrella 不盲目 force-0:只 force-0 四个 keyless 专用 flag;OPENCODE_EXPERIMENTAL 是全部实验能力总开关,不碰。残留(open):export OPENCODE_EXPERIMENTAL=1 经上游 webSearchEnabled OR 项复活本地 web_search,registry.ts 在 UPSTREAM_PATHS 不可直接 patch;收口择 (i) 本地 permission-deny 或 (ii) alpha-patch(与 [E7][CODE] web_search 失败映射诚实化(替换 orDie,禁伪成功;意外状态 LOUD) #489 共用依赖)。当前接受为已知项。
  • (c) providerID==="opencode" Zen 分支:打包端不可达死码,禁用 provider 棘轮守死,不 patch 上游。
  • (d) 无 402/余额门:/v1/tools/web_search 无 preauth、事后 settle,per-call 余额门归 alpha-platform#37(AC1/AC5);E7 侧仅在 docs(ci): local-first CI standard + local gate runner #37 落地后消费 insufficient-funds LOUD 状态。

未竟

交付实现引用

cloud-first 选路 #488(PR#504)· kill-switch + 云收敛 #490(PR#507)· caps 事实 #491(PR#510)。

Fixes #492

🤖 Generated with Claude Code

把 ADR-009 从「桌面默认对所有 provider 放开 keyless websearch」的单一决策,
改写为两态决策:登出/BYOK 保留 keyless 放开(决策 A,降级为兜底),登录/平台
付费走 cloud_web_search 云优先权威、本地 keyless 主权 force-off 抑制(决策 B)。

登记已交付实现(#488 选路 / #490 kill-switch+云收敛 / #491 caps)与四条裁决:
(a) 远端逐工具禁用——引擎 remote MCP 只整 server 开关,改用 permission 层按
工具 ID deny cloud_web_search,保留兄弟工具,catalog 仍列为 loud 残留;
(b) OPENCODE_EXPERIMENTAL umbrella 不盲目 force-0(会误伤兄弟实验能力),只
force-0 四个 keyless 专用 flag,umbrella 复活面为已知残留(上游闸不可 patch);
(c) providerID==="opencode" Zen 分支打包端不可达,禁用 provider 棘轮守死;
(d) host-tool 无 402/余额门为现状,per-call 余额门归 alpha-platform#37。
失败诚实(#489)须改上游 packages/opencode,依赖 alpha-patch 机制,已暂缓,
其不变量记录在案但机械化强制待 #489Fixes #492

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jinjunnn
jinjunnn force-pushed the adr009-e7-revision branch from 08005b1 to 9aec006 Compare July 22, 2026 14:30
@jinjunnn
jinjunnn merged commit fa5a988 into alpha Jul 22, 2026
6 checks passed
@jinjunnn
jinjunnn deleted the adr009-e7-revision branch July 22, 2026 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[E7][DECIDE] 修订 ADR-009 收编云优先 + kill-switch 语义

1 participant