Files
makelore/.project-docs/30-worklog/tasks/20260813-integrate-i2i-client-main-5d9e.md

92 lines
4.5 KiB
Markdown

# 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.