feat(design): integrate conversation-first creation flow
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-04 07:39:58 +08:00
parent 14efa99f0c
commit 945b40de11
14 changed files with 374 additions and 234 deletions

View File

@@ -4,6 +4,24 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
## Integrated Through
- Conversation-first AI Design client source
`fe50e4ba198649a07c5c9443f15edf7dfa2a47e6` from task
`20260903-design-guided-conversation-client-8b4e1c72` is integrated onto local
`main` by task `20260904-integrate-guided-design-6a3f9c82`. ImageCanvas now makes
free-form conversation the dominant creation surface: first-use guidance invites
creators aged 8–16 to describe a subject, scene, or feeling in their own words,
the Agent-facing examples only prefill the composer, and ordinary persisted
Decision Prompts no longer appear as required option-card forms. The secondary
surface is now a compact “AI 听懂的想法” projection whose constraints,
references, and video details are collapsed by default; manual field editing is
explicitly optional. ADR-007 remains intact: Current Specification is still the
server semantic authority, Quote confirmation still submits only immutable Quote
identity, and Main transport/operation certainty is unchanged. Focused/adjacent
45-test, typecheck, scoped lint, production build, pressure 1/1, and Electron E2E
2/2 passed. The ordinary full suite passed 1,866 tests with 2 conditional skips
and one unrelated Pi real-process 2-second timing assertion at 2,232 ms; that
exact file passed 5/5 in isolation. No server contract, paid generation, package,
deployment, publication, or remote push is claimed.
- AI Design command-outcome source
`83f3f134a6779251aaa18f3290308cd9221b038f` from task
`20260903-design-message-send-client-8d3f2a71` is integrated on `main` as
@@ -670,6 +688,7 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
- 本地构建必须使用安装版 Electron Node、固定 npm 11.6.2 和项目 `package-lock.json` 锁定的 Vite,不得回退到全局 PATH、已有 `node_modules` 或未验证的 npm 闭包;依赖安装需要网络。
- 项目 Vite config/plugins 以桌面用户权限执行,不能称为 sandbox;此风险边界必须在发布说明中保留。
- AI Design 的 Current Specification 是唯一语义权威。Direction events 必须按 Workspace/Direction/revision/operation identity 收敛;assistant delta、event cursor、Task progress 和 Asset updates 不得改写 Living Form。
- AI Design 的用户交互以自然对话为主:先理解并复述用户已经说清楚的内容,再一次只推进一个关键问题。Current Specification 的客户端投影只作为“AI 已理解”的辅助摘要和可选手动调整面板;新增字段不得自动变成必填问题或选项卡表单。
- Design unknown-result replay 必须复用原 stable command 与 semantic operation ID;业务错误不得重复提交。Immutable Quote confirmation 只提交 Quote ID,Task recovery 不授权新的生成 intent。
- AI 绘画 Main-owned Workspace JSON 请求和共享 Works token refresh 必须在 30 秒内结束并释放共同等待者;只允许 `GET`/`HEAD`/`OPTIONS` 在 Electron transport 失败后透明改走 Node fetch,PATCH/POST 等 mutation 必须由具有显式幂等身份的上层协议决定是否重试。临时 `disable-http2` 只用于安装包诊断,不能替代该有限生命周期与非重放边界。
- 服务端 current Direction Session 与 semantic history 不由客户端在注销或退出时删除;Main 只关闭本地流、清除 drafts/pending state 和本机凭据。
@@ -683,4 +702,4 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
## Last Updated
2026-09-03
2026-09-04

View File

