# Task: Implement MakeLore Development Data Service P0 client ## Identity - Task ID: 20260826-makelore-data-service-client-b72e4c19 - Mode: Feature - Branch: codex/20260826-makelore-data-service-client-b72e4c19-makelore-data-service-client - Worktree: D:\Datas\OthersProjects\makelore-data-service-client-b72e4c19 - Base commit: f2456039230f68e3ecb2c8653fc3379c23bbe5ce - Owner: codex-root - Status: In Progress (ML-01 and ML-02 integrated) ## Scope - Coordinate the repository-local `implement-spec` run for client tickets ML-00 through ML-09 from post-Pi-integration base `f2456039230f68e3ecb2c8653fc3379c23bbe5ce`. - Deliver durable MakeLore project identity, Main-owned Data Service cloud/Host operations, purpose-specific Pi tools, preview data sessions and CDP injection, the thin generated SDK, bundled Data Service Skill, focused/full verification, repository-local review, and one remediation pass when findings require it. - Own the client implementation branch and merge only commits returned by isolated ticket worktrees in dependency order. ## Intent And Constraints - Follow the server repository's implementation specification, ticket graph, canonical integration contract, and accepted ADR without reopening the frozen P0 product scope. - Preserve the integrated Pi `0.84.2` hard cutover, product-neutral Snapshot/Patch contracts, Main/Renderer trust boundary, current Host route ordering, and the existing Agent Browser abstraction. - `.niancode/project.json` owns the durable optional `projectId`; local project IDs, Pi session/resource IDs, and the `opencode-projects` compatibility store name remain local identities. - Electron Main remains the only Works credential owner. Generated code receives only an ephemeral exact-Origin data capability; no credential, owner, path, arbitrary endpoint, or cloud project ID becomes a model-controlled input. - Do not restore OpenCode, add Firebase compatibility, published-runtime support, retries for ambiguous writes, a filesystem-copy engine, or a generic operation multiplexer. - The root `main` worktree remains clean and unowned. All writes stay in this isolated coordinator worktree or ticket-specific linked worktrees. ## Planning Gate - Result: Passed on 2026-08-26. - Loaded MakeLore `AGENTS.md`, required project-memory entry documents, current state, accepted auth and Pi decisions, relevant architecture/domain/evidence/commitment material, the cross-repository Data Service spec/graph/contract, and the exact Pi, Host API, project-storage, session, and Agent Browser seams at the recorded base. - Registry review found 147 historical owners. Most are ready-for-integration and represented in the selected base. Ten remain marked planning; nine have placeholder scopes and therefore unknown coordination state, while one owns an unrelated AI Design E2E file. No declared Data Service or owned-path semantic conflict exists. - Real PostgreSQL, signed-in accounts, deployment inputs, and platform-specific E2E prerequisites remain external acceptance inputs and will not be inferred as passed. ## Ticket Ownership - ML-00: coordinator in this worktree. - ML-01 through ML-07: isolated implementer worktrees from the exact merged frontier commit, with the file ownership defined by the ticket graph. - ML-08: repository-local merger in this implementation worktree. - ML-09: read-only review followed by one isolated remediation implementer if needed. - X-01: coordinated only after reviewed server and client branches are ready. ## Outcome - Integrated ML-01 project identity from the exact integration frontier `7e54b8fbda1899b73334d7c3e732ce8e73460ed8` with no cherry-pick conflict. Implementer commit `274172ac9d7ea2468242448d4b0b19fd2205f8fb` was cherry-picked as feature commit `43f58fc` (`feat(coding): add durable project identity core`). The delivered scope is limited to identity core, 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 - `pnpm exec vitest run tests/unit/coding-project-identity.test.ts tests/unit/coding-projects-migration.test.ts tests/unit/coding-core-routes.test.ts tests/unit/coding-projects-schema-v2.test.ts`: 4 files / 48 tests 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-01 paths. - `git diff --check`: passed. - 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 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. ## Promotion Candidates - None recorded.