docs: establish runtime migration baseline
This commit is contained in:
@@ -18,6 +18,37 @@ macOS 的 `src-tauri/Info.plist` 为当前 Tailscale / 私网 HTTP AppServer 配
|
|||||||
|
|
||||||
`ui.open / patch / close` 和 `app.call` 已被协议层识别,但目前安全降级为可见提示;它们是下一阶段 Mini Runtime Surface Host 与 Capability Registry 的实现范围,不能在当前 Host 页面中直接执行 Agent JavaScript 或直接授予设备能力。
|
`ui.open / patch / close` 和 `app.call` 已被协议层识别,但目前安全降级为可见提示;它们是下一阶段 Mini Runtime Surface Host 与 Capability Registry 的实现范围,不能在当前 Host 页面中直接执行 Agent JavaScript 或直接授予设备能力。
|
||||||
|
|
||||||
|
## Milestone 0 当前行为基线
|
||||||
|
|
||||||
|
本节记录 Runtime 重构前已经由 Mac 开发态验证的行为。它是 M0 的回归基线,不代表最终模块结构;正式阶段任务和准入门槛见 [App Layer 架构方案 §9.1](../../设计/02.正式方案/lineup-app-layer-architecture.md#91-阶段任务清单与硬性准入门槛)。
|
||||||
|
|
||||||
|
| 范围 | 当前行为 | 当前实现位置 | 重构后必须保持 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 登录 | 用户输入 AppServer 地址、手机号、验证码;登录请求 10 秒超时;地址仅保存到 localStorage | `src/main.ts` | 成功登录进入会话;失败原因对用户可见 |
|
||||||
|
| 会话 | 当前只有一个 Agent channel;退出清空页面内消息并停止同步 | `src/main.ts` | 会话状态必须可由 Store 管理,不能依赖 DOM |
|
||||||
|
| 发送 | 用户消息先本地显示,再调用 `/messages/send`;显示已发送或失败 | `src/main.ts` | 即时反馈、送达状态与失败可见性不退化 |
|
||||||
|
| 历史同步 | 首次从 cursor `0` 连续拉取到空页;之后以 `lastSeq + 1` 每 1.5 秒增量轮询 | `src/main.ts` | 保持包含式 cursor 语义,不能漏消息或无限热循环 |
|
||||||
|
| Agent 文本 | 将 `lineup.v1.text` 解码为 Markdown,使用 `marked + DOMPurify` 渲染 | `src/protocol.ts`、`src/main.ts` | GFM、安全净化和外链防护不退化 |
|
||||||
|
| Agent 状态 | `thinking` 显示临时指示器;其他状态更新顶栏 presence | `src/protocol.ts`、`src/main.ts` | 状态应更新已有状态项,而非无限追加气泡 |
|
||||||
|
| 进度和错误 | progress/error 目前以系统提示显示 | `src/protocol.ts`、`src/main.ts` | 迁移后至少保持可见,M1 再升级为正式卡片 |
|
||||||
|
| 未实现扩展 | `ui.open / patch / close` 与 `app.call` 仅安全降级为提示,绝不执行不可信脚本或原生能力 | `src/protocol.ts`、`src/main.ts` | 在 M2/M3 完成前始终保持拒绝执行 |
|
||||||
|
|
||||||
|
### M0 回归场景
|
||||||
|
|
||||||
|
每次迁移或拆分模块后,至少执行以下场景;其中 `R01` 为构建级检查,其余为 Mac 浏览器开发态人工验收,直至 M0 建立自动化测试。
|
||||||
|
|
||||||
|
- **M0-R01:构建。** `npm run build` 通过 TypeScript 检查与 Vite 打包。
|
||||||
|
- **M0-R02:登录。** 使用 Tailscale AppServer 登录;成功切换到聊天页,错误地址/超时给出可理解提示。
|
||||||
|
- **M0-R03:历史追平。** 登录后 presence 从“正在同步消息”变为“已同步,等待消息”,已有 Agent 历史可见。
|
||||||
|
- **M0-R04:本地回显。** 发送普通文本后,用户气泡立即出现,随后显示已发送或发送失败。
|
||||||
|
- **M0-R05:Agent 回复。** Hermes 回复能够在未刷新页面时出现,并按 Markdown 安全渲染。
|
||||||
|
- **M0-R06:刷新恢复。** 刷新并重新登录后,历史仍可追平,不能重复无限渲染同一条 Agent 消息。
|
||||||
|
- **M0-R07:安全降级。** 收到未知 `lineup.v1.*` 类型、`ui.*` 或 `app.*` 请求时,页面不崩溃、不执行脚本/能力,并给出可见提示。
|
||||||
|
|
||||||
|
### 当前结构债务(M0 的改造对象)
|
||||||
|
|
||||||
|
`src/main.ts` 目前同时包含 App Shell、页面 DOM、登录、直接 HTTP `fetch`、会话 cursor、同步循环、协议到展示的映射和 renderer。M0 的目的不是改变上述用户行为,而是将它们迁入 `app-shell`、`transport`、`conversation-store`、`interaction-kernel` 和 `renderer-registry` 等独立边界;在 M0 准入前不新增 Surface 或 Capability 功能。
|
||||||
|
|
||||||
## 本地命令
|
## 本地命令
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
Reference in New Issue
Block a user