@@ -0,0 +1,133 @@
# Task: Make AI Design conversation primary
## Identity
- Task ID: 20260903-design-guided-conversation-client-8b4e1c72
- Mode: Feature
- Branch: codex/20260903-design-guided-conversation-client-8b4e1c72-design-guided-conversation-client
- Worktree: D:\Datas\OthersProjects\.codex-worktrees\makelore\20260903-design-guided-conversation-client-8b4e1c72
- Base commit: 14efa99f0ca7a02d6ae4e08311f125c56b9399a6
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Make the AI Design conversation the primary creation surface and remove the
impression that a young creator must complete a design form before the Agent can
help.
- Reframe the canonical Specification projection as a compact, secondary “current
understanding” summary with optional detail editing; keep Quote, Task, Asset, and
typed reducer behavior unchanged.
- Add clear first-use guidance that invites a free description and gives a few
example starting points without turning them into required choices.
- Own only the ImageCanvas Renderer presentation and focused unit/Electron tests.
Do not change Electron Main transport, server DTOs, Plugin navigation, packaging,
deployment, publication, or paid generation.
## Intent And Constraints
- Preserve ADR-007: the server Current Specification remains the single semantic
authority, Renderer drafts stay local until accepted, and generation still uses
an immutable Quote ID.
- Conversation must remain visually and behaviorally usable when the Specification
is sparse. The interface should invite the user to describe subject, scene, and
feeling in their own words, not enumerate professional fields or force option
cards.
- The compact summary may show what the Agent currently understands and expose an
optional detail drawer, but it must not compete with the composer for attention or
claim readiness before server validation.
- Keep Chinese-only copy, the existing light visual language, keyboard behavior,
reduced-motion support, 40–44 px interactive targets, and current responsive
single-mount rules.
- Preserve the prior definitive-failure versus transport-unknown behavior and all
stable operation identities.
## Concurrent Task Gate
- Task ID: `20260903-design-guided-conversation-client-8b4e1c72`.
- Mode: Feature.
- Branch/worktree:
`codex/20260903-design-guided-conversation-client-8b4e1c72-design-guided-conversation-client` /
`D:\Datas\OthersProjects\.codex-worktrees\makelore\20260903-design-guided-conversation-client-8b4e1c72`.
- Base commit: `14efa99f0ca7a02d6ae4e08311f125c56b9399a6`.
- Ownership result: isolated and exclusively claimed by `codex-root`; the root
`main` worktree and its three foreign untracked task records remain untouched.
- Peer assessment: the only planning Design peers are an old test-only Enter change
on an August baseline and an undefined historical assessment task. Neither owns
the current ImageCanvas production surface. Plugin navigation and other active
tasks use separate worktrees and have no path overlap.
- Gate result: Passed.
## Project Context Loaded
- Read the startup memory set, active task, integrated state, decision index,
ADR-007, system overview, module/data flow, Design business rules and success
criteria, evidence/reflection/commitment/stale indexes, the integrated youth Design
source, the command-outcome source, and relevant peer scopes.
- Confirmed that the existing “我的创作” card is a projection, not semantic
authority. Making it secondary is compatible with ADR-007 and does not require a
DTO or reducer change.
- `project-positioning.md` and the top-level project success placeholder remain
incomplete; concrete product constraints come from `AGENTS.md`, current state,
ADR-007, architecture, domain rules, and the previous integrated Design tasks.
- Planning Gate result: Passed.
## Outcome
- The conversation is now the dominant creation surface on desktop and mobile. Its
first-use copy teaches creators to describe a subject, scene, or feeling in their
own words, and example sentences only prefill the composer.
- Ordinary server Decision Prompts are no longer rendered as option-card forms or
allowed to hold the youth-facing projection in an artificial “choice” phase.
- The secondary panel is now “AI 听懂的想法”: it states that it updates from the
conversation, keeps the concise summary and production readiness visible, and
places constraints, references, and video details behind an optional disclosure.
- Manual field editing remains available as an explicitly optional action. Quote,
Task, Asset, typed reducer, stable operation identity, and Main transport behavior
are unchanged.
- The desktop layout gives materially more width to conversation while preserving a
single mounted summary/production surface at each responsive breakpoint.
## Verification
- Red baseline: the two initial component files produced `8 failed / 7 passed`,
confirming the old headings, mobile entry, and Decision Prompt cards still drove
the experience.
- Focused conversation/card/projection tests: `22 passed`.
- Adjacent ImageCanvas, Fine Tune, issue-copy, and store regression: `45 passed`.
- TypeScript `tsc --noEmit`: passed.
- Changed-file ESLint: passed.
- Production Vite/Electron build: passed; only existing browserslist, dynamic-import,
and chunk-size warnings were emitted.
- Electron/Playwright Design workspace flow: `2 passed`, covering desktop/mobile
responsive mounts, optional manual adjustment, conversation, Quote, and generation
confirmation.
- Full unit run reached `1866 passed / 2 skipped / 1 failed`; the sole failure was an
unrelated Pi real-process timing assertion (2.232 seconds against a 2-second
threshold) under parallel load. Its isolated rerun passed `5/5`.
- Coding chat pressure test, which the package script runs separately: `1 passed`.
- `git diff --check`: passed.
## Follow-ups
- None recorded.
## Promotion Candidates
- Target: `.project-docs/30-worklog/current-state.md` and the canonical AI Design UX
description.
- Proposal: record the MakeLore AI Design surface as conversation-primary. The
persistent Specification projection is a compact “AI understood” summary and
optional manual-edit surface, never a prerequisite form for beginning or
continuing creation.
- Evidence: explicit user direction, red tests demonstrating the former form-led
behavior, 45 focused/adjacent passing tests, production build, and 2/2 Electron
end-to-end flow.
- Future impact: new Specification fields must not automatically become visible
questions or controls; Agent guidance should remain natural language and request
only one consequential clarification at a time.
- Semantic conflicts: this supersedes the earlier “persistent Creation Card as the
primary co-authored form” presentation while preserving ADR-007 authority,
reducer, Quote, and production boundaries.
- Human confirmation: already supplied by the user in this task; no additional
product-direction confirmation is required during integration.

