docs(integration): promote Learning project catalog

This commit is contained in:
2026-08-20 00:17:42 +08:00
parent d967b0f6bf
commit a5fc8bf596
14 changed files with 114 additions and 115 deletions

View File

@@ -35,9 +35,9 @@
| `shared/image-prompt-museum.ts` | Prompt Museum 列表、分类、详情、署名与分页共享 DTO | 客户端不包含内容数据集,只定义服务端字段契约 |
| `electron/api/routes/image-prompt-museum.ts` | Main-owned Museum 列表/详情代理与 Works 登录态 | 仅 GET 固定路径和白名单查询;Renderer 不获得 Bearer Token |
| `src/pages/ImagePromptMuseum/index.tsx` / `src/lib/image-prompt-museum.ts` / `src/stores/image-prompt-museum.ts` | Museum 搜索/筛选/详情与一次性 Prompt 回填 | 原 Prompt 只带回 Canvas 输入框,不自动发送;页面不接受投稿或互动 |
| `shared/learning.ts` / `src/lib/learning.ts` | Learning 课程、生成、进度、播放与 runtime 的共享 DTO/Renderer facade | 普通云端数据走 Host API;材料、课程包与本地播放器能力走白名单 IPC,Renderer 不持有 Token、归档路径或账号分区键 |
| `electron/api/routes/learning.ts` / `electron/services/learning-*.ts` | Main-owned Learning 云端代理、账号分区本地课程库、Agent/ASR/runtime 与播放器服务 | 固定 Works 路径/能力、输入与响应边界;课程包和外部 production Stage artifact 使用大小/摘要/清单校验;player HTTP session 使用账号绑定与 nonce,iframe bridge 使用 exact source/origin 和单文档生命周期 |
| `src/pages/Learning/` / `src/components/layout/LearningSidebar.tsx` | 课程广场、生成工作台、模块选择和嵌入式课堂 | 大课保持单课程 aggregate,模块只选择同一已验证包内的 production Stage |
| `shared/learning.ts` / `src/lib/learning.ts` | Learning 项目列表、详情、媒体和下载结果的共享 DTO/Renderer facade | 所有访问走固定 Host API;Renderer 不持有 Token、任意上游 URL、归档或本地路径 |
| `electron/api/routes/learning.ts` / `electron/services/learning-project-download.ts` | Main-owned Learning 项目代理、受控媒体读取和原生 ZIP 保存 | 固定 Works 路径、严格 DTO/MIME/大小边界、最多五跳同源重定向、SHA-256/ZIP 签名校验和原子重命名 |
| `src/pages/Learning/` / `src/components/layout/LearningSidebar.tsx` | 分页项目卡片、README 详情和下载入口 | 保留登录与 `module_access.learning`;README 禁用原始 HTML,图片使用受控媒体路径,旧生成/播放器入口不存在 |
| `src/pages/AiHardware/index.tsx` | Robot 管理、现有六位 Binding,以及已实现的 default-on 引导式热点配网状态机 | 只编排非敏感步骤;不接收 Wi-Fi 密码,不把 `bound` 展示为在线证明 |
| `src/lib/ai-hardware.ts` | Renderer 侧 Robot Host API 类型、安全错误映射和稳定 Binding/hotspot facade | 读取 Main-owned capability,调用固定 portal-open,并只传递短效 hotspot candidate ID;不添加任意 URL、SSID 或 Renderer IPC |
| `electron/api/routes/ai-hardware.ts` | Main-owned Robot 云端代理,以及本地 capability/portal/hotspot actions | 默认开启、精确环境值 `0` 回滚;所有本地操作必须在 Works token/上游访问前返回,且只投影稳定安全错误 |
@@ -54,7 +54,7 @@
- Built artifact preflight 检查最终上传的同字节快照,但客户端可被绕过且不产生可信 receipt;服务端仍是合同、摘要和不可变 Release 安全权威。
- Robot Renderer → typed AI hardware API → Main Host route → Robot Hotspot Module → Windows/macOS Adapter。云端 Binding 仍由 Main 代理;热点选择/连接移入页面,但家庭 Wi-Fi 凭据输入仍只留在固件 Portal,系统 Wi-Fi 保留为兜底。
- Prompt Museum Renderer → typed Host API facade → Main fixed list/detail route → Works Square。Museum 只把用户明确选择的 Prompt 原文暂存到进程内 Store 并导航回当前 Canvas;不会直接触发 Agent 命令或生成任务。
- Learning Renderer → typed Host API / allowlisted IPC → Main account-bound Learning services → Works Square 或 verified local course/player artifact。Main 从认证身份派生本地不透明分区并以 epoch 拒绝迟到结果;课程 aggregate hash 是云端身份,模块 id/hash 不提升为独立权益主体。
- Learning Renderer → typed Host API → Main fixed project routes → Works Square list/detail/media/archive。Main 代理受控图片并持有原生保存与归档校验;Renderer 只获得安全 DTO、图片数据和保存结果。
## Risky Or Sensitive Areas
@@ -71,7 +71,7 @@
- 多 Conversation 事件处理必须区分对话快照与 Workspace 任务更新;不得用任务时间戳推进 Conversation 流水位,也不得让旧会话的迟到流覆盖当前会话。
- Quote 编辑、重报价、确认和项目删除都跨 Renderer/Main/Works Square。异步结果必须核对当前 Workspace + Conversation;删除当前项目时必须先使旧选择和事件流失效,再加载剩余 Workspace。
- Prompt Museum 图片和来源 URL 来自服务端数据。服务端必须完成内容授权/署名审核;若未来需要凭据化素材,应新增 Main-owned 媒体代理,不能把对象存储凭据放进 Renderer URL。
- Learning 的远端 JSON、错误、下载重定向、课程 ZIP、播放器 artifact 与 iframe runtime 都跨信任边界;必须保持严格 DTO/路径/大小/摘要/账号 epoch/同源重定向/player nonce/exact source+origin/单文档 bridge/能力投影、一次 401 refresh 和固定安全错误,不能把 Renderer/课程内容变成任意 Works 代理。
- Learning 的远端 JSON、Markdown、媒体、错误和 ZIP 下载跨信任边界;必须保持严格 DTO、固定项目/媒体路径、可信 raster MIME、媒体/README/归档大小、同源重定向、声明字节数、SHA-256、ZIP 签名、一次 401 refresh 和固定安全错误,不能把 Renderer 或 README 变成任意 Works/网络/文件系统代理。
- Gateway 命令的 REST fallback 只处理 WebSocket 发送、断连和 ACK 超时,必须复用 `client_command_id`;业务错误回退会造成重复提交。Quote 任务恢复只更新 Workspace 所有的任务,不能覆盖当前 Conversation。
- `closeEventSessions` 只负责本地流和缓存生命周期;远端 Conversation Session 是服务端持久资源。
- 单图来源选择器当前仍由精确中文 quick reply 触发,并以 Brief medium 判断图生图或视频首帧用途;扩展更多输入用途前应先把消息协议升级为结构化 action/purpose,避免展示文案与行为继续耦合。
@@ -79,4 +79,4 @@
## Last Updated
2026-08-17
2026-08-20