4.7 KiB
4.7 KiB
Task: Handle AI Design chat generation handoff
Identity
- Task ID: 20260907-design-chat-generation-handoff-client-7d3a9c41
- Mode: Feature
- Branch: codex/20260907-design-chat-generation-handoff-client-7d3a9c41-design-chat-generation-handoff
- Worktree: D:\Datas\OthersProjects.codex-worktrees\makelore\20260907-design-chat-generation-handoff-client-7d3a9c41
- Base commit:
bce20d9e4d - Owner: codex-root
- Status: Ready for Integration
Scope
- Verify that the existing client event contract can consume a server-owned
开始生成handoff without introducing a second Renderer command or public DTO. - Preserve the original optimistic user message, activity/reply settlement, stable operation identity, and the offered Quote created immediately after the committed chat event.
- Add focused Store coverage for two consecutive Direction projections belonging to the same accepted chat command.
Intent And Constraints
- Electron Main remains the only network authority. Source inspection showed that no
new Renderer orchestration is needed: the server can emit the committed chat and
subsequent Quote as two existing
design.direction.updatedevents in one Run. - Never infer generation intent from assistant prose or duplicate phrase matching in the client. The server owns interpretation and the Quote transaction.
- Keep Quote and generation confirmation separate: automatic handoff may create an immutable Quote, but only explicit user confirmation may create a Task or reserve Token Points.
- Derive a stable follow-up operation identity from the committed chat Interaction, and do not replay an already accepted/unknown mutation under a new identity.
Project Context Loaded
- Task context: feature task
20260907-design-chat-generation-handoff-client-7d3a9c41owns this managed linked worktree at basebce20d9e…. - Read: agent-entry and planning-gate docs, memory index, project positioning, integrated current state, decision index/system overview, ADR-007, architecture module/data-flow maps, domain/success criteria, evidence/reflection/commitment/stale indexes, and the recent Design activity and repeated-turn peer task records.
- Project goal: a youth-friendly Canvas whose Current Specification, immutable Quote, and confirmed Task remain server-authoritative.
- Current integrated focus: optimistic chat, operation-scoped activity and committed assistant streaming are already present; repeated identical user text is valid.
- Decisions affecting this task: ADR-007 requires stable operation identity, Main-owned transport, immutable Quote display, and explicit Quote-ID confirmation.
- Evidence and commitments: production logs show an input Run completed without any Quote/Task command; the real paid confirmation smoke remains separately pending.
- Likely modules:
shared/image-workspace.ts, the Works Square adapter, Renderer image-workspace Store, and their focused tests. - Unknowns/conflicts: source inspection must identify the narrowest post-commit event seam and ensure reconnect/replay cannot create duplicate Quote requests. The root worktree's unrelated untracked records are outside this isolated task. No active peer has a conflicting Design scope.
- Gate result: Passed.
Outcome
- Confirmed that Main maps every Gateway
design.direction.updatedevent independently and the Store applies canonical form projections even after the original optimistic operation has settled. - Added a Store regression for the real sequence: committed
chatprojection, immediately followed byquote_requestwith the same client operation identity. The test proves the draft/pending chat settles once, the completed activity remains bound to its Turn, and the offered Quote remains visible. - No client product code, shared contract, routing, or UI change was necessary.
Verification
pnpm exec vitest run tests/unit/image-workspace-store.test.ts --maxWorkers=1passed (33 tests).pnpm exec eslint tests/unit/image-workspace-store.test.tspassed.pnpm run typecheckpassed.git diff --checkpassed.
Follow-ups
- Integrate and deploy with server task
20260907-design-chat-generation-intent-4f8c2a91, then perform the recorded real Quote/confirmation smoke.
Promotion Candidates
- Target:
.project-docs/20-architecture/data-flow.mdand integrated current state. Proposal: record that one accepted Design chat Run may carry a committed chat Direction projection followed by an immutable Quote projection under the same client command identity; the Store converges both without issuing a second mutation. Evidence is the 33-test Store suite and the cross-repository server task. This is compatible with ADR-007 and needs no separate product-direction decision.