<!-- owner-opening --> 你在模型选择器里「添加自定义节点」配好的服务,它的地址今天写在一个 **AI 自己有权限改写**的文件里 —— 所以我们不敢照它放行,这个功能实际是坏的。这张票只做第一步:**换一个 AI 写不进去的地方来存这份记录**,不改任何界面、也还不恢复功能。做完之后,后面两张票才能把「按你配的地址放行」接上。 基线:[`docs/design/2026-09-21-1383-custom-provider-address-truth-baseline.md`](https://github.com/jinjunnn/alpha-code/blob/b736f2c0d/docs/design/2026-09-21-1383-custom-provider-address-truth-baseline.md)(owner 2026-09-21 批准)。 本票 = 基线 §四 的子票 1。**前置 `#1390` 第一步**(在它落地前,没有任何目录是稳定「引擎写不到」的)。 ## 负责哪些 AC 基线 **I2**(真源路径不在可写集内,对 18 条静态行逐条断言)、**I4** 的存储侧(解析失败 / 字段不合法 ⇒ 拒绝并说得出原因)。 ## 边界 - 新增真源:`<appData>/alpha-code-state/custom-providers/<env>.json`,`{ v: 1, providers: [{ id, name, compat, baseURL, models }] }`;密钥**不进这里**(仍在 `#1343` 的钥匙串库)。 - 原子写(写临时文件 + rename),读端解析失败 ⇒ 视为"没有记录",**不是**空记录。 - **读与写拆成两个模块**(基线 §四 子票 1 的实现约束):`alpha-models.ts` / `ext-config.ts` / `alpha-environment.ts` 都在 sidecar 的 import 闭包里,写入点若跟进去,写盘登记簿只能填 `main-only` 这个**文字标签**,测试查不出它是否真的只有 main 执行。 ## Out of scope 注入面与出网放行改从它派生(子票 2);添加时的准入与旧记录处置(子票 3);UI;`#1381` 的 MCP 地址。 ## 退出条件 真源可读可写、判据齐(含 I2 的 18 行断言与一条"解析坏了就拒"的反向臂),但**还没有任何消费者** —— 本票不改变任何用户可观察行为。 ## 复杂度 S–M
Activity
jinjunnn commentedon Sep 22, 2026
暂缓(退回 Ready、清掉周期)。理由按「先量承受者与基数」:owner 只用 Alpha gateway 与 BYOK,本机自定义节点零条( 的
"provider": {})。本票是自定义节点那条线的存储层,现在没有承受者。围栏那条线不再依赖它 ——
#1394(P0)改为自带所需的存放位置,不等本票。owner 说要用自定义节点时再启。jinjunnn commentedon Sep 22, 2026
关闭(not planned)。owner 2026-09-22:自定义节点这条线不做了,改走最短路径 —— 把入口关掉(
#1397),而不是补完真源改造。依据:本机自定义节点为零(
env/prod/alpha.jsonc的 provider 段是空对象),owner 只用 Alpha gateway 与 BYOK 目录内供应商。已批准的方案基线仍留在仓里(docs/design/2026-09-21-1383-custom-provider-address-truth-baseline.md),将来要做时从那里接着走,不必重新勘破。fix(model-picker): 关掉「自己填服务地址加节点」那半入口,目录内供应商填 Key 原样不动 (#1397) (#1398)
jinjunnn commentedon Sep 22, 2026
重开。前提被推翻。
我关这张票的依据是「本机自定义节点零条 + owner 只用 gateway 与 BYOK」。owner 2026-09-22 更正:零条是因为它坏着,他要的正是这个能力 —— 用我们目录里没有的远程服务(OpenAI、Gemini 等),填 URL + OpenAI/Anthropic 兼容格式 + API Key 接进来。ollama 那种本机地址他确实不要,但那只是这个能力指向 localhost 的特例,两件事。
所以这条线恢复:本票(真源存储层)→
#1392(注入面与出网放行改按真源算,自定义节点恢复可用)。方案基线不变(docs/design/2026-09-21-1383-custom-provider-address-truth-baseline.md,已批)。jinjunnn commentedon Sep 22, 2026
owner 2026-09-22 发版门:本票与另两件(未列明 provider 接入
#1391/#1392、远程 MCP#1381、时间线运行指示#1399)全部完成才发下一个版本。feat(providers): 自定义节点记录的真源存储层 —— <appData>/alpha-code-state/custom-p…
feat(providers): 自定义节点改从真源派生 —— 模型清单与出网放行按围栏写不到的真源算,配置文件不再参与;「接入其它服务」…