fix: judge the phase 2 shape by the tier that was asked for
A provider that registered a disable form but no enable form was told its shape was unknown and pointed at register_provider -- work it had already done -- for a request that only ever needed the disable form. The old bool code took the slot by direction; the tiered rewrite lost that. Take the relevant field again, and keep "shape unknown" for the case where both halves are missing, so the "cannot disable" wording still owns the half-missing case.
This commit is contained in:
@@ -128,7 +128,7 @@ cherry 有两层我们**明确不做**:
|
||||
| Phase | 条件 | 结果 |
|
||||
|---|---|---|
|
||||
| 1 | 生效档位为 `None`(调用方不表态) | 返回 `{}`,不注入 |
|
||||
| 2 | **该请求档所需的**形态未知(请求 `none` 看 `wire.off`,其余档看 `wire.on_base`) | `ThinkingUnsupportedError`,指路 `register_provider`/`extra_body` |
|
||||
| 2 | **该请求档所需的**形态未知(请求 `none` 看 `wire.off`,其余档看 `wire.on_base`;`none` 方向须 `off` 与 `on_base` **皆为 `None`** 才算「整体形态未知」——单 `off is None` 是「该 provider 关不掉」,归 `_inject` 说清缺的是哪半边,2026-09-05 实现时补正) | `ThinkingUnsupportedError`,指路 `register_provider`/`extra_body` |
|
||||
| 3 | 能力未登记 | warning 后按 wire 尽力注入,**不校验档位** |
|
||||
| 4 | 请求 `none` 而该模型无 `none` 档 | `ThinkingUnsupportedError`,**给出 `cheapest_effort` 作为替代** |
|
||||
| 5 | 其余档位不在 `supported_efforts` 且未开映射 | `ThinkingUnsupportedError`,列出该模型可选档 |
|
||||
|
||||
Reference in New Issue
Block a user