37 lines
1.3 KiB
Markdown
37 lines
1.3 KiB
Markdown
# Tasks: postmessage-duplex 通信层重构
|
||
|
||
## 1. 基础设施
|
||
|
||
- [ ] 1.1 安装 postmessage-duplex 依赖到 packages/drawnix
|
||
- [ ] 1.2 配置 SW 打包支持(内联 postmessage-duplex 到 SW bundle)
|
||
- [ ] 1.3 创建类型定义文件 `sw-channel-types.ts`
|
||
|
||
## 2. 应用层改造
|
||
|
||
- [ ] 2.1 创建 `SWDuplexClient` 新服务(基于 ServiceWorkerChannel)
|
||
- [ ] 2.2 实现任务创建 RPC 方法 `task:create`
|
||
- [ ] 2.3 实现任务查询 RPC 方法 `task:list`, `task:get`
|
||
- [ ] 2.4 实现任务操作 RPC 方法 `task:cancel`, `task:retry`, `task:delete`
|
||
- [ ] 2.5 实现事件订阅 `task:status`, `task:completed`, `task:failed`
|
||
- [ ] 2.6 实现 Chat 订阅 `chat:chunk`, `chat:done`, `chat:error`
|
||
|
||
## 3. Service Worker 改造
|
||
|
||
- [ ] 3.1 创建 `SWChannelManager` 管理多客户端通道
|
||
- [ ] 3.2 注册 RPC 处理器(task:create, task:list 等)
|
||
- [ ] 3.3 实现事件广播(排除发起者)
|
||
- [ ] 3.4 改造任务创建逻辑(原子性检查 + 响应)
|
||
|
||
## 4. 集成测试
|
||
|
||
- [ ] 4.1 单页面任务创建测试
|
||
- [ ] 4.2 多页面同时创建相同任务测试
|
||
- [ ] 4.3 页面刷新后任务恢复测试
|
||
- [ ] 4.4 Chat 流式通信测试
|
||
|
||
## 5. 迁移与清理
|
||
|
||
- [ ] 5.1 迁移 `swTaskQueueService` 使用新客户端
|
||
- [ ] 5.2 移除旧的 RxJS 订阅逻辑
|
||
- [ ] 5.3 更新相关文档
|