接入位表六家扩到八家,端点形状与错误码一字未改(契约 v0.87,仅两处名单)。 - tencent_wsa:POST {base}/SearchPro + Authorization Bearer,零签名。 两条官方口径决定实现:HTTP 状态码恒 200(判失败只能读 Response.Error.Code); Pages 是「JSON 字符串数组」需二次解析。错误码按官方表分类 (UnauthorizedOperation/AuthFailure.* = 凭据、ResourceUnavailable = 欠费、 RequestLimitExceeded* = 限流),文案只带 code 不带上游 Message。 - metaso:POST {base}/api/v1/search,响应 schema 仅第三方来源且互相打架, 实现走宽松解析(数组候选与字段名回退),逐处标「未实测」。 - 零新 env 键:两家只走 $DATA_DIR/config/plugins/web-search.json, .env / .env.example 未动;组合根 websearch_providers.go 零功能改动。 - 契约 v0.87:values.provider 合法闭集与 plugin.providers 候选各加两条, 计数不变(14 + 25 + 40 = 79)。
- 新增 $DATA_DIR/config/plugins/web-search.json(0600 + temp+rename,文件名 = 插件 id) - 组合根改「先读可变源、缺失回落 .env 播种」;**不新增任何 env 键**(.env 已冻结) - 多实例:每家 provider 独立 key/baseURL/启用态 + 「测试连通」探针 - 用 PLG-1 的声明库给出该面板的 adminPanels 声明;动作名交给 PLG-2 的通用动作端点分发 (本片自己不开路由) ⚠️ 本片自认越界:改了 cmd/cyrene/wire_web_search_test.go(既有测试,为适配 DataDir); 另有 design/28 的相关注册留给主会话。