docs: record youth design client integration

This commit is contained in:
2026-09-02 19:12:13 +08:00
parent 7469e95ef7
commit da3c3f8ead
3 changed files with 155 additions and 108 deletions

View File

@@ -1,107 +0,0 @@
# Task: Implement youth-facing AI Design experience
## Identity
- Task ID: 20260902-design-youth-client-7c5e3a82
- Mode: Feature
- Branch: codex/20260902-design-youth-client-7c5e3a82-design-youth-client
- Worktree: D:\Datas\OthersProjects\makelore-design-youth-client-7c5e3a82
- Base commit: 841273b43354b2237a52a7081a9fceb647ef4e3f
- Owner: codex-root
- Status: Ready for integration
## Scope
- Replace the default comprehensive AI Design form with conversation plus a compact
“我的创作” Creation Card projected from the canonical Current Specification.
- Add a reviewed A/B/C field-presentation catalog, pure youth projection, contextual
“精细调整” controls, responsive desktop/mobile composition, and youth-facing
conversation/Quote/Task/result copy.
- Reuse the existing V2 typed reducer, Quote confirmation, Task/Asset reconciliation,
upload and local-draft behavior; do not add another state store or API contract.
## Intent And Constraints
- One understandable default serves creators aged 8-16; there are no age or expert
modes. Advanced control is contextual progressive disclosure.
- Conversation is the default mobile surface. Desktop gives conversation visual
priority and keeps the concise Creation Card visible.
- Direct choices use existing typed semantic commands and never synthesize chat
turns. Readiness is derived from concrete blockers/questions, not field counts.
- Preserve Main ownership of Works credentials and V2 transport, Chinese-only UI,
existing light visual language, 44 px targets, keyboard focus and reduced motion.
- No database/DTO change, second brief/store, compatibility layer, broad redesign,
package, deployment, publication, push or paid generation is in scope.
## Concurrent Task Gate
- Task ID: `20260902-design-youth-client-7c5e3a82`
- Mode: Feature
- Branch/worktree: `codex/20260902-design-youth-client-7c5e3a82-design-youth-client` /
`D:\Datas\OthersProjects\makelore-design-youth-client-7c5e3a82`
- Base commit: `841273b43354b2237a52a7081a9fceb647ef4e3f`
- Ownership result: Isolated and claimed by `codex-root`.
- Other active work: Model Tools owns a separate integration worktree and Plugin/Pi
files; it does not own the ImageCanvas Design surface.
- Gate result: Passed.
## Project Context Loaded
- Read the startup memory set, current state, architecture, business rules, success
criteria, ADR-007, commitments, peer task scope, and the accepted youth
experience/implementation specifications.
- The Current Specification remains the single semantic authority; Renderer drafts,
Task events and assistant deltas cannot become Creation Card truth.
- The UI reference library reinforced progressive disclosure and accessibility; its
parallax/dark-mode direction was rejected as inconsistent with MakeLore.
- Planning Gate result: Passed.
## Outcome
- Replaced the default professional field matrix with a conversation-first AI Design
surface and one compact “我的创作” card. The card is a pure projection of the
canonical Workspace Specification, Quote, Task and Asset state; the existing V2
reducer and typed commands remain the only write path.
- Added an exhaustive A/B/C presentation catalog for every current Specification
field, one active creative choice with an additional “你帮我选” option, contextual
“精细调整”, and a responsive single-mounted card that becomes a mobile bottom
sheet at narrow widths.
- Reworded conversation, Quote, Task, recovery and result states for creators aged
8–16. Compiler and Provider issue messages now cross a code-based youth-copy
boundary with safe unknown fallbacks, so raw English or technical messages are
not rendered in the youth UI.
- Kept video story editing on stable canonical Shot identities. The drawer supports
the server contract of up to 24 Shots and preserves timing, camera, framing,
motion, focus and transition data while a creator edits only a story beat.
- Bound transient Quote blockers to the canonical Specification revision: same-
revision refreshes preserve useful feedback, while a successful semantic change
clears stale blockers and enables a fresh Quote check. A terminal
`design_quote_blocked` response or event also settles its pending operation, so an
old Quote request cannot remain as a misleading “unknown” recovery action.
- No database migration, public DTO/API change, compatibility layer, second semantic
store, Provider activation or paid generation was added.
## Verification
- `pnpm exec vitest run tests/unit/youth-form-projection.test.ts tests/unit/youth-creation-card.test.tsx tests/unit/youth-issue-copy.test.ts tests/unit/fine-tune-drawer.test.tsx tests/unit/image-workspace-store.test.ts tests/unit/image-canvas-page.test.tsx` — 40 passed, including terminal Quote-blocked settlement, blocked-event recovery into a revised Quote, 24-Shot preservation, and explicit deletion of a cleared Shot.
- Broad client suite — 1802 passed and 2 skipped; two Electron binary-preparation
cases initially reported transient Windows `spawn EBUSY`, then their focused
rerun passed 3/3. The separate pressure suite passed 1/1.
- `pnpm exec tsc --noEmit` — passed.
- Scoped ESLint over every changed/new source and test file — passed.
- `pnpm run build:vite` — passed; only pre-existing chunk-size and mixed static/
dynamic import warnings were reported.
- `pnpm exec playwright test tests/e2e/image-workspace-v2.spec.ts` — 2 passed,
covering 375 px, 768 px and desktop composition plus direct edit, chat, Quote,
confirmation and Task flow.
## Follow-ups
- Run moderated usability sessions with creators aged 8–16 after integration.
- Paid Provider activation and live paid-generation acceptance remain a separate
release gate.
## Promotion Candidates
- None. This task implements the already accepted youth Design experience and does
not introduce a new canonical architecture or product decision.

