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

8.2 KiB

Task: 将图生图与 Updater 修复整合到当前主分支

Identity

  • Task ID: 20260813-integrate-i2i-updater-main-c4e7a1
  • Mode: Integration
  • Branch: main
  • Worktree: D:\Datas\OthersProjects\makelore
  • Base commit: f05b9d4cb5
  • Owner: codex
  • Status: In Progress

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: pending against the committed combined head.

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.