整合 Enter 发送与多会话交互,保留服务端持久 Conversation Session,并补齐迁移、回归、Electron E2E 与 canonical 文档。
68 lines
5.1 KiB
Markdown
68 lines
5.1 KiB
Markdown
# Task: Merge all completed code into main
|
|
|
|
## Identity
|
|
|
|
- Task ID: 20260811-merge-all-code-a7c91e
|
|
- Mode: Integration
|
|
- Branch: main
|
|
- Worktree: D:\Datas\OthersProjects\makelore
|
|
- Base commit: 70e0f4054cf88029e3f2f4848e3d17ee3be70b7f
|
|
- Owner: codex
|
|
- Status: Completed
|
|
|
|
## Scope
|
|
|
|
- Integrate every completed local branch whose commits are not already contained by `main`.
|
|
- Merge `codex/20260806-design-multisession-ui-4e7d-design-multisession-ui`, which already contains the completed Enter-to-send commit from `codex/design-enter-send-b83f`.
|
|
- Preserve all behavior already integrated on `main`, resolve overlapping image-workspace changes semantically, and avoid merging stale or already-contained branches a second time.
|
|
- Promote the accepted multi-conversation client-state model into canonical project memory and verify the integrated result.
|
|
|
|
## Intent And Constraints
|
|
|
|
- Treat Git ancestry as the source of truth for merge scope: only two local branch tips are not contained by `main`, and the multi-session branch is a strict descendant of the Enter-to-send branch.
|
|
- Preserve Main/Host API ownership boundaries, project-scoped generation tasks, Conversation-scoped messages and streams, and the existing release/login behavior already on `main`.
|
|
- Do not resolve meaningful conflicts with blanket `ours`/`theirs`; combine both sides according to their domain ownership.
|
|
- Use the exact pnpm version pinned by `packageManager` and run focused tests before repository-level verification.
|
|
- Keep unrelated historical encoding damage and stale worktrees out of this integration.
|
|
|
|
## Plan
|
|
|
|
1. Inspect branch ancestry, overlapping paths, and merge-conflict semantics.
|
|
2. Merge the multi-session branch once; resolve conflicts while preserving both feature and integrated-main behavior.
|
|
3. Update task-scoped and canonical integration records.
|
|
4. Run focused AI Design tests, typecheck, lint, production build, and the full unit suite.
|
|
5. Obtain an independent read-only Sol review, finish drift checks, and commit the integration.
|
|
|
|
## Outcome
|
|
|
|
- Verified that `03dae62` is a descendant of `4980894`; merging the multi-session branch once integrates both completed branch tips without duplicating Enter-to-send.
|
|
- Resolved the only two textual conflicts in the Works Square AI Design adapter and its focused test. Human confirmation selected the persistent Conversation Session model: logout and shutdown close local streams and clear the local Session-id cache without deleting the server-owned Session.
|
|
- Integrated Conversation create/read/list routing, Conversation-scoped messages and streams, Workspace-scoped generation tasks, local schema v2-to-v3 migration, and the Canvas/sidebar create-and-switch interactions.
|
|
- Added focused API, route, adapter, migration, store, page, and sidebar regressions plus an Electron E2E that creates and switches Conversations while preserving project tasks and isolating messages.
|
|
- Updated README and canonical project memory, including ADR-001, architecture/data-flow/domain ownership, the production migration commitment, and stale production-verification state.
|
|
- Kept the two source-task records read-only in source commit history instead of copying them into the integration tree, as required by the current project-doc ownership gate.
|
|
|
|
## Verification
|
|
|
|
- Branch ancestry: `03dae62` contains `4980894`; no other local branch tip contains commits absent from the integrated merge scope.
|
|
- Focused AI Design regressions: 8 files / 116 tests passed.
|
|
- `pnpm run typecheck`: passed.
|
|
- Scoped ESLint over all changed TypeScript and TSX files: passed.
|
|
- `pnpm run build:vite`: passed; Renderer, Main, and Preload production compilation completed.
|
|
- New multi-conversation Electron E2E: 1 passed.
|
|
- `pnpm test`: 140/142 files and 1506/1508 tests passed. One failure is the pre-existing missing `.opencode/agent` fixture; the OpenCode port-release test timed out only in the parallel full run and passed alone.
|
|
- `pnpm run lint:check`: repository baseline remains red on the pre-existing `MainLayout.tsx` state-in-effect rule and unused `rerender` in `chat-command-dialogs.test.tsx`; changed-file ESLint is green.
|
|
- `pnpm run test:e2e`: 11 passed / 11 failed. The new multi-conversation spec passes; stale legacy selectors and a missing provider test IPC handler account for the remaining existing suite failures.
|
|
- `check_project_docs.py`, task-aware `check_doc_drift.py`, and `git diff --check`: passed.
|
|
- Independent final read-only Sol review: PASS with no blocking findings.
|
|
|
|
## Follow-ups
|
|
|
|
- Deploy and verify server migration `0033`, persistent Conversation Session creation, and multi-conversation APIs before releasing this client behavior to production.
|
|
- Repair the unrelated repository lint, missing youth-skill fixture, timing-sensitive OpenCode unit test, and stale legacy Electron E2E baseline in separate maintenance tasks.
|
|
- Tighten the global `creatingConversation` guard with a request generation/token if concurrent Workspace switching during Conversation creation becomes observable; the current edge case can briefly re-enable duplicate creation but does not overwrite data.
|
|
|
|
## Promotion Candidates
|
|
|
|
- None recorded.
|