# 7-34 [done][bug] 页面 AI ACP Runtime 默认值回跳 Hermes v1

> 发现时间：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`