View File

@@ -0,0 +1,93 @@
# Task: Integrate conversation-first AI Design client
## Identity
- Task ID: 20260904-integrate-guided-design-6a3f9c82
- Mode: Integration
- Branch: main
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: 14efa99f0ca7a02d6ae4e08311f125c56b9399a6
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Integrate completed client source `fe50e4b` from task
`20260903-design-guided-conversation-client-8b4e1c72` onto exact `main`
baseline `14efa99f0ca7a02d6ae4e08311f125c56b9399a6`.
- Promote the accepted conversation-first AI Design presentation into canonical
current state, system overview, and business rules.
- Preserve the three explicitly adopted foreign untracked task records byte-for-byte;
do not add, move, edit, stash, reset, or clean them.
- Do not change server, Electron Main, DTO/API, generation, billing, plugins,
package, deployment, publication, or remote history.
## Intent And Constraints
- The user explicitly replaced the former form-led presentation with a natural
conversation that helps young creators describe a clear need. This is the
human-confirmed product direction for the integration decision.
- ADR-007 remains accepted: Current Specification is still server authority,
Renderer drafts remain local until accepted, and generation confirmation still
submits only an immutable Quote identity.
- Integrate the source task record unchanged. Canonical documents may summarize its
accepted promotion candidate but must not overstate local automation as production
deployment or real paid generation evidence.
- The completed source task passed focused, adjacent, typecheck, lint, production
build, and Electron end-to-end verification. One unrelated Pi real-process timing
assertion failed only under full parallel load and passed 5/5 in isolation.
## Project Context Loaded
- Concurrent Task Gate: passed in Integration mode on root `main`; the worktree is
exclusively owned by this task and its three known foreign task records were
adopted by exact fingerprint under prior user authorization.
- Planning Gate: passed after reading the active and source tasks, integrated current
state, ADR-007, system overview, business rules, success criteria, and the evidence,
reflection, commitment, and stale indexes.
- Other active tasks are isolated in separate worktrees. The completed Design source
owns the exact ImageCanvas changes being integrated; plugin navigation is already
present in the base; no active peer owns or semantically conflicts with this scope.
- `project-positioning.md` remains a project-wide placeholder. Concrete constraints
come from accepted ADR-007 and the populated architecture/domain/current-state
records.
## Outcome
- Applied source `fe50e4ba198649a07c5c9443f15edf7dfa2a47e6` without
conflicts onto its exact parent baseline. The source task record remained
byte-identical to the committed source blob.
- `main` now contains the conversation-first ImageCanvas: natural description and
one-at-a-time Agent questions are primary, persisted option cards are not rendered
as a form, the “AI 听懂的想法” projection is secondary, detailed constraints are
collapsed by default, and manual field adjustment is explicitly optional.
- Promoted the accepted behavior to `current-state.md`, `system-overview.md`, and
`business-rules.md` without changing ADR-007's authority or Quote boundary.
- The three adopted foreign untracked task records remain unmodified and excluded
from the integration commit.
## Verification
- Source product paths match source commit `fe50e4b` exactly.
- Root-main focused/adjacent unit regression: `45 passed`.
- Root-main TypeScript `tsc --noEmit`: passed.
- Root-main changed-file ESLint: passed.
- Root-main production Vite/Electron build: passed with only existing browserslist,
dynamic-import, and chunk-size warnings.
- Root-main Electron/Playwright AI Design flow: `2 passed` across desktop/mobile,
optional manual adjustment, conversation, Quote, and generation confirmation.
- Source full-unit evidence: `1866 passed / 2 skipped / 1 unrelated timing failure`;
the Pi real-process timing file passed `5/5` in isolation, and pressure passed
`1/1`.
- Source task record blob equality, `git diff --check`, project-doc completeness,
and task-aware integration drift: passed.
## Follow-ups
- None recorded.
## Promotion Candidates
- Applied the source task's conversation-first presentation candidate to canonical
current state, system architecture, and business rules. No unresolved promotion
candidate remains.