docs: integrate Robot hardware module
This commit is contained in:
@@ -22,8 +22,16 @@ Makelore 是 Electron 桌面客户端。Renderer 负责项目操作与状态展
|
||||
| AI Design Image Source Picker | 当前 Workspace 已完成图片或本地上传 | 图片 Brief 绑定图生图参考图;视频 Brief 绑定首帧;提交一个真实 Asset ID |
|
||||
| AI Design Event Routing | Main 云端适配器 → Host API/SSE → Renderer store | Conversation 更新按 Workspace + Conversation 路由;任务更新按 Workspace 归并 |
|
||||
|
||||
| Robot Workspace | Account-scoped agent configuration, device activation/binding, assignment, and credential-recovery UI | Renderer receives only safe Works Square projections; credentials, activation-code history, and upstream error bodies remain outside durable UI state. |
|
||||
| AI Hardware Main Route | Fixed `/api/works/ai-hardware` Host API to Works Square proxy | Main owns Bearer auth, stable operation IDs, bounded retry, ETag/If-Match, request/response limits, and error redaction. It never forwards Renderer authorization headers. |
|
||||
|
||||
## Important Boundaries
|
||||
|
||||
- Robot is the single enabled hardware product module; there is no separate Hardware card. Learning remains disabled.
|
||||
- AI hardware network access is Main-owned. Renderer cannot hold Works Square or Xiaozhi credentials and cannot select arbitrary upstream paths or headers.
|
||||
- One local account maps to one server-side Xiaozhi account binding. Agents and devices are resources beneath that account binding, not separate Xiaozhi users.
|
||||
- Robot/Canvas/module-selection routes must not initialize AI Programming projects or providers.
|
||||
|
||||
- 发布只有现有项目配置底部的一个入口,不新增发布工作台、侧栏或资源卡。
|
||||
- 创建者发布唯一调用链是 `ProjectPublishAction → publishWorksProjectSource → Main-owned release build → preflightStaticArtifact → source+built+artifact_contract 上传 → 状态轮询`;客户端不再提供 Compose runner、deploy-check、watcher/arm/upload 协调或手工 ZIP 上传入口。
|
||||
- release builder 对 Main-owned 安全快照运行安装包内固定 npm 11.6.2 的 `ci --ignore-scripts`,并显式调用项目 `package-lock.json` 锁定的 Vite。不得使用全局 PATH、预存 `node_modules` 或 Renderer 提供的路径/origin。项目 Vite config/plugins 以桌面用户权限执行,该边界不是 sandbox。
|
||||
|
||||
@@ -4,6 +4,7 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
## Integrated Through
|
||||
|
||||
- `aba5cae286807093cf4ef643fe9f498050985c31`: Robot / AI hardware module, Main-owned Works Square proxy, and cross-repository wire contract.
|
||||
- `86ece3a` / `4dde8f3`:客户端登录七天滑动续期及集成提交。
|
||||
- `724290e` / `dcc92fc`:Main-owned 一键打包提交审核及集成提交。
|
||||
- `493b31c`:客户端三类 `ProjectType`、小游戏/小程序受控发布模板与自定义项目发布隔离。
|
||||
@@ -28,6 +29,7 @@ Updater 仍由 Electron Main 选择目标 feed、记录原始诊断并保持失
|
||||
|
||||
## Recently Completed
|
||||
|
||||
- 2026-08-13: Integrated the enabled `Makelore Robot` top-level module at `/ai-hardware`. Renderer uses typed safe DTOs while Electron Main owns Works Square authentication, idempotency identities, ETag/If-Match forwarding, response projection, limits, timeouts, and credential recovery. Robot and Canvas routes no longer initialize AI Programming projects/providers. No production deployment or real activation-code smoke is claimed.
|
||||
- 2026-08-08:合并登录续期和一键发布;发布成功后保存精确 app/version/review 映射,Renderer 不接触 Token、ZIP 或本地路径。
|
||||
- 2026-08-08:补齐跨平台 Electron E2E fixture、Windows ZIP 预检和异常成功响应安全投影。
|
||||
- 2026-08-09:新建项目支持小游戏、小程序和自定义三类不可变产品类型;前两类生成固定 Vite 发布模板,自定义及缺少类型字段的旧项目不显示一键提交入口。
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
## Scope
|
||||
|
||||
- Resume the existing integration owner to fast-forward the completed Robot / AI hardware source commit into local `main` after verifying the current remote `main` tip.
|
||||
- Fetch the authoritative remote `main`, inspect all commits not present in the
|
||||
local branch, and merge them into the reviewed local `main` without rewriting
|
||||
either history.
|
||||
@@ -94,6 +95,10 @@ Gate result:
|
||||
|
||||
## Outcome
|
||||
|
||||
- On 2026-08-13, resumed this integration task for the user's local-main merge request. `git fetch origin main --prune` succeeded and confirmed `origin/main=22add3f01f2b7cb6318495e8294db006f6f18abf`.
|
||||
- Verified source commit `aba5cae286807093cf4ef643fe9f498050985c31` is a direct descendant of that remote tip and that local `main` is its ancestor, then fast-forwarded local `main` to `aba5cae` without rebase, reset, stash use, or conflict.
|
||||
- The existing shared `stash@{0}` was not applied, popped, or dropped.
|
||||
- Promoted the Robot/Main-owned hardware boundary into canonical current-state and system-overview documents. This request does not authorize or claim a remote push.
|
||||
- `git fetch origin main --prune` resolved the authoritative remote tip to
|
||||
`f4113a872f7cd6aee6829c9597c882846bc4085b`. The histories had diverged at
|
||||
`253bad8b40c8cd20a25362006f5d80a4e5c4cd4a`: local `main` contained 18
|
||||
@@ -146,6 +151,13 @@ Gate result:
|
||||
|
||||
## Verification
|
||||
|
||||
- Robot source closeout before integration: 8 focused files / 72 tests passed; TypeScript and task-aware document drift passed.
|
||||
- Post-fast-forward `pnpm test`: 156 files / 1681 tests passed.
|
||||
- `pnpm run typecheck` and `pnpm run build:vite`: passed; build retains only existing chunk/dynamic-import warnings.
|
||||
- Real loopback Makelore Main-to-Works Square contract: 8/8 passed.
|
||||
- `pnpm run lint:check`: 0 errors and 6 existing warnings.
|
||||
- Robot module-navigation Electron E2E: 2/2 passed.
|
||||
- Git and task-aware document checks are rerun after the integration documentation commit; independent final review remains the last gate.
|
||||
- `pnpm install --frozen-lockfile` — passed.
|
||||
- High-risk focused Vitest selection — 19 files, 494/494 passed.
|
||||
- `pnpm test` — 146 files, 1574/1574 passed.
|
||||
@@ -162,6 +174,8 @@ Gate result:
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- The Robot integration is complete on local `main`. Production still requires matching Works Square/Xiaozhi deployment, feature configuration, credentials, and a real one-time activation-code smoke.
|
||||
- Stable mutation operation IDs are retained across ambiguous retries in the running app but are not persisted across an application restart.
|
||||
- Signed packaged updater smoke and live Works Square/Bailian image-to-image
|
||||
smoke remain external release gates; this Git synchronization does not claim
|
||||
that either production environment has been exercised.
|
||||
|
||||
Reference in New Issue
Block a user