Files
makelore/.project-docs/30-worklog/tasks/20260813-integrate-i2i-updater-main-c4e7a1.md

171 lines
8.5 KiB
Markdown

# Task: 将图生图与 Updater 修复整合到当前主分支
## Identity
- Task ID: 20260813-integrate-i2i-updater-main-c4e7a1
- Mode: Integration
- Branch: main
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: f05b9d4cb5d0023092b21d361bf53000139b9bb6
- Owner: codex
- Status: Completed
## Scope
- Merge the reviewed branch
`codex/20260813-integrate-i2i-client-main-5d9e-integrate-i2i-client-main`
into the current local `main` baseline `f05b9d4` while preserving `main` as
the first parent.
- Preserve the completed Updater correction at `f05b9d4` and the source
branch's image-to-image implementation, tests, README, and accepted canonical
memory without squashing either history.
- Keep the source integration task record read-only on its source branch, as in
the repository's established merge pattern, and write integration notes only
to this task record.
- Re-run the combined focused suites, typecheck, scoped lint, production build,
documentation checks, and an independent final read-only review before
releasing `main` ownership.
## Intent And Constraints
- The image picker submits one real Workspace Asset ID through the existing
Renderer helper -> Host API -> Main workspace adapter path; it introduces no
local-file description or parallel upload transport.
- Only `brief.medium === 'image'` uses image-reference semantics. Video, null,
and omitted medium retain first-frame behavior; invalid non-null media remain
rejected at the cloud adapter boundary.
- Preserve Workspace / Conversation / Task ownership from ADR-001 and the
packaged-cloud versus development-only local-adapter boundary.
- Updater failures remain Main-owned: missing stable manifests remain errors,
raw diagnostics stay in Main logs, and the Renderer shows one concise,
localized message without treating the client as already current.
- Do not push, publish an updater artifact, install a build, or claim packaged
desktop / live Works Square / Bailian production readiness.
## Project Context Loaded
Task context:
- Task ID: `20260813-integrate-i2i-updater-main-c4e7a1`
- Mode: Integration
- Branch: `main`
- Worktree: `D:\Datas\OthersProjects\makelore`
- Base commit: `f05b9d4cb5d0023092b21d361bf53000139b9bb6`
- Other active local tasks: reviewed through their registry-owned task records;
no unresolved semantic conflict with this merge was found. The remaining
read-only image-to-image review task has no implementation scope.
- Overlap assessment: the Updater commit and image-to-image branch touch
disjoint product/test paths. The target adds canonical AI Design memory and
its own source task record; the latter remains on the source branch only.
Read:
- `.project-docs/05-agent-entry/memory-index.md`
- `.project-docs/00-brief/project-positioning.md`
- `.project-docs/00-brief/success-criteria.md`
- `.project-docs/30-worklog/current-state.md`
- `.project-docs/10-decisions/decision-index.md`
- `.project-docs/10-decisions/adr-001-ai-design-conversation-ownership.md`
- `.project-docs/20-architecture/system-overview.md`
- `.project-docs/20-architecture/module-map.md`
- `.project-docs/20-architecture/data-flow.md`
- `.project-docs/40-domain/business-rules.md`
- `.project-docs/40-domain/glossary.md`
- `.project-docs/50-evidence/evidence-index.md`
- `.project-docs/60-reflection/reflection-index.md`
- `.project-docs/60-reflection/skill-candidates.md`
- `.project-docs/80-commitments/commitments.md`
- `.project-docs/90-maintenance/stale-items.md`
- Source image-to-image and Updater task records.
Relevant understanding:
- Project goal: preserve the two-module Makelore desktop boundary while adding
image-reference generation through the existing Main-owned workspace API.
- Current integrated focus: AI Design uses Workspace-scoped tasks/assets and
Conversation-scoped dialogue state; Updater release artifacts are still an
external release-owner responsibility.
- Decisions affecting this task: ADR-001 ownership remains unchanged; no new
architecture direction or contradictory source of truth is introduced.
- Evidence and commitments: 47 source-focused image-to-image tests and 37
Updater tests passed before merge, along with typecheck, scoped lint, and
`build:vite`; packaged/live image-to-image and updater smoke remain pending.
- Likely files: AI Design page/cloud adapter/tests, Updater files already in the
base, README, canonical AI Design/current-state memory, and this task record.
- Stale or unknown context: project-positioning remains a template; production
Works Square/Bailian and signed stable updater artifacts are not verified.
Gate result:
- Passed.
## Plan
1. Create a normal no-fast-forward merge with `main` as first parent, retaining
source history while excluding the read-only source task record from the
destination tree.
2. Inspect the combined tree and promote only durable, non-conflicting Updater
and image-to-image facts into canonical current-state memory.
3. Run the combined focused tests, typecheck, scoped ESLint, `build:vite`, Git
whitespace checks, and project-document validation.
4. Obtain an independent Sol PASS/FAIL review, close this task record, then use
a post-merge rollover task if required by base-attribution drift checks.
## Outcome
- Completed and released the Updater feature task after two independent-review
findings were corrected. Commit `f05b9d4` preserves raw Main diagnostics and
failure semantics, de-duplicates concurrent shared errors per check, and
presents only one concise localized Renderer message.
- Created merge commit `e221374` with current `main` commit `3e90129` as first
parent and reviewed image-to-image tip `f11eb49` as second parent. The merge
was conflict-free and preserves the complete history of both lines.
- Kept source integration record
`20260813-integrate-i2i-client-main-5d9e.md` on the source branch only. It was
not modified or copied into the destination tree; this task record contains
the current integration notes.
- `main` now contains the generalized single-image picker, current-Workspace
Asset selection/upload, image-reference versus video-first-frame behavior,
and strict cloud adapter handling for omitted/null/valid/invalid Brief media.
- Promoted the already verified Updater behavior, evidence, release obligation,
and current product description into README and canonical project memory,
without claiming that a signed artifact or live update path was published.
## Verification
- Merge topology: `e221374` parents are `3e90129` then `f11eb49`; `main` is the
first parent and the requested source branch is the second parent.
- Combined focused unit suites: 6 files / 84 tests passed, covering Updater
Main/UI/store/sidebar and image-to-image page/cloud-adapter behavior.
- `pnpm run typecheck`: passed.
- Scoped ESLint over all affected Updater and image-to-image product/test files:
passed with no findings.
- `pnpm run build:vite`: passed for Renderer, Electron Main, and Preload; only
the repository's existing dynamic-import and chunk-size warnings were emitted.
- `pnpm test`: 1566/1569 passed. The three failures exactly match the Updater
task's recorded pre-merge baseline: missing `.opencode/agent` in
`youth-plain-language-skill.test.ts`, plus the two existing timeout/generation
failures in `opencode-manager.test.ts`. None touches this merge's files.
- `check_project_docs.py`: passed.
- `check_doc_drift.py --task-id
20260813-integrate-i2i-updater-main-c4e7a1`: passed before final review.
- `git diff --check`: passed; Git reported only the normal LF/CRLF checkout
notices when displaying diffs.
- Independent final Sol review: PASS on committed HEAD `5ae9ef7`, with no
P0-P3 findings. Standards and Spec both passed; merge topology, architecture,
behavior, tests, documentation accuracy, and clean-worktree state were
independently confirmed. Packaged updater and live Works Square/Bailian smoke
remain non-blocking external follow-ups.
## Follow-ups
- Deploy the matching image-to-image service contract and run packaged desktop
plus live Works Square/Bailian smoke with both a generated Workspace Asset and
a locally uploaded reference.
- Replace the exact localized quick-reply trigger with a structured
action/purpose before adding another media-input mode or changing the label.
- Align the authoritative client version, publish signed/notarized updater-role
artifacts, and run discover/download/restart/install smoke from an older
stable package.
## Promotion Candidates
- None. Accepted, non-conflicting source facts have been promoted by this
Integration Gate; external production gates remain explicitly pending.