feat(coding): add project identity UX
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user