Files

3.6 KiB
Raw Permalink Blame History

LineUp App 迭代基线:Runtime 托管 Chat

迭代编号: 00.base 状态: 已实现、已验证 日期: 2026-08-04 定位: 后续迭代必须保持的客户端基础能力

1. 基线说明

本迭代建立了 LineUp Runtime 承载第一个 Core App 的最小闭环。当前实现中的 chat 是 图文 IM 形态的应用;在后续设计中,它将演进为 Interaction App 的 IM 模式,但现阶段 仍保留 app_scope = "chat" 作为代码和协议兼容名称。

当前客户端基线是:

Tauri 2 Desktop Host + Web Reference Host

两种 Host 运行同一份 TypeScript Runtime 和 Core AppTauri 用于正式桌面交付,Web 用于 浏览器开发、Tailscale 联调和自动化验证。它们不是两套客户端,也不各自实现通信、同步或 消息存储。

2. 已实现的 Runtime 边界

LineUpRuntime 是以下对象的唯一所有者:

Transport
Conversation Store
sync loop
outbox
App Inbox
作用域筛选
旧 lineup.v1 兼容
去重与恢复

Chat 不能直接访问 AppServer、Transport、Store、登录态或 Host 特权能力,只能使用 ChatRuntimeSDK

Runtime
  → 校验、持久化和筛选 Agent 消息
  → 投递 app_scope + conversation_id 匹配的消息
  → 通过 SDK 提供订阅、Inbox、ACK 和 Runtime Action
  → 接收 Chat 的用户动作并进入 outbox

3. 已实现的应用加载关系

当前已经将“默认应用选择”和“应用具体挂载”分开:

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 和执行摘要;
  • choiceconfirminput Tool Call 的状态机和可信交互卡片;
  • Tool Result / Tool Cancel 回声;
  • Surface 生命周期的基础管理;
  • Capability Registry、确认、受限 Host 执行和审计;
  • Artifact 元数据校验与 Host 临时内容缓存;
  • App Inbox 的持久化、恢复、ACK 和 message_id 去重。

所有入站内容必须先经过 Runtime 协议和作用域校验。非法或不匹配的消息不得进入 Chat, 未知内容只能安全降级,不能执行远端脚本或系统能力。

5. 基线验证

npm test -- --run
21 个测试文件通过
94 个测试通过

npm run build
TypeScript 检查通过
Vite production build 通过

6. 本基线的边界

以下能力尚未作为本迭代的完整实现:

动态 App Registry
App 安装、更新、回滚和移除
App Instance Manager
App Focus Manager
Runtime Tool Router
Interaction App 的 IM / Audio / Video 模式统一运行时
扩展 App 的前后台切换和恢复
完整应用市场

这些内容属于 01.kernel.md 定义的下一阶段目标。00.base 的意义是保护 已经完成的通信、可靠投递、作用域和安全边界,后续重构不得让这些能力回到 App 或 main.ts 中。