docs(coding): record ML-03 worker merge

This commit is contained in:
2026-08-27 17:34:15 +08:00
parent fd891ff3bb
commit a92cd904d3
2 changed files with 53 additions and 124 deletions

View File

@@ -8,7 +8,7 @@
- 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)
- Status: In Progress (ML-00 through ML-03 integrated; ML-04 frontier pending)
## Scope
@@ -104,6 +104,26 @@
downstream product frontier handed to ML-03 is
`a0361a3cda08ab4d7454d35caa56a5a4304a9dca`.
- Integrated ML-03 from source task
`20260827-plugin-ml03-worker-materialization-9b2e6c41` and sole source commit
`945d6bd81016eec373a82f63182cf1f7cf0718f5`, whose exact parent was the
coordinator frontier `c4dd8923a0076920e8a7fd8820fdc01bdfde1760`.
The cherry-pick produced coordinator product commit
`fd891ff3bb87a29381a0a7006fb4618ec4fe144f` without conflict. The foreign
ML-03 task record was deleted from this coordinator while its source record
remains in
`D:\Datas\OthersProjects\makelore-plugin-ml03-worker-materialization-9b2e6c41`.
ML-03 owns exactly six Pi product files and five Pi-focused tests: one frozen
effective worker-resource snapshot, dynamic Skill/declaration/bridge/CLI
materialization, child-empty exposure, known-disabled/re-enabled assignment
behavior, old-worker refusal, and removal of the static Data Service worker
list. The source task execution briefly shared a worktree with an earlier
agent; that agent was interrupted when discovered, and the final commit was
then fully reviewed by serial takeover. This record does not claim that the
source task was never concurrently shared. The exact downstream product
frontier handed to ML-04 is
`fd891ff3bb87a29381a0a7006fb4618ec4fe144f`.
## Verification
- `git rev-parse HEAD` before the checkpoint returned exact
@@ -178,12 +198,41 @@
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`.
- ML-03 precondition and merge: coordinator was clean at exact frontier
`c4dd8923a0076920e8a7fd8820fdc01bdfde1760`; source commit
`945d6bd81016eec373a82f63182cf1f7cf0718f5` had that exact parent and
cherry-picked without conflict as
`fd891ff3bb87a29381a0a7006fb4618ec4fe144f`. The merged change set contains
exactly six Pi product files and five named Pi tests, with no other Host,
Renderer, registry, preview, or P1 path; the source task record remains in
its worktree. The source execution's brief shared-worktree incident and
interruption were retained accurately; the merger's review and verification
were performed serially after takeover.
- ML-03 owned focused verification:
`corepack pnpm exec vitest run tests/unit/pi-resource-loader.test.ts
tests/unit/pi-extension-host.test.ts tests/unit/pi-extension-bundle.test.ts
tests/unit/pi-worker-process-real.test.ts tests/unit/pi-rpc-foundation.test.ts
--maxWorkers=1` — 5 files / 43 passed / 2 skipped (Vitest 7.65s; the skips
are staged-runtime gated).
- All Pi regressions:
`pi-*.test.ts` — 30 files / 169 passed / 2 skipped (Vitest 19.34s, 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`.
- `corepack pnpm run build:vite` — passed for Renderer, Main, Preload, and
utility bundles; only existing dynamic-import/chunk-size warnings were
emitted. The ML-03 changed files contain no static Data Service worker list;
dynamic declarations, bridge allowlisting, CLI agreement, child-empty
exposure, disabled/re-enabled assignment, and old-worker behavior are
covered by the owned focused suite. `git diff --check` passed.
## 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`.
- ML-04 may consume the effective plugin worker-resource snapshot, dynamic Pi
declarations/bridge/CLI materialization, and child-empty behavior from exact
product frontier `fd891ff3bb87a29381a0a7006fb4618ec4fe144f`; ML-04 owns its
Host/Renderer composition changes.
- 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.

View File

@@ -1,120 +0,0 @@
# Task: Implement ML-03 Pi worker resource materialization
## Identity
- Task ID: 20260827-plugin-ml03-worker-materialization-9b2e6c41
- Mode: Feature
- Branch: codex/20260827-plugin-ml03-worker-materialization-9b2e6c41-plugin-ml03-worker-materialization
- Worktree: D:\Datas\OthersProjects\makelore-plugin-ml03-worker-materialization-9b2e6c41
- Base commit: c4dd8923a0076920e8a7fd8820fdc01bdfde1760
- Owner: plugin_ml03_worker_materialization
- Status: Ready for integration
## Scope
- Implement ML-03 dynamic Pi worker resource materialization from exact coordinator
frontier `c4dd8923a0076920e8a7fd8820fdc01bdfde1760`.
- Own only the Pi resource loader, extension host, runtime, worker process,
subagent child, `makelore-runtime` extension, the five named Pi-focused tests,
and this task record.
- Resolve one worker-resource snapshot before Skill materialization and extension
registration; carry effective Skills, frozen catalog revision, tool declarations,
allowed names, bridge allowlist, write-lease membership, and explicit CLI tools.
- Preserve core tools/Skills, keep child plugin catalog empty, remove the obsolete
static Data Service CLI allowlist, and prove disabled/re-enabled/old-worker and
child-denial behavior.
## Intent And Constraints
- Follow implementation spec sections 7.2-7.3 and 10.2, ticket ML-03, and detailed
design sections 8.5-8.7. The server catalog and ML-02 registry/envelope are the
authoritative upstream contracts; do not duplicate or alter them.
- Parent plugin exposure is the intersection of valid package, project selection,
selected Skill grant, permitted role, and verified policy. Known-disabled Skill
assignments remain in config/UI but do not enter the effective snapshot; truly
unknown assignments retain existing invalid-configuration behavior.
- A worker run freezes its catalog. Main-side invocation remains authoritative and
rechecks current selection; declarations are never authority. Child workers get
no plugin Skills/tools and no permission broadening.
- No Host, Renderer, preview, adapter, registry, P1 billing, generic endpoint,
arbitrary code/MCP/hooks, or static Data Service list changes. If an upstream
interface is semantically insufficient, stop and report to the coordinator.
- Test-first. Use the exact pinned pnpm version. Keep the worktree isolated and
clean; return one implementation commit with sole parent the exact base.
## Project Context Loaded
- Task ID/mode/branch/worktree/base match the Git-common owner record exactly.
- Concurrent Task Gate passed: `check_project_docs.py` succeeded and
`task_context.py start`/`status --json` show this task owns the isolated worktree.
- Planning Gate passed on 2026-08-27 after reading the required entry documents,
current integrated snapshot, accepted Pi runtime decision, relevant architecture,
domain/evidence/reflection/commitment/stale indexes, and peer task records.
- Other active local tasks include the client coordinator and historical/unrelated
planning tasks; the coordinator owns only its integration record/branch and no
ML-03 implementation files. No unresolved semantic conflict or ownership overlap
affects this ticket. The integrated memory predates the plugin work; the frozen
implementation spec, ticket graph, and exact ML-02 frontier control this task.
## Plan
1. Inspect the exact ML-02 frontier's Pi seams and existing tests without changing
files; map current resource/extension/worker/child contracts to the frozen ML-03
requirements.
2. Add failing focused tests for one-snapshot effective resource resolution,
declaration/bridge/CLI agreement, disabled and re-enabled assignments, old
worker refusal, child denial, and unchanged core behavior.
3. Implement the smallest cohesive changes within the owned files, preserving the
existing Pi 0.84.2 product contracts and project write-lease semantics.
4. Run owned focused tests plus relevant Pi regressions, typecheck, scoped/full
lint as appropriate, and diff/doc gates; investigate and fix only failures in
owned scope.
5. Update this record with exact outcome/evidence/follow-ups, run task-aware doc
drift, and complete task_context to `ready_for_integration` on a clean one-commit
worktree.
## Outcome
- Implemented the ML-03 effective worker snapshot flow. Parent and child openers
resolve the capability registry once before materialization/registration and
pass the resulting effective Skill entries, catalog revision, and plugin tool
definitions through resource-loader and extension-host. Plugin Skill paths now
resolve from the fixed bundled package roots; disabled assignments therefore do
not reach the worker while the assigned configuration remains untouched.
- Pi extension contexts carry the frozen revision, effective Skill IDs, exact
declarations, dynamic bridge names, and `projectWriteLease` names. The bundle
registers only the declarations in that context and applies leases from the
declaration metadata. Child registrations force empty plugin tool exposure.
- Pi CLI defaults contain only the fixed core profile. Parent runtime workers
explicitly pass the fixed core profile plus the registration's plugin names;
the static Data Service CLI list was removed. Bridge requests accept bounded
string tool names but reject names outside the worker's frozen plugin set,
while retaining the fixed core product bridge tools.
- Owned tests cover plugin Skill resource roots, catalog metadata, dynamic
declaration/schema materialization, bridge denial for an unregistered tool,
dynamic lease metadata, core-only defaults, real Pi declaration/CLI agreement,
and enabled-to-disabled-to-re-enabled worker materialization without rewriting
the retained Agent assignment.
## Verification
- Owned focused (maxWorkers=1):
`tests/unit/pi-resource-loader.test.ts`, `pi-extension-host.test.ts`,
`pi-extension-bundle.test.ts`, `pi-worker-process-real.test.ts`, and
`pi-rpc-foundation.test.ts`: 43 passed, 2 skipped (staged-runtime gated).
- All `tests/unit/pi-*.test.ts` regressions with one worker: 30 files passed,
169 passed, 2 skipped.
- `pnpm typecheck`: passed.
- `pnpm lint:check`: passed with five pre-existing warnings in
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`; no errors.
- `git diff --check`: passed.
## Follow-ups
- Coordinator ML-04 must wire the already-optional capability registry into
the production composition and keep its own Host/Renderer ownership; this
task intentionally did not edit composition or product-tools files.
## Promotion Candidates
- None.