View File

@@ -0,0 +1,134 @@
# Task: Integrate youth-facing AI Design client changes
## Identity
- Task ID: 20260902-design-youth-client-integration-7a6d3c92
- Mode: Integration
- Branch: codex/20260902-design-youth-client-integration-7a6d3c92-design-youth-client-integration
- Worktree: D:\Datas\OthersProjects\makelore-design-youth-integration-7a6d3c92
- Base commit: 7552cf59526449c29d663a769c0fb62d84a1a759
- Owner: codex-root
- Status: In Progress
## Scope
- Integrate reviewed Design Youth source commit
`0fd32a2d49045a8f9e7f2e19ba6477f48f93e30c` onto the current client frontier
`7552cf59526449c29d663a769c0fb62d84a1a759`.
- Replace the default professional field matrix with conversation plus one compact
“我的创作” card for creators aged 8-16, while retaining contextual “精细调整”.
- Preserve the V2 Current Specification reducer, immutable Quote confirmation,
Task/Asset reconciliation, stable operation identities, and Main-owned transport.
- Own the integration record, canonical current-state reconciliation, cross-frontier
verification, and safe promotion to local `main`.
- Correct the current frontier's eager CommonJS load of the ESM-only Pi package
manager, which the integrated Electron E2E exposed before any Design page opened.
## Intent And Constraints
- One understandable default serves creators aged 8-16; there is no separate age or
expert mode. Advanced controls remain progressive disclosure over canonical state.
- Direct choices use existing typed commands. Renderer drafts, assistant deltas,
Quote/Task events, and localized copy never become Specification authority.
- Known compiler/Task issues render code-based youth-facing Chinese copy; unknown
messages use a fixed safe fallback rather than raw server or Provider text.
- Do not add or change a database migration, DTO/API, semantic store, compatibility
layer, Provider route, pricing path, deployment, publication, push, or paid request.
- Keep the Pi package-manager correction limited to loading its existing dependency
on demand for remote Device Package installation; do not change package semantics.
- Preserve the two user-owned untracked records in the root checkout exactly as-is:
`20260901-package-122-c5e8.md` and `20260901-package-123-d7f3.md`.
- The source task record is read-only evidence. The integrated default branch will
retain this integration task and canonical memory, not import a second active task
ownership record.
## Concurrent Task Gate
- Task ID: `20260902-design-youth-client-integration-7a6d3c92`
- Mode: Integration
- Branch: `codex/20260902-design-youth-client-integration-7a6d3c92-design-youth-client-integration`
- Worktree: `D:\Datas\OthersProjects\makelore-design-youth-integration-7a6d3c92`
- Base commit: `7552cf59526449c29d663a769c0fb62d84a1a759`
- Ownership result: Claimed in an independent linked worktree. The preceding Model
Tools integration lock is complete and released; its exact client frontier is this
task's base commit.
- Other local state: root `main` contains only the two allowlisted user-owned untracked
task records. They are outside the source commit's changed paths and remain untouched.
- Gate result: Passed.
## Project Context Loaded
Read:
- the startup memory set, memory index, project positioning, success criteria,
decision index, current state, system overview, business rules, and ADR-007;
- source task `20260902-design-youth-client-7c5e3a82`, its exact commit boundary,
verification evidence, follow-ups, and promotion candidates;
- current Model Tools integration record and its released frontier.
Relevant understanding:
- The Current Specification remains the only semantic authority. The Creation Card
and Fine Tune drawer are projections/editors over the existing V2 reducer.
- Main remains the only Works Square transport and secret owner. Generation confirms
only an immutable Quote ID; public copy must not expose Provider internals.
- Youth readiness language may offer to check a production plan, but must not claim
server readiness before concrete Quote blockers have been evaluated.
- Source verification already covers responsive composition, direct edit, chat,
Quote/Task flow, stable Shot identities up to 24, terminal Quote-blocked settlement,
safe issue copy, typecheck, lint, build, broad tests, and Electron E2E.
- The new frontier changes Coding model tools/device packages and canonical memory,
not the ImageCanvas product/test files. Canonical documentation must be reconciled
in this integration task rather than overwritten from the older source base.
- Planning Gate result: Passed.
## Outcome
- Integrated reviewed source `0fd32a2d49045a8f9e7f2e19ba6477f48f93e30c`
onto the exact released Model Tools frontier with merge
`16157388afc2f6103aaee0bfd3c4e4e80c8fec48` and no source conflict.
- Canvas now presents one conversation-first “我的创作” card, A/B/C youth choices,
“你帮我选”, responsive single mounting, and contextual “精细调整” while the
server-owned Current Specification remains the only semantic authority.
- Quote blockers are revision-bound and terminal blocked responses/events settle
pending operations. Compiler and Task issues use code-based youth-facing Chinese
copy with fixed unknown fallbacks instead of raw technical messages.
- Fine Tune preserves stable Shot ids, timing/camera/framing/motion/focus/transition
metadata, supports the full 24-Shot server contract, and treats a cleared beat as
explicit deletion rather than submitting an invalid null value.
- The integrated Electron check exposed a pre-existing current-frontier startup
blocker before the Design page opened: Vite externalized an ESM-only static Pi
package-manager import as top-level CommonJS `require`. Commit
`c5447ae90c434c06dbafa724b229d8459cb829d0` now dynamically imports that existing
module only for remote Device Package installation; package semantics are unchanged.
- Removed the imported source task record from default-branch ownership scope; this
integration record and canonical current state contain the promoted evidence.
- No database migration, public DTO/API, second semantic store, compatibility layer,
Provider activation, paid generation, package, deployment, publication, push, or
PR was added or performed.
## Verification
- `corepack pnpm exec vitest run tests/unit/youth-form-projection.test.ts tests/unit/youth-creation-card.test.tsx tests/unit/youth-issue-copy.test.ts tests/unit/fine-tune-drawer.test.tsx tests/unit/image-workspace-store.test.ts tests/unit/image-canvas-page.test.tsx` — 6 files / 40 tests passed on the integrated frontier.
- `corepack pnpm exec vitest run tests/unit/device-package-manager.test.ts` — 5 tests
passed after the ESM loading correction.
- `corepack pnpm run typecheck` — passed before and after the correction.
- Scoped ESLint over all Design Youth source/tests and the corrected Device Package
manager — passed.
- `corepack pnpm run build:vite` — passed; only existing chunk-size and mixed
static/dynamic import warnings were reported. The active Main chunk contains the
expected dynamic Pi import and no eager Pi package-manager `require`.
- The first Electron run deterministically failed 2/2 at app launch with
`ERR_PACKAGE_PATH_NOT_EXPORTED`, before either test reached Canvas. After
`c5447ae`, the identical
`corepack pnpm exec playwright test tests/e2e/image-workspace-v2.spec.ts` run passed
2/2 in 3.8 seconds, covering Prompt Museum isolation plus desktop/375 px/768 px
Design conversation, direct edit, Quote confirmation, and Task flow.
## Follow-ups
- Run moderated usability sessions with creators aged 8-16 after packaging.
- Production package/deployment and real-account Design V2 smoke remain separate
release gates; paid Provider activation still requires explicit authorization.
## Promotion Candidates
- None recorded.