feat(runtime): establish miniapp kernel and sdk design
This commit is contained in:
@@ -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` 兼容实现是其上的第一个系统级 MiniApp:Interact 的 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-R1:Runtime 托管 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 Host;Mac 或其他设备可经 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 Spike,Wails 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 多端客户端工程混放。
|
||||
|
||||
Reference in New Issue
Block a user