# LineUp App 迭代基线:Runtime 托管 Chat **迭代编号:** 00.base **状态:** 已实现、已验证 **日期:** 2026-08-04 **定位:** 后续迭代必须保持的客户端基础能力 ## 1. 基线说明 本迭代建立了 LineUp Runtime 承载第一个 Core App 的最小闭环。当前实现中的 `chat` 是 图文 IM 形态的应用;在后续设计中,它将演进为 `Interaction App` 的 IM 模式,但现阶段 仍保留 `app_scope = "chat"` 作为代码和协议兼容名称。 当前客户端基线是: ```text Tauri 2 Desktop Host + Web Reference Host ``` 两种 Host 运行同一份 TypeScript Runtime 和 Core App:Tauri 用于正式桌面交付,Web 用于 浏览器开发、Tailscale 联调和自动化验证。它们不是两套客户端,也不各自实现通信、同步或 消息存储。 ## 2. 已实现的 Runtime 边界 `LineUpRuntime` 是以下对象的唯一所有者: ```text Transport Conversation Store sync loop outbox App Inbox 作用域筛选 旧 lineup.v1 兼容 去重与恢复 ``` Chat 不能直接访问 AppServer、Transport、Store、登录态或 Host 特权能力,只能使用 `ChatRuntimeSDK`: ```text Runtime → 校验、持久化和筛选 Agent 消息 → 投递 app_scope + conversation_id 匹配的消息 → 通过 SDK 提供订阅、Inbox、ACK 和 Runtime Action → 接收 Chat 的用户动作并进入 outbox ``` ## 3. 已实现的应用加载关系 当前已经将“默认应用选择”和“应用具体挂载”分开: ```text CoreAppRegistry → 选择默认 app_scope = chat CoreAppHostRegistry → 找到 chat 对应的 Host 装配器 chat-app-host.ts → 加载 Chat Shell、样式、Renderer、DOM Context 和 SDK ``` `main.ts` 现在只负责启动 Runtime、创建 Host 绑定和请求挂载默认 App,不再直接导入 Chat 的样式、Renderer 或 Shell。 相关实现: - `tauri/src/runtime/coordination/lineup-runtime.ts` - `tauri/src/runtime/app-management/app-registry.ts` - `tauri/src/runtime/app-management/runtime-app-host.ts` - `tauri/src/core-apps/chat/chat-app-host.ts` - `tauri/src/main.ts` ## 4. 已实现的消息和交互能力 当前基线已经覆盖: - 登录、退出和会话恢复; - HTTP 增量同步与包含式 cursor; - 用户消息本地回显、发送状态和 outbox; - Agent Markdown 消息和安全 DOM 渲染; - Agent status、progress、error 和执行摘要; - `choice`、`confirm`、`input` Tool Call 的状态机和可信交互卡片; - Tool Result / Tool Cancel 回声; - Surface 生命周期的基础管理; - Capability Registry、确认、受限 Host 执行和审计; - Artifact 元数据校验与 Host 临时内容缓存; - App Inbox 的持久化、恢复、ACK 和 `message_id` 去重。 所有入站内容必须先经过 Runtime 协议和作用域校验。非法或不匹配的消息不得进入 Chat, 未知内容只能安全降级,不能执行远端脚本或系统能力。 ## 5. 基线验证 ```text npm test -- --run 21 个测试文件通过 94 个测试通过 npm run build TypeScript 检查通过 Vite production build 通过 ``` ## 6. 本基线的边界 以下能力尚未作为本迭代的完整实现: ```text 动态 App Registry App 安装、更新、回滚和移除 App Instance Manager App Focus Manager Runtime Tool Router Interaction App 的 IM / Audio / Video 模式统一运行时 扩展 App 的前后台切换和恢复 完整应用市场 ``` 这些内容属于 [01.kernel.md](01.kernel.md) 定义的下一阶段目标。`00.base` 的意义是保护 已经完成的通信、可靠投递、作用域和安全边界,后续重构不得让这些能力回到 App 或 `main.ts` 中。