# Task: Merge AI Design image-to-image into current client main ## Identity - Task ID: 20260813-integrate-i2i-client-main-5d9e - Mode: Integration - Branch: codex/20260813-integrate-i2i-client-main-5d9e-integrate-i2i-client-main - Worktree: D:\Datas\OthersProjects\makelore-integrate-i2i-main-5d9e - Base commit: a03043d048826609cb4f8cb7d782bde93e0e77f4 - Owner: codex - Status: Completed ## Scope - Integrate the already reviewed AI Design single-reference image-to-image client change (`809364e`) onto the current client `main` baseline `a03043d`. - Preserve the already integrated local release-build and first-conversation latency work while resolving any overlapping README, page, test, or canonical documentation edits semantically. - Re-run the focused page suite, typecheck, scoped lint and Renderer build on the resulting integration head, then obtain an independent read-only review. - Land the verified result on local `main` only if its existing updater task can be left intact; never overwrite, stash, reset, or absorb that task's uncommitted files. ## Intent And Constraints - The picker continues to submit one real Workspace Asset ID through the existing `attachmentAssetIds` transport; no parallel upload or local-file description path is introduced. - Only `brief.medium === 'image'` selects image-reference semantics. `video`, null and missing medium retain the historical video-first-frame behavior. - Preserve Workspace / Conversation / Task ownership from ADR-001 and keep image/video tasks Workspace-scoped. - Preserve the deployed exact quick reply `从作品列表选择图片` for this compatible increment; a structured action/purpose remains future protocol work. - Keep all Git and file mutations rooted in this isolated integration worktree until the original `main` worktree is clean and ownership-safe. ## Outcome - Merged reviewed feature commit `809364e` into the current `a03043d` client baseline with merge commit `88281b8`; Git resolved the overlapping `ImageCanvas` and page-test history without source conflicts and preserved the existing first-conversation work. - Promoted the generalized single-image picker, one-Asset attachment boundary, image/video/null-medium behavior, exact-string compatibility risk and production-smoke obligation into the current canonical project memory. - README now describes text-to-image, single-reference image-to-image, project work selection and local upload on top of the latest client product state. - Independent review found that legacy snapshots with an omitted Brief medium were rejected by the cloud adapter before the page fallback. Commit `7a807a2` now accepts only an omitted/null/image/video medium at the boundary, normalizes omission to null, and continues to reject other non-null values. ## Verification - Source merge preflight used `git merge-tree` against current `main`; only the README paragraph needed an overlapping semantic merge and the final merge completed automatically. - `pnpm install --offline --frozen-lockfile`: passed with the pinned pnpm; dependencies were restored entirely from the local store. - `pnpm exec vitest run tests/unit/image-canvas-page.test.tsx`: `25 passed`. - `pnpm exec vitest run tests/unit/works-square-design-workspace.test.ts`: `22 passed`, including REST and WebSocket missing-medium normalization and invalid-medium rejection. - `pnpm run typecheck`: passed. - `pnpm exec eslint src/pages/ImageCanvas/index.tsx tests/unit/image-canvas-page.test.tsx`: passed. - `pnpm run build:vite`: passed for Renderer, Main and Preload; emitted only the repository's existing dynamic-import and chunk-size warnings. - `git diff --check`: passed. - `check_project_docs.py`: passed. - `check_doc_drift.py --task-id 20260813-integrate-i2i-client-main-5d9e`: passed after keeping the source task record read-only on its source branch, matching the repository's established Integration Gate pattern. - Packaged desktop and live Works Square/Bailian provider smoke were not run. - Initial independent Sol review: FAIL with one P2 missing-medium adapter gap and one P3 stale verification record; both were corrected. Final independent Sol review is rerun against the corrected head before promotion. ## Follow-ups - Replace exact localized quick-reply matching with a structured asset-picker action/purpose before adding more input modes or changing that label. - Run packaged-desktop and live Works Square/Bailian image-to-image smoke after the matching client and server releases are deployed. ## Promotion Candidates - None recorded.