feat(runtime): establish miniapp kernel and sdk design

This commit is contained in:
2026-08-05 00:46:16 +08:00
parent d8aa087bc8
commit 9fb8cd1598
86 changed files with 4615 additions and 1364 deletions
+91 -24
View File
@@ -1,47 +1,114 @@
# LineUp App
这里是 LineUp 多端客户端工作区
这里是 LineUp App 的客户端工作区LineUp Runtime 是其中向 MiniApp 提供通信、可靠性、
调度与安全能力的核心运行环境。
当前 Kotlin Android 客户端是 IM、协议、设备接入与交互闭环的快速实验基线;长期目标是在系统 WebView / WebKit 之上构建 LineUp Mini Runtime,为内置 Renderer 与受限第三方小程序 Surface 提供统一的运行环境。
## 当前实现基线
## Git 与开发验证约定
LineUp 不只是一个聊天客户端,而是用户设备上的协作 Runtime:它连接
AppServer 与 Remote Agent,维护会话、消息、Store、outbox、App Inbox、权限与恢复;
当前 `chat` 兼容实现是其上的第一个系统级 MiniAppInteract 的 IM Mode。
客户端工作区使用独立仓库,远端为 `ssh://git@100.121.118.116:2222/lineup/app.git`。Git 用于源码版本管理、备份和协作;提交应对应完整、可验证的改动,但**不再作为 Mac 浏览器验证前端改动的传输手段**。
当前唯一的客户端实现与验收基线是:
日常 Web 联调由 Linux 工作机直接提供可信 Host:
```text
Tauri 2 Desktop Host + Web Reference Host
```
这里的 **Host(运行外壳)** 指的是把同一套 LineUp 程序放进不同运行环境的方式,
并不表示有两套客户端或两套聊天逻辑。它们共用同一份 TypeScript
`LineUpRuntime` 和 Chat Core App
- **Tauri Desktop Host** 是正式桌面应用的外壳。它负责创建桌面窗口,并在 Runtime
授权后提供文件、通知等操作系统能力。
- **Web Reference Host** 是浏览器中的同代码开发和验证入口。它用于 Vite 开发、
Tailscale 联调与自动化回归,不能替代桌面版的系统能力。
无论运行在哪个 Host 中,连接、同步、消息存储和 Agent 协议都只能由 Runtime 管理,
不能各自实现一套。
不再规划、实现或维护独立 Android/Kotlin 客户端,也不再维护 Wails Host。旧实验设计仅在
Git 历史中保留,不是当前产品、协议或交付路线。
## MVP-R1Runtime 托管 Chat
当前 MVP 已验证以下边界:
```text
Chat Core App
└── ChatRuntimeSDK
└── LineUpRuntime
├── Transport / sync loop / outbox
├── Conversation Store / App Inbox
├── app_scope + conversation_id 路由
└── lineup.v1 Compatibility Adapter
```
- `LineUpRuntime` 是网络连接、消息存储、同步循环和待发送队列的唯一管理者;
- Runtime 从本地 Core App Registry(内置应用清单)加载默认 `chat`,而不是由
`main.ts` 直接拼出聊天页面;
- Chat 只能通过 Runtime SDK 接收已筛选的消息和状态、恢复并确认已处理的 Inbox 消息,
再向 Runtime 提交用户动作;
- Runtime 拒绝非法或不匹配的 `app_scope` / `conversation_id`,并在内部兼容既有
`lineup.v1`
- 登录、同步、发送、本地回显、Markdown、Agent 状态和刷新恢复保持回归通过;
- 当前 Tauri/Web 回归为 23 个测试文件、99 个测试,`npm run build` 通过。
完整边界、MiniApp SDK 路线和发布安全约束见 [APP架构设计.md](APP架构设计.md)。
## 开发与验证
客户端工作区使用独立仓库,远端为 `ssh://git@100.121.118.116:2222/lineup/app.git`
Linux 开发机通过 Vite 启动 Web Reference HostMac 或其他设备可经 Tailscale 用浏览器
直接打开它,看到的就是 Linux 工作区中正在修改的同一份前端,无须每次改动都同步或重新
clone 源码。
```bash
cd lineup-app/tauri
npm run web:dev
```
Mac 浏览器通过 Tailscale 打开 `http://100.121.118.116:1420`,即可看到 Linux 工作区的 Vite 热更新。Mac 只在首次配置、切换开发机或需要本地桌面打包时再 clone / pull 源码
当前开发地址
```bash
git clone ssh://git@100.121.118.116:2222/lineup/app.git ~/Workspace/lineup-app
cd ~/Workspace/lineup-app
git pull --ff-only origin main
```text
http://100.121.118.116:1420/
```
`tauri/node_modules/``tauri/dist/``tauri/src-tauri/target/` 均为本机可再生文件,已被忽略;每台机器按自身架构重新安装和构建。
常用命令:
```bash
# Runtime / SDK / Renderer 自动化回归
npm test -- --run
# TypeScript 检查与 Web production build
npm run build
# Tauri 桌面 Host 开发
npm run desktop:dev
```
`tauri/node_modules/``tauri/dist/``tauri/src-tauri/target/` 都是可再生本机构建产物,
已被忽略。
## 文档入口
- [DESIGN.md](DESIGN.md):Android 实验阶段的产品、连接与交互设计;
- [TECHNOLOGY_SELECTION.md](TECHNOLOGY_SELECTION.md):已确认的客户端与 Mini Runtime 技术路线;Tauri 2 是第一优先的 Reference Host SpikeWails v3 在同一基线后续评估
- [M4_COMPATIBILITY_AND_RELEASE.md](M4_COMPATIBILITY_AND_RELEASE.md):M4 的跨 Host 兼容矩阵、签名 Surface 发布、验证与回滚策略
- [tauri/README.md](tauri/README.md)Tauri 2 Reference Host 的实现、构建状态和下一阶段范围
- [LineUp App 层架构设计方案](../设计/02.正式方案/lineup-app-layer-architecture.md):跨端 App Shell、Interaction Kernel、Renderer、Surface 与 Capability 的正式架构
- [LineUp UI Surface 与 App Capability 协议](../设计/02.正式方案/lineup-ui-surface-protocol.md):小程序 Surface 和 Agent 调 App 能力的协议定义。
- [APP架构设计.md](APP架构设计.md)LineUp App、Runtime、MiniApp SDK、Surface/Capability 安全与后续迭代的权威架构设计;
- [程序文件清单与功能说明.md](程序文件清单与功能说明.md):客户端 Runtime、Chat Core App、Tauri/Web Host 与测试的文件清单
- [tauri/src/README.md](tauri/src/README.md):源码目录、依赖方向与模块放置规则
- [tauri/README.md](tauri/README.md)Tauri/Web Host 的运行、构建、行为回归和历史里程碑
- [迭代/](迭代/00.base.md):按迭代记录当前基线和后续 Runtime Kernel / 应用编排目标
- [LineUp App 最终设计方案](../设计/02.正式方案/app_final_design.md):当前架构的唯一汇总入口;
- [LineUp App 层架构方案](../设计/02.正式方案/lineup-app-layer-architecture.md):M0~M4 历史实施记录与迁移基础;
- [LineUp Runtime 与 App SDK 架构方案](../设计/02.正式方案/lineup-runtime-sdk-architecture.md)Runtime / SDK 的详细契约来源;
- [LineUp UI Surface 与 App Capability 协议](../设计/02.正式方案/lineup-ui-surface-protocol.md)Surface sandbox 和 Capability Gateway 协议;
## 当前目录边界
## 工作区目录
```text
lineup-app/
├── DESIGN.md # Android 快速实验设计
├── TECHNOLOGY_SELECTION.md # 已确认的客户端 / Mini Runtime 技术路线
── tauri/ # Tauri 2 Reference Host(第一优先 Spike
└── README.md # 本目录说明与文档入口
├── README.md # LineUp App 工作区入口
├── APP架构设计.md # 当前权威架构、SDK 与发布安全设计
── tauri/ # Tauri Desktop + Web Reference Host
├── src/ # Runtime、Core App 与 Host 组合入口
└── src-tauri/ # Tauri Rust Host
```
实际的唐僧叨叨 Android 上游实验代码保留在 `../upstream/tangsengdaodao-android/`,不与未来的 LineUp 多端客户端工程混放。