chore: record ML-02 client integration

This commit is contained in:
2026-08-26 19:04:45 +08:00
parent ce8e2103d9
commit 003fe210f4
2 changed files with 37 additions and 91 deletions

View File

@@ -8,7 +8,7 @@
- Worktree: D:\Datas\OthersProjects\makelore-data-service-client-b72e4c19
- Base commit: f2456039230f68e3ecb2c8653fc3379c23bbe5ce
- Owner: codex-root
- Status: In Progress (ML-01 integrated)
- Status: In Progress (ML-01 and ML-02 integrated)
## Scope
@@ -75,6 +75,15 @@
coding-project Host routes/composition and callback wiring, release-proof
fixtures, and focused tests. The implementer task record was removed from
this coordinator's net diff; the source worktree retains its own record.
- Integrated ML-02 identity UX from the exact ML-01 frontier
`5ac08d509f8962a3c2c0ec1b1afef84a435f116d` with no cherry-pick conflict.
Implementer commit `363660a81b3f79ffab4594763170932790f41299` was
cherry-picked as feature commit `ce8e210` (`feat(coding): add project
identity UX`). The delivered scope is limited to the Sidebar and Project
Configuration identity controls, Renderer facade/store projections, focused
tests, and identity E2E; no Main, cloud, session, or provisioning logic was
added. The foreign ML-02 task record was deleted from this coordinator's net
diff after cherry-pick; the source worktree retains its own record.
## Verification
@@ -90,11 +99,36 @@
- Cherry-pick parent, coordinator branch, and required integration frontier
were verified against `7e54b8fbda1899b73334d7c3e732ce8e73460ed8` before
integration; the cherry-pick completed without conflicts.
- ML-02 focused Renderer tests:
`pnpm exec vitest run tests/unit/coding-projects-facade.test.ts
tests/unit/project-config-store.test.ts
tests/unit/coding-workspace-store.test.ts --maxWorkers=1`: 3 files / 10
tests passed.
- `pnpm build:vite`: passed; generated the Main/Preload bundles required by
the Electron fixture.
- `pnpm test:electron:windows`: 2 files / 4 tests passed.
- `pnpm exec playwright test tests/e2e/coding-project-identity.spec.ts
--config=playwright.config.ts`: 2 tests passed after the Vite build.
- `pnpm exec playwright test
tests/e2e/project-configuration-skills.spec.ts
--config=playwright.config.ts`: 1 test passed.
- `pnpm typecheck`: passed.
- `pnpm lint:check`: passed with 0 errors and 5 pre-existing warnings in
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`; none are in
the ML-02 paths.
- `git diff --check`: passed; the net ML-02 path audit contains only Renderer
UI/facade/store and tests, with no `electron/`, `resources/`, or `scripts/`
files.
- Implementer-provided broader results (not rerun by this merger): `pnpm test`
passed with 183 files / 1554 tests and 2 skipped; the full E2E run passed 25
tests and reproduced one pre-existing PI model-combobox failure at
`tests/e2e/pi-coding-first-chat.spec.ts:575` on its direct rerun. This
unrelated failure remains visible and is not masked by the focused passes.
## Follow-ups
- ML-02 must project the required identity choice into Renderer create and
legacy/independent-copy UX. ML-03 must use
- ML-02 identity choice and legacy/independent-copy UX is integrated. ML-03
must use
`requireActiveRealProjectWithIdentity()` for all Data Service callers.
- The broader ML-00 through ML-09 coordinator task remains in progress; this
record does not claim full client-suite, build, review, or release proof.

View File

@@ -1,88 +0,0 @@
# Task: ML-02 Identity user experience and E2E
## Identity
- Task ID: 20260826-ml02-identity-ux-6f2d9a31
- Mode: Feature
- Branch: codex/20260826-ml02-identity-ux-6f2d9a31-ml02-identity-ux
- Worktree: D:\Datas\OthersProjects\makelore-ml02-identity-ux-6f2d9a31
- Base commit: 5ac08d509f8962a3c2c0ec1b1afef84a435f116d
- Owner: ml02_identity_ux
- Status: Ready for Integration
## Scope
- Extend the Renderer coding-project facade and store with the accepted ML-01
identity request/result projections.
- Make the new-project dialog default to a generated identity and offer an
explicit canonical bind-existing choice with same-account sharing guidance.
- Add the one-time legacy identity resolution card and the explicit
independent-copy action to Project Configuration, including fixed UX copy
about files/cloud data and safe error/cancel states.
- Add focused Renderer tests and Electron E2E coverage for create, bind,
invalid/cancel, legacy, and independent-copy flows.
## Intent And Constraints
- Keep project identity creation, validation authority, persistence, cloud
access, and preview/session invalidation in Main; Renderer only sends the
accepted create/bind union or literal confirmation and projects safe config
snapshots.
- Preserve the canonical lowercase hyphenated UUID contract and ordinary-save
immutability. A same-account bind shares development data; an independent
copy rewrites only this folder's ID, does not move/copy files or cloud data,
and gets its new UUID from Main.
- Limit changes to the task ownership set: `src/components/layout/Sidebar.tsx`,
`src/pages/ProjectConfiguration/index.tsx`,
`src/lib/coding-projects.ts`, the necessary identity state projection in
`src/stores/coding-workspace.ts` / `src/stores/project-config.ts`, focused
Renderer tests, Electron E2E, and this task record. Do not modify ML-03 Main
seams or add Renderer provisioning/cloud/session logic.
- Use the repository-pinned pnpm `10.33.4`; run focused tests first, then
typecheck/lint and relevant Electron E2E/build checks. Record unavailable
platform/service prerequisites rather than claiming unrun acceptance.
## Outcome
- Implemented the ML-02 Renderer identity UX and focused coverage.
- `src/lib/coding-projects.ts` now projects the required create/bind identity
union, validates the canonical lowercase UUID shape for UI preflight, and
exposes the identity-resolution and independent-copy Host operations.
- The new-project dialog defaults to generated identity, makes bind-existing
explicit, explains same-account sharing, and reports invalid input before a
Host call. Project Configuration now shows the one-time legacy resolution
card and a confirmed independent-copy action whose copy states that files
stay in place and cloud data is not copied.
- No Main files, cloud/session logic, or Renderer data provisioning were added.
## Verification
- `pnpm --version` -> `10.33.4`.
- `pnpm exec vitest run tests/unit/coding-projects-facade.test.ts
tests/unit/project-config-store.test.ts tests/unit/coding-workspace-store.test.ts
--maxWorkers=1` -> 3 files, 10 tests passed.
- `pnpm typecheck` -> passed.
- `pnpm lint:check` -> 0 errors; 5 pre-existing warnings in
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
- `pnpm build:vite` -> passed.
- `pnpm test` -> 183 files, 1554 tests passed, 2 skipped.
- `pnpm test:electron:windows` -> 2 files, 4 tests passed.
- `pnpm exec playwright test tests/e2e/coding-project-identity.spec.ts
--config=playwright.config.ts` -> 2 tests passed.
- `pnpm exec playwright test tests/e2e/project-configuration-skills.spec.ts
--config=playwright.config.ts` -> 1 test passed.
- `pnpm test:e2e` -> 25 tests passed, 1 unrelated existing PI E2E failed at
`tests/e2e/pi-coding-first-chat.spec.ts:575`: the model combobox remained
disabled while selecting `model-b`; a direct rerun reproduced the same
failure. The identity and Project Configuration specs passed in this run.
## Follow-ups
- Investigate the pre-existing/flaky PI model-combobox E2E separately; it is
outside the ML-02 ownership set and was not changed here.
## Promotion Candidates
- Identity UX, facade projections, and E2E coverage are ready for integration
after this task commit. The full E2E suite's unrelated PI failure should
remain visible to the integrator.