Merge branch 'main' of https://git.nianxx.cn/wangxuming/makelore
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled

This commit is contained in:
2026-09-07 20:28:05 +08:00
71 changed files with 1478 additions and 2170 deletions

View File

@@ -40,9 +40,10 @@
| `electron/api/routes/image-workspace.ts` | AI 绘画 Host API 与本地事件流投影 | Renderer 只通过该路由访问 Main-owned workspace adapter |
| `electron/image-workspace/works-square-workspace.ts` | Works Square V2 adapter、stable command/operation IDs 与 Direction event mapping | unknown transport result 保留精确命令;Main 持有 token、ticket、WebSocket、retry classification、safe errors,并把闭集 progress stage 归一为固定 youth-safe copy |
| `src/stores/image-workspace.ts` | Current Workspace/Direction/Living Form、local drafts、pending operations、operation activity 与 Workspace resources | revision conflict 刷新 canonical state;activity/delta/terminal event 按 Workspace、Direction 和 operation identity 收敛;event order/Task progress 不成为 Specification authority |
| `src/pages/ImageCanvas/{index,DesignConversationPane,DesignProductionPanel,DesignPlanHistory,DesignWorksRail,YouthCreationCard}.tsx` | 中央 conversation/active 制作方案、operation-scoped AI activity、右侧 Works rail、immutable Quote confirmation、历史 Tasks 与 Assets | active 方案留在时间线;已提交状态折叠为历史。固定活动附着于对应 user bubble 且不成为对话、制作方案或模型思考过程;最终 Prompt、reference binding 与直接参数编辑继续通过同一 V2 reducer,确认只提交 Quote ID |
| `src/pages/ImageCanvas/{index,DesignConversationPane,DesignProductionPanel,DesignPlanHistory,DesignHistoryRail,DesignWorksRail,YouthCreationCard}.tsx` | 左侧 Workspace 项目导航、中央 conversation/active 制作方案与 operation-scoped AI activity、右侧全高历史作品栏、immutable Quote confirmation | active 方案留在时间线;桌面端已提交 Tasks 与 Assets 进入右侧历史栏,紧凑窗口仍在时间线内展示。固定活动附着于对应 user bubble 且不成为对话、制作方案或模型思考过程;最终 Prompt、reference binding 与直接参数编辑继续通过同一 V2 reducer,确认只提交 Quote ID |
| `src/pages/ImageCanvas/reference-tokens.ts` and `src/pages/ImageCanvas/youth-form-projection.ts` | `@图片N` alias、缺失 binding 检测与青少年可读方案投影 | Prompt 是 reference 用途的唯一可见表达;binding row 只管理真实 Asset/token identity。缺失 token 对应图片时提供定点上传并阻止 Quote,新增/删除/替换保持稳定 reference ID 与连续 alias |
| `src/pages/ImageCanvas/DesignWorksRail.tsx` | 全高右侧 Workspace 选择、创建和删除 | 桌面为 320–340 px 右 rail,紧凑布局复用右侧 Sheet;无“获取灵感”入口,不创建嵌套 Conversation |
| `src/pages/ImageCanvas/DesignHistoryRail.tsx` | 当前 Workspace 的全高右侧历史作品栏 | 桌面为 320–340 px 右 rail,按时间展示 Tasks 与生成 Assets;紧凑布局将同一历史保留在中央时间线 |
| `src/pages/ImageCanvas/DesignWorksRail.tsx` | 紧凑布局的 Workspace 选择、创建和删除 | 仅作为左侧项目 Sheet 使用;无“获取灵感”入口,不创建嵌套 Conversation |
| `shared/image-prompt-museum.ts` and `electron/api/routes/image-prompt-museum.ts` | Dormant Museum DTO 与 Main-owned 列表/详情/auth/media 安全边界 | 当前 App 不挂载 Museum Renderer 页面;历史路由回到 Canvas。仅保留固定 GET/媒体校验兼容,不代表可见模块 |
| `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 |

View File

@@ -0,0 +1,64 @@
# Task: Align plugin drawer and project configuration modules
## Identity
- Task ID: 20260907-project-config-plugin-panel-c84e71a2
- Mode: Feature
- Branch: codex/20260907-project-config-plugin-panel-c84e71a2-project-config-plugin-panel
- Worktree: /Users/inmanx/Documents/makelore-plugin-panel
- Base commit: 918f8f80dca61b0f561f96b168e4ef541734d414
- Owner: codex
- Status: Complete
## Scope
- Keep the Project Configuration resource entries in one four-column top row.
- Present Plugins in the same narrow right-side drawer system as Models, Skills, and Knowledge.
- Remove Plugin filters and manual refresh, and expose a direct Skill-like capability list with details and the applicable primary action.
- Keep Plugin details user-facing and capability-oriented, without package/runtime/technical implementation fields.
- Show each configured model's exact name and its supported reasoning strengths in the Models drawer.
## Intent And Constraints
- Preserve `/project-config/plugins` as the canonical deep link and retain all compatibility redirects.
- Preserve the existing unified Plugin controller, Main/store authority boundaries, acquisition, installation, project enablement, assignment, and billing semantics.
- Keep the single Makelore light visual system and update focused unit/Electron E2E coverage.
## Outcome
- Project Configuration now keeps Models, Skills, Knowledge, and Plugins in one four-column resource row.
- The Plugin workspace uses the same 430px right drawer width and shared drawer chrome as the other resources while retaining `/project-config/plugins` deep-link behavior.
- The Plugin drawer now presents one compact list without filters or manual refresh; each row exposes capability copy, details, and the honest next lifecycle action or settled state.
- Plugin details now describe introduction, human-facing capabilities, usage, actions, and necessary settings while omitting package, version, permission-id, runtime, policy, and billing implementation fields.
- The Models drawer now makes the exact model id primary and shows selectable thinking strengths from server-owned capabilities or verified local model profiles; unknown capabilities remain explicitly unknown.
- README describes the updated presentation; shared canonical project-memory updates remain an Integration Gate promotion candidate.
## Verification
- `corepack pnpm exec vitest run tests/unit/plugins-page.test.tsx tests/unit/plugin-workspace-controller.test.ts tests/unit/coding-feature-ui.test.tsx tests/unit/agent-creation-dialog.test.tsx tests/unit/pi-product-artifact.test.ts --maxWorkers=4` — 46 passed.
- `corepack pnpm run typecheck` — passed.
- `corepack pnpm run lint:check` — passed with 5 pre-existing warnings in `src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`; no errors.
- `corepack pnpm run build:vite` — passed; existing dynamic-import and chunk-size warnings only.
- `corepack pnpm exec playwright test tests/e2e/plugin-marketplace.spec.ts tests/e2e/project-plugins.spec.ts tests/e2e/project-configuration-skills.spec.ts` — 5 passed; asserts the four-card row, equal drawer widths, direct Plugin list, capability-only details, and unchanged acquisition/device/project authorities.
- `corepack pnpm test` — 1,913 passed and 3 skipped across the normal and pressure suites.
- Isolated Electron screenshots visually confirmed the direct Plugin list, two-action card composition, new description, and capability-only detail hierarchy.
## Follow-ups
- None recorded.
## Integration
- Merged into `main` as `3ecfb74` while preserving the independently restored AI Canvas left project sidebar documentation.
- Restarted the development Electron process from `/Users/inmanx/Documents/makelore` after integration so the visible application uses the merged source tree.
## Promotion Candidates
### Project resource drawer presentation
- Target canonical documents: `.project-docs/30-worklog/current-state.md`, `.project-docs/20-architecture/system-overview.md`, `.project-docs/20-architecture/module-map.md`, `.project-docs/20-architecture/data-flow.md`, and `.project-docs/40-domain/business-rules.md`.
- Proposal: record Project Configuration's single four-card resource row and same-width drawers; describe Plugins as a direct unfiltered capability list with contextual acquisition, installation, project-addition, local-enable, or settled-state actions and capability-only details; describe Models as exact configured model ids plus trusted selectable thinking strengths.
- Evidence: `src/pages/ProjectConfiguration/index.tsx`, `src/pages/Plugins/index.tsx`, `src/pages/Plugins/PluginDetails.tsx`, `src/lib/coding-model-options.ts`, focused unit coverage, five Electron E2E scenarios, typecheck, lint, and production compilation.
- Future impact: future resource settings work must not restore the wide/filter-heavy Plugin workspace or expose plugin implementation metadata in user-facing details, and must not guess unknown model reasoning levels.
- Semantic conflicts: the current canonical documents still describe a wide/filter Plugin workspace and earlier model capability presentation; this proposal supersedes only that presentation while preserving separate acquisition, device-installation, project-enablement, assignment, and Main/store authority boundaries.
- Human confirmation required: no; the user explicitly requested this presentation.

View File

@@ -0,0 +1,60 @@
# Task: Restore AI design project sidebar
## Identity
- Task ID: 20260907-restore-design-project-sidebar-6f8b2a1c
- Mode: Feature
- Branch: codex/20260907-restore-design-project-sidebar-6f8b2a1c-restore-design-sidebar
- Worktree: /Users/inmanx/Documents/makelore-restore-design-sidebar
- Base commit: 918f8f80dca61b0f561f96b168e4ef541734d414
- Owner: codex
- Status: Ready for Integration
## Scope
- Restore AI Design Workspace navigation to the left-side project rail on desktop.
- Keep the central conversation and active production plan unchanged, and avoid a duplicate desktop project list on the right.
- Preserve a compact-layout project Sheet for non-Electron/browser-sized viewports.
- Update focused layout/Canvas tests, the shared Electron Canvas fixture, and README product-state copy.
## Intent And Constraints
- Treat the user's report as explicit product-owner correction of the September 7 right-rail presentation decision.
- Preserve ADR-007 semantic authority: one Workspace, one current Direction, one Living Form/Specification, one active plan, and immutable Quote confirmation.
- Reuse the existing MainLayout Sidebar and ImageWorkspaceSidebar for desktop rather than introducing another project state owner.
- Preserve Canvas cloud-only/Main-owned transport, project create/select/rename/delete behavior, the single light visual system, and compact-layout access.
- Do not modify the concurrent Plugin drawer task or the occupied main worktree.
## Outcome
- Canvas again mounts the shared application Sidebar on `/image-canvas`, so the existing `ImageWorkspaceSidebar` provides desktop Workspace create/select/rename/delete navigation on the left and the title-bar collapse/expand control is available again.
- The shared Sidebar accepts a Canvas-only compact visibility policy: it is hidden below the desktop breakpoint so browser-sized compact layouts do not squeeze the conversation surface.
- The Canvas page no longer renders a duplicate desktop `DesignWorksRail` on the right. Its conversation and active editable plan use the full remaining content width.
- Compact layouts retain `DesignWorksRail` as a Sheet, now opening from the left. Empty-state project creation still routes to the mounted desktop Sidebar or compact Sheet through the existing event contract.
- Canvas header spacing and loading skeleton now match the restored left sidebar, while retaining macOS logo and Windows caption-control safe areas.
- README now describes the restored left project sidebar and compact left Sheet.
## Verification
- `corepack pnpm install --frozen-lockfile` — passed with pinned pnpm `10.33.4`; lockfile unchanged.
- `corepack pnpm exec vitest run tests/unit/main-layout-module-gate.test.tsx tests/unit/image-canvas-page.test.tsx --maxWorkers=4` — 2 files / 21 tests passed.
- `corepack pnpm exec eslint src/components/layout/MainLayout.tsx src/components/layout/Sidebar.tsx src/pages/ImageCanvas/index.tsx tests/unit/main-layout-module-gate.test.tsx tests/unit/image-canvas-page.test.tsx tests/e2e/image-workspace-v2.spec.ts` — passed with no output.
- `corepack pnpm run typecheck` — passed.
- `corepack pnpm run build:vite` — Renderer/Main/Preload/utility production compile passed; existing dynamic-import, chunk-size, and stale Browserslist warnings only.
- `corepack pnpm test` — 226 normal files / 1,912 tests passed with 3 skips, then pressure 1/1 passed.
- `corepack pnpm run lint:check` — 0 errors; 5 pre-existing warnings in `src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
- `corepack pnpm exec playwright test tests/e2e/image-workspace-v2.spec.ts` — 2/2 passed. Desktop geometry proves a 256 px left Sidebar directly adjacent to the conversation with no right duplicate; compact geometry hides the shared Sidebar and opens the Works Sheet from the left.
- `git diff --check` — passed.
## Follow-ups
- Promote the recorded Canvas placement amendment into canonical project memory during a serialized Integration Gate.
## Promotion Candidates
- Target canonical documents: ADR-007, system overview, module/data-flow maps, business rules, current state, and any shared Canvas layout wording.
Proposal: amend the Canvas presentation description from a right-side Works rail to the restored desktop left project sidebar, with compact layouts retaining a project Sheet.
Evidence: direct user correction on 2026-09-07 plus the focused regression/Electron layout verification from this task.
Future impact: future Canvas redesigns must keep Workspace navigation visible on the left unless another explicit product decision changes it.
Semantic conflicts: supersedes only ADR-007's September 7 rail placement amendment; it does not change V2 Workspace/Specification/Quote authority.
Human confirmation required: no additional confirmation; the user supplied the correcting product direction in this task.