Files
makelore/.project-docs/30-worklog/tasks/20260826-ml02-identity-ux-6f2d9a31.md
T

4.3 KiB

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: 5ac08d509f
  • 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.