From ecc42a8c36b1d7125f091a6c7aedb16298cd5d54 Mon Sep 17 00:00:00 2001 From: brother7 <7brother7@gmail.com> Date: Thu, 13 Aug 2026 23:35:00 +0800 Subject: [PATCH] docs: integrate Robot hardware module --- .project-docs/20-architecture/system-overview.md | 8 ++++++++ .project-docs/30-worklog/current-state.md | 2 ++ .../tasks/20260813-sync-push-main-9c2f71.md | 14 ++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/.project-docs/20-architecture/system-overview.md b/.project-docs/20-architecture/system-overview.md index 4d992a0..e48066c 100644 --- a/.project-docs/20-architecture/system-overview.md +++ b/.project-docs/20-architecture/system-overview.md @@ -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。 diff --git a/.project-docs/30-worklog/current-state.md b/.project-docs/30-worklog/current-state.md index b5f788f..8719db1 100644 --- a/.project-docs/30-worklog/current-state.md +++ b/.project-docs/30-worklog/current-state.md @@ -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 发布模板,自定义及缺少类型字段的旧项目不显示一键提交入口。 diff --git a/.project-docs/30-worklog/tasks/20260813-sync-push-main-9c2f71.md b/.project-docs/30-worklog/tasks/20260813-sync-push-main-9c2f71.md index 886bb80..662db0e 100644 --- a/.project-docs/30-worklog/tasks/20260813-sync-push-main-9c2f71.md +++ b/.project-docs/30-worklog/tasks/20260813-sync-push-main-9c2f71.md @@ -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.