Skip to content

refactor(engine): 提供商解耦为 endpoint、model 与 key - #303

Merged
SheathedSharp merged 3 commits into
mainfrom
refactor/engine-attn-provider
Nov 12, 2026
Merged

SheathedSharp merged 3 commits into
mainfrom
refactor/engine-attn-provider

Conversation

@SheathedSharp

Copy link
Copy Markdown
Owner

第二步:把可选评估从"选一个 provider"改成三个互相独立的字段,preset 只做 setup 时的预填。

改了什么

  • LocalConfig:provider 字段删除,新增可选的 preset;endpoint、model、api_key 各自独立。
  • preset 只在 oberth attn enable 写文件时填 endpoint/model,运行时不参与解析;显式 --endpoint/--model 会清掉过期的 preset 标签。未知 preset 在写入前报错。
  • 解析:删除品牌白名单、按环境变量反推 provider、各品牌默认端点/模型;环境变量收敛为 BERTH_ATTN_ENDPOINT / BERTH_ATTN_MODEL / BERTH_ATTN_KEY(优先级高于 settings)。
  • 校验:endpoint 允许 HTTPS 或 loopback HTTP(localhost / 127.0.0.1 / ::1),其余 HTTP 拒绝;enabled 配置必须同时有 endpoint 和 model,否则报 invalid_config。
  • oberth attn enable 在读取密钥之前先校验 endpoint/model;oberth attn test 用解析后的有效字段探测(包含环境覆盖)。
  • doctor 行从 "on · provider" 改为 "on · model";status --json 不再有 provider,有 preset 时才输出 preset。
  • 验收脚本的 settings fixture 改为显式 endpoint/model。

破坏性影响

  • 旧的 "provider" 字段与 OPENROUTER_* / TYPESAFE_* 环境变量不再读取。因为 attn.json 是上一个 PR 新引入的文件,这次只需按新字段重新配置一次。
  • 读取 status --json 里 provider 的脚本需要改看 endpoint / model。

验证(已执行)

  • cd engine && go test -count=1 -timeout=8m ./...:通过。
  • mage build:通过(两个二进制)。
  • python3 scripts/check_docs.py:通过。
  • python3 scripts/check_skill_contract.py --skill-dir ../option-berth-skill:84 个锚点覆盖。
  • python3 scripts/verify-attention-handoff.py --choice continue_without_action:通过。
  • 隔离 BERTH_HOME 手工验证:无参数 attn enable 在提示密钥前就报 endpoint 缺失;loopback HTTP 探测失败后不落盘;attn status --json 不再输出 provider。

未执行

  • race、nightly 完整门槛、真实服务矩阵(由每日 nightly/发版流程覆盖)。
  • Windows 原生构建(本机未跑,交给 PR CI)。

🤖 Generated with Claude Code

SheathedSharp and others added 3 commits November 12, 2026 18:23
配置只保留 enabled、preset、endpoint、model、api_key 和 timeout_ms:
preset 仅在 setup 时预填 endpoint/model,运行时不参与解析;删除品牌白名单、
"哪个环境变量存在就选哪个 provider" 的反推以及各品牌默认端点。环境变量收敛为
BERTH_ATTN_ENDPOINT / BERTH_ATTN_MODEL / BERTH_ATTN_KEY。

endpoint 允许 HTTPS 或 loopback HTTP;enabled 的配置必须给出 endpoint 和
model,否则是 invalid_config。attn test 使用解析后的有效字段探测。

验证:go build ./...;go test -count=1 -timeout=8m ./...;mage build;
scripts/verify-attention-handoff.py --choice continue_without_action

Co-Authored-By: Claude Code <noreply@anthropic.com>
适配器文档与 cli 双语对去掉按品牌选 provider 的描述,改成三个独立字段、
通用环境变量与 loopback HTTP 规则;preset 明确为 setup 预填,不影响运行时。

验证:python3 scripts/check_docs.py

Co-Authored-By: Claude Code <noreply@anthropic.com>
@SheathedSharp
SheathedSharp merged commit b828134 into main Nov 12, 2026
14 checks passed
@SheathedSharp
SheathedSharp deleted the refactor/engine-attn-provider branch November 12, 2026 10:37
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.

1 participant