feat(design): integrate conversation-first creation flow
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user