diff --git a/.project-docs/30-worklog/tasks/20260826-makelore-data-service-client-b72e4c19.md b/.project-docs/30-worklog/tasks/20260826-makelore-data-service-client-b72e4c19.md index 86791b6..a931328 100644 --- a/.project-docs/30-worklog/tasks/20260826-makelore-data-service-client-b72e4c19.md +++ b/.project-docs/30-worklog/tasks/20260826-makelore-data-service-client-b72e4c19.md @@ -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. diff --git a/.project-docs/30-worklog/tasks/20260826-ml02-identity-ux-6f2d9a31.md b/.project-docs/30-worklog/tasks/20260826-ml02-identity-ux-6f2d9a31.md deleted file mode 100644 index b1e85bd..0000000 --- a/.project-docs/30-worklog/tasks/20260826-ml02-identity-ux-6f2d9a31.md +++ /dev/null @@ -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.