2026-07-21 05:13:05 +08:00
|
|
|
|
# [recycle] 7-34 [done][bug] 页面 AI ACP Runtime 默认值回跳 Hermes v1
|
2026-05-19 08:11:58 +08:00
|
|
|
|
|
|
|
|
|
|
> 发现时间:2026-05-18
|
|
|
|
|
|
>
|
|
|
|
|
|
> 状态:`[done]`
|
|
|
|
|
|
>
|
|
|
|
|
|
> 关联主线:`07-ai`
|
|
|
|
|
|
|
|
|
|
|
|
## 1. 用户可见症状
|
|
|
|
|
|
|
|
|
|
|
|
页面 AI 面板中选择 `ACP · Reasonix` 后,会自动回跳到 `ACP · Hermes`。
|
|
|
|
|
|
|
|
|
|
|
|
用户期望:
|
|
|
|
|
|
|
|
|
|
|
|
- 默认 runtime 为 `ACP · Reasonix`
|
|
|
|
|
|
- 下拉仍可手动切换到 `ACP · Hermes`
|
|
|
|
|
|
|
|
|
|
|
|
## 2. 根因
|
|
|
|
|
|
|
|
|
|
|
|
页面 AI 的历史 runtime 语义仍把空 `acpRuntime` 当成旧 `Hermes HTTP` 默认值。当前主线已经退役 HTTP Hermes,但前端 session/localStorage 恢复、后端空 runtime 推导、以及 `/profiles` 尚未返回时的下拉渲染仍可能产生空 runtime。
|
|
|
|
|
|
|
|
|
|
|
|
空 runtime 进入旧逻辑后会被解释成 Hermes 路径,导致用户刚选择 Reasonix 后又被历史 session 或空 select value 覆盖。
|
|
|
|
|
|
|
|
|
|
|
|
## 3. 修复
|
|
|
|
|
|
|
|
|
|
|
|
- 前端 `pageAiAcpRuntime` 初始值改为 `reasonix`。
|
|
|
|
|
|
- localStorage 版本提升到 `3`,避免旧缓存把 active runtime 覆盖回 Hermes。
|
|
|
|
|
|
- session 创建、持久化、停止 run、发送 run 默认都写入 `reasonix`。
|
|
|
|
|
|
- 前端内置 `Reasonix / Hermes` 两个 ACP runtime fallback,`/profiles` 慢或失败时也不会渲染空 select。
|
|
|
|
|
|
- 后端空 `acpRuntime` 默认归入 ACP 默认 runtime,默认值为 `reasonix`;旧 HTTP proxy 只保留在显式兼容开关后。
|
|
|
|
|
|
|
|
|
|
|
|
## 4. 验证
|
|
|
|
|
|
|
|
|
|
|
|
新增回归约束:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cargo test --manifest-path rust/Cargo.toml -p mnote-web page_ai_acp_runtime_defaults_to_reasonix_and_keeps_hermes_switch -- --nocapture
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
覆盖:
|
|
|
|
|
|
|
|
|
|
|
|
- `pageAiAcpRuntime` 默认是 `reasonix`
|
|
|
|
|
|
- 下拉 options 固定包含 `reasonix` / `hermes`
|
|
|
|
|
|
- 不再包含旧的 `默认 (Hermes HTTP)` 空选项
|
|
|
|
|
|
- change handler 空值 fallback 到 `reasonix`
|