Files
makelore/.project-docs/30-worklog/tasks/20260827-makelore-plugin-client-7d3a91c4.md

194 lines
11 KiB
Markdown

# Task: Implement MakeLore Plugin Platform P0 client
## Identity
- Task ID: 20260827-makelore-plugin-client-7d3a91c4
- Mode: Feature
- Branch: codex/20260827-makelore-plugin-client-7d3a91c4-makelore-plugin-client
- Worktree: D:\Datas\OthersProjects\makelore-plugin-client-7d3a91c4
- Base commit: eb5d15d68470b30ec181164f08f0d7b027ef0006
- Owner: codex-root
- Status: In Progress (ML-00/ML-02 integrated; ML-03 frontier pending)
## Scope
- Coordinate the repository-local `implement-spec` unit for ML-00 through ML-07
from exact accepted Data Service head
`eb5d15d68470b30ec181164f08f0d7b027ef0006`.
- Deliver the fixed bundled package, project selection, strict policy/capability
registry and envelope, dynamic Pi Skill/tool materialization, Host/lifecycle
integration, Plugin Center, packaged proof, verification, and fixed-range review.
- Own only this isolated client branch, repository-local integration, project task
record, client verification, and the client half of X-01 evidence.
## Intent And Constraints
- Preserve accepted Data Service project identity, Main-owned credential and typed
operation seams, exact-Origin preview lifecycle, SDK/Skill behavior, and Pi 0.84.2
hard-cutover contracts.
- Keep package availability, local enablement, Agent Skill assignment, backend
configuration, invocation, and billing policy independently observable.
- P0 scans only fixed bundled roots and adds no arbitrary code/MCP/hooks,
marketplace, download/update, generic invoke/config/ledger, Plugin Credits,
`plugin_charges`, publication coupling, or external-browser capability.
- Renderer cannot choose project authority, owner, credential, policy, price, or
request identity; child workers receive no plugin Skills/tools.
- All implementation tickets use exact-frontier isolated worktrees and one commit;
implementers are not alone in the repository and must not revert other changes.
- The user root `main` worktree is read-only. The user did not request publication;
no PR is claimed unless one actually exists.
## Project Context Loaded
- Task ID/mode/branch/worktree/base match the Git-common owner record exactly.
- Read `AGENTS.md`, the mandatory project-memory entry set, active task record,
positioning/current-state/decision/architecture/data-flow/domain/evidence/
reflection/commitment/stale material, the implementation spec, detailed-design
sections 6-9 and 14-17, ticket graph, and the accepted Data Service client peer.
- Other local owners: 149 including this task (12 planning, 137 ready for
integration). The only same-topic peer is the completed Data Service coordinator
whose exact evidence head is this task's base; it is not resumed or modified.
- Overlap assessment: no unresolved semantic conflict. ML-01 through ML-05 have
disjoint primary ownership and execute strictly in graph order; ML-02 waits for
both ML-01 and the exact WS-02 catalog DTO.
- Current integrated memory predates this unintegrated Data Service/plugin work;
accepted branch/task evidence and the frozen spec control this feature branch.
- Likely modules are the package/project-service, policy/capability registry,
Pi resource/runtime, Host composition/lifecycle, Renderer Plugin Center, and
packaged-proof paths named by the ticket graph.
- Gate result: Passed on 2026-08-27.
## Ticket Ownership
- ML-00, ML-06, and X-01 client evidence: coordinator in this worktree.
- ML-01 through ML-05: isolated implementers from exact frontier commits, with ML-02
waiting for WS-02's catalog shape.
- ML-07: fixed-range Standards/Spec reviewers; accepted findings go to one isolated
remediation owner before repeat review.
## Outcome
- ML-00 completed: the client coordination unit is isolated from exact accepted
Data Service evidence head, ownership/planning gates passed, and no product file
changed before the first implementation frontier.
- Integrated ML-01 from replacement source commit
`c092863ee600808e8a7c15440b3c370fd649a885` at the exact ML-00 frontier
`2ab1c51a2404086cbd688ac80154765d7c5d4662` as coordinator product commit
`422150d4fabdcc703952797875f88f239ca1e37a`, with no cherry-pick conflict.
The superseded `f83038d371888cca87f0f04d0e61906d499668eb` was not
cherry-picked. ML-01 adds the fixed bundled Data Service plugin manifest and
capability projection, atomic project plugin selection service, package-owned
Skill/SDK resource move, and core Skill registry projection. The coordinator
foreign ML-01 task record is removed in the docs checkpoint while its source
record remains in
`D:\Datas\OthersProjects\makelore-plugin-ml01-package-selection-8d3c7a21`.
The exact downstream product frontier handed to ML-02 is
`422150d4fabdcc703952797875f88f239ca1e37a`.
- Integrated ML-02 from source task
`20260827-plugin-ml02-policy-registry-3f7b2c91` and sole source commit
`0064043c8f1e0e80c0b73dd0064b3abe8ba30b01`, whose exact parent was the
coordinator frontier `d9c9a2b0dd8fd495c6aa5a0994598192ad9c8e58`.
The cherry-pick produced coordinator product commit
`a0361a3cda08ab4d7454d35caa56a5a4304a9dca` without conflict. The foreign
ML-02 task record was deleted from this coordinator while its source record
remains in
`D:\Datas\OthersProjects\makelore-plugin-ml02-policy-registry-3f7b2c91`.
ML-02 consumes the frozen WS-02 catalog DTO: schema version 1, one
`makelore.data-service` plugin, three capabilities/fourteen operations, and
`platform_metered` unavailable projected as `billing_unavailable`. The
coordinator-approved one-time ownership transfer covered only the
`ToolDetails` envelope discriminator/display branch in
`src/pages/Chat/CodingConversationTimeline.tsx`; no other Renderer,
worker, Host, preview, or P1 path was transferred or changed. The exact
downstream product frontier handed to ML-03 is
`a0361a3cda08ab4d7454d35caa56a5a4304a9dca`.
## Verification
- `git rev-parse HEAD` before the checkpoint returned exact
`eb5d15d68470b30ec181164f08f0d7b027ef0006`.
- The fresh worktree initially had no `node_modules`, so the first typecheck failed
only because `tsc` was unavailable. `corepack pnpm install --frozen-lockfile`
installed the locked 997-package graph with pnpm `10.33.4`; no source or lockfile
changed.
- `corepack pnpm run typecheck` then passed.
- The nine-file Data Service/Pi/package baseline (`data-service-sdk-assets`,
`data-service-server-registration`, `pi-product-tools`, `pi-extension-host`,
`pi-worker-process-real`, `coding-conversation-contracts`,
`preview-data-session`, `data-service-routes`, and `pi-product-artifact`) passed
`70 passed, 2 skipped` in 10.21s with one worker.
- No client product file changed; only this task-scoped record is committed by
ML-00. The root `main` worktree was restored clean at `f245603...` after an
initial task-context claim selected the clean root despite isolation arguments;
the generated record/claim were removed through the normal release path before
the successful isolated start from `eb5d15d...`.
- ML-01 precondition and merge: coordinator was clean at exact frontier
`2ab1c51a2404086cbd688ac80154765d7c5d4662`; replacement source parent matched
exactly; cherry-pick produced `422150d4fabdcc703952797875f88f239ca1e37a`
without conflict.
- ML-01 focused verification:
`corepack pnpm exec vitest run tests/unit/data-service-sdk-assets.test.ts
tests/unit/coding-plugin-manifest.test.ts tests/unit/project-plugin-service.test.ts
tests/unit/skill-display.test.ts tests/unit/pi-product-tools.test.ts
--maxWorkers=1` — 5 files / 45 tests passed (Vitest 3.15s).
- ML-01 `corepack pnpm run typecheck` — passed.
- ML-01 `corepack pnpm run lint:check` — passed with 0 errors and the same 5
pre-existing warnings in `src/pages/Home/index.tsx` and
`src/pages/Makelore/index.tsx`.
- Scoped ESLint over ML-01-owned source/tests — passed with no output.
- The Skill and SDK resource move is byte-for-byte (`R100`). The ML-01-owned
`tests/unit/data-service-sdk-assets.test.ts` assertion now targets the
canonical package path and passed; this merger did not edit unrelated tests.
Any remaining consumer of the removed legacy
`resources/coding-skills/data-service` path must migrate under its owning
ticket, not this merger.
- ML-01 path/scope audit matched the source change set: package manifest/service,
existing Skill registry/shared definitions, plugin resources, and focused tests
only. No P1 policy/capability-invoke, Pi runtime, Host, Renderer,
marketplace/download/update, generic execution, pricing, or billing paths were
added. `git diff --check` passed.
- ML-02 precondition and merge: coordinator was clean at exact frontier
`d9c9a2b0dd8fd495c6aa5a0994598192ad9c8e58`; source commit
`0064043c8f1e0e80c0b73dd0064b3abe8ba30b01` had that exact parent and
cherry-picked without conflict as
`a0361a3cda08ab4d7454d35caa56a5a4304a9dca`. The source change set was
limited to the policy client, capability registry/Data Service adapter, Pi
product-tool delegation, bounded shared contracts, focused tests, and the
one approved timeline branch. No other Renderer, worker, Host, preview, or
P1 file was present; the source task record remains in its worktree.
- ML-02 focused verification:
`corepack pnpm exec vitest run tests/unit/plugin-policy-client.test.ts
tests/unit/coding-capability-registry.test.ts
tests/unit/data-service-plugin-adapter.test.ts tests/unit/pi-product-tools.test.ts
tests/unit/coding-conversation-contracts.test.ts --maxWorkers=1` — 5 files /
38 tests passed (Vitest 3.26s).
- Transferred timeline verification:
`corepack pnpm exec vitest run tests/unit/coding-conversation-timeline.test.tsx
--maxWorkers=1` — 1 file / 4 tests passed (Vitest 1.65s).
- Relevant adjacent regressions:
`coding-plugin-manifest`, `project-plugin-service`, `skill-display`,
`coding-chat-panel`, `coding-product-services`, `coding-product-tools-facade`,
`data-service-client`, and `data-service-routes` — 8 files / 57 tests passed
(Vitest 9.69s, one worker).
- `corepack pnpm run typecheck` — passed. `corepack pnpm run lint:check` —
passed with 0 errors and the same 5 pre-existing warnings in
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
- Product contract audit passed: no `details.schema === 'data-service.v1'`
consumer remains; every `data-service.v1` occurrence in `src/`, `electron/`,
`shared/`, and `tests/` is the nested `payload_schema` contract. The ML-02
net change passed `git diff --check`.
## Follow-ups
- ML-03 may consume the policy/capability registry, bounded capability envelope,
Data Service adapter, and Pi product-tool delegation from exact product
frontier `a0361a3cda08ab4d7454d35caa56a5a4304a9dca`.
- The legacy `resources/coding-skills/data-service` path is intentionally removed
by ML-01; any unowned downstream reference must be migrated by its owning
ticket. This merger made no such downstream edit.
## Promotion Candidates
- None recorded.