docs(marketplace): record client r3 integration
This commit is contained in:
@@ -1,201 +0,0 @@
|
|||||||
# Task: Marketplace MLM-06 R3 fixed-range remediation
|
|
||||||
|
|
||||||
## Identity
|
|
||||||
|
|
||||||
- Task ID: 20260828-marketplace-mlm06-r3-remediation-9e4c2a71
|
|
||||||
- Mode: Feature
|
|
||||||
- Branch: codex/20260828-marketplace-mlm06-r3-remediation-9e4c2a71-marketplace-mlm06-r3-remediation
|
|
||||||
- Worktree: D:\Datas\OthersProjects\makelore-plugin-marketplace-mlm06-r3-remediation-9e4c2a71
|
|
||||||
- Base commit: 57962591de71fc0a9f142dbcd130e3308754e423
|
|
||||||
- Owner: marketplace-client-coordinator-r3-remediator
|
|
||||||
- Status: Ready for Integration
|
|
||||||
|
|
||||||
## Scope
|
|
||||||
|
|
||||||
- Sole MLM-06 R3 fixed-range remediation over the eight accepted actionable roots
|
|
||||||
handed off from exact client frontier
|
|
||||||
`57962591de71fc0a9f142dbcd130e3308754e423`. Product/test changes stay in this
|
|
||||||
isolated MakeLore worktree and are limited to the assigned resolver, Package
|
|
||||||
Store/archive validation, Renderer Marketplace store/My Plugins, project
|
|
||||||
projection, packaged artifact verifier, focused tests/E2E, and this task record.
|
|
||||||
- Preserve Marketplace Release A only. Data Service remains bundled,
|
|
||||||
system-included, typed, and zero Token Point; hosted Provider/Release B,
|
|
||||||
arbitrary local code/MCP/hooks, generic invoke/config/ledger, XMA-01,
|
|
||||||
deployment, publication, push, and PR creation are outside this task.
|
|
||||||
- Deliver one source commit containing this task record, with sole parent
|
|
||||||
`57962591de71fc0a9f142dbcd130e3308754e423`, a clean worktree, and
|
|
||||||
`READY_FOR_INTEGRATION` task-context completion.
|
|
||||||
|
|
||||||
## Intent And Constraints
|
|
||||||
|
|
||||||
- Human-confirmed recovery was required because the original implementation owner
|
|
||||||
stopped responding while leaving a known dirty worktree. The coordinator
|
|
||||||
interrupted that writer, ran `release --force`, reversibly backed up its untracked
|
|
||||||
task record, and successfully reclaimed this exact task/worktree with
|
|
||||||
`--adopt-existing`. The eight existing product/test paths were never stashed,
|
|
||||||
reset, cleaned, deleted, or moved. This owner is now the sole writer.
|
|
||||||
- Concurrent Task Gate passed after recovery: project-doc structure is valid and
|
|
||||||
task-context status matches this task ID, feature mode, owner, absolute worktree,
|
|
||||||
branch, and exact base. The coordinator, user root, server repository, and prior
|
|
||||||
review/source worktrees remain read-only.
|
|
||||||
- Planning Gate passed after reading the required project-memory startup set,
|
|
||||||
relevant peer records, implementation spec, ticket graph, accepted design, and
|
|
||||||
ADR-006. Canonical integrated memory predates Marketplace; the frozen spec/design,
|
|
||||||
coordinator ledger, and R3 fixed-range findings are the current authority.
|
|
||||||
- Implement test-first at each public seam. Do not add compatibility layers,
|
|
||||||
arbitrary prefixes, hidden request chaining, account/Library conflation, broad
|
|
||||||
archive-security frameworks, fabricated yanked fields, runtime key overrides, or
|
|
||||||
unrelated UI redesign. Explicit device uninstall remains distinct from Library
|
|
||||||
removal and background cleanup.
|
|
||||||
- Production Ed25519 activation remains HOLD. Tests may inject ephemeral keys only;
|
|
||||||
no production private key or arbitrary runtime trust source may be generated,
|
|
||||||
read, or committed.
|
|
||||||
|
|
||||||
## Project Context Loaded
|
|
||||||
|
|
||||||
- Task identity: `20260828-marketplace-mlm06-r3-remediation-9e4c2a71`, feature
|
|
||||||
mode, branch
|
|
||||||
`codex/20260828-marketplace-mlm06-r3-remediation-9e4c2a71-marketplace-mlm06-r3-remediation`,
|
|
||||||
worktree
|
|
||||||
`D:\Datas\OthersProjects\makelore-plugin-marketplace-mlm06-r3-remediation-9e4c2a71`,
|
|
||||||
owner `marketplace-client-coordinator-r3-remediator`, exact base
|
|
||||||
`57962591de71fc0a9f142dbcd130e3308754e423`.
|
|
||||||
- Other active Marketplace owners are completed source/remediation tasks,
|
|
||||||
read-only fixed-range reviewers, or the coordinator. No owner has write authority
|
|
||||||
in this worktree and no unresolved semantic conflict changes the eight-root plan.
|
|
||||||
- Main owns account, package, trust, filesystem, and effective-runtime authority;
|
|
||||||
Renderer consumes bounded projections. Account Library, Device Installation,
|
|
||||||
Project Selection, Agent assignment, authorization, and billing remain separate.
|
|
||||||
- The accepted eight roots are: bundled Skill collision reservation; pre-queue
|
|
||||||
account binding; independent same-plugin Library/device intents; explicit
|
|
||||||
uninstall versus cleanup; reachable packaged markers; canonical archive
|
|
||||||
validation; `client_incompatible` Project Plugins projection; and no-version My
|
|
||||||
Plugins presentation.
|
|
||||||
- Gate result: Passed. Project positioning is still a placeholder and shared
|
|
||||||
integrated memory predates Marketplace, both explicitly recorded as stale context
|
|
||||||
rather than silently treated as current authority.
|
|
||||||
|
|
||||||
## Fixed-Range Ownership / Red Plan
|
|
||||||
|
|
||||||
1. Reserve every non-Marketplace bundled Skill ID, including Data Service, and
|
|
||||||
reject conflicting Marketplace resources without rewriting configuration.
|
|
||||||
2. Capture the current account binding before queued Package Store work and verify
|
|
||||||
it before execution and completion so A-originated work cannot execute as B.
|
|
||||||
3. Split same-plugin Renderer Library and device intents while retaining latest-only
|
|
||||||
ordering within each domain and merging independent successful results.
|
|
||||||
4. Separate explicit uninstall from background cleanup; remove all unprotected
|
|
||||||
current/old releases and report `kept` only for actual protections.
|
|
||||||
5. Bind Marketplace artifact proof to the real packaged `package.json.main`
|
|
||||||
reachability graph and reject disconnected marker strings.
|
|
||||||
6. Enforce the canonical archive allowlist, extension/UTF-8 rules, and 256 KiB
|
|
||||||
manifest/Skill limits before atomic install, without adding a generic framework.
|
|
||||||
7. Project `client_incompatible` as bounded Project Plugins unavailable state.
|
|
||||||
8. Render no-version unavailable installation projections as not installed and not
|
|
||||||
deletable; keep versioned incompatible packages present and removable.
|
|
||||||
|
|
||||||
## Implementation Plan
|
|
||||||
|
|
||||||
1. Review the preserved dirty diff against all eight accepted roots and existing
|
|
||||||
focused tests; retain correct work and identify still-missing paths without
|
|
||||||
rewriting completed slices.
|
|
||||||
2. For each missing root, add an exact red test, apply the smallest green change,
|
|
||||||
and run the focused public-boundary regression with a stated failure consequence.
|
|
||||||
3. Run affected Marketplace/Pi/Data Service regressions, full unit/pressure,
|
|
||||||
typecheck, lint, Vite build, Windows Electron, Marketplace E2E, x64 packaging,
|
|
||||||
and the real artifact verifier. Record exact baseline/environment deviations.
|
|
||||||
4. Update this record with the recovery and RED→GREEN ledger, run diff/doc gates,
|
|
||||||
create the single source commit with the exact parent, complete task_context, and
|
|
||||||
verify a clean handoff.
|
|
||||||
|
|
||||||
## Outcome
|
|
||||||
|
|
||||||
- Recovered and completed the preserved implementation without resetting, stashing,
|
|
||||||
cleaning, or replacing any predecessor work. The only discarded filesystem data
|
|
||||||
was the trace CLI's own temporary extraction directory after diagnosis.
|
|
||||||
- Reserved every bundled/non-Marketplace Skill owner, so a signed Marketplace
|
|
||||||
package can no longer shadow the bundled Data Service Skill or another package's
|
|
||||||
Skill root. Project and Agent assignments remain unchanged and regain effect if
|
|
||||||
the original package returns.
|
|
||||||
- Bound Package Store sync/install/uninstall operations to the account captured
|
|
||||||
before queueing, with execution- and completion-time rechecks. Explicit uninstall
|
|
||||||
now removes every unprotected Release, while background cleanup may retain the
|
|
||||||
selected current Release; account snapshots and active workers remain protected.
|
|
||||||
- Split Renderer Library and device mutation intent per plugin/domain. Independent
|
|
||||||
successful operations merge instead of one domain silently suppressing the other.
|
|
||||||
- Hardened Release A archive admission to the canonical Skill-only tree, server-
|
|
||||||
aligned text/image extensions, fatal UTF-8 manifests/text, declared Skill roots,
|
|
||||||
and 256 KiB manifest/Skill limits. Script/native payloads and undeclared assets
|
|
||||||
fail before the atomic install write.
|
|
||||||
- Project Plugins maps `client_incompatible` to the bounded unavailable state. My
|
|
||||||
Plugins treats a no-version unavailable projection as not downloaded and not
|
|
||||||
deletable, while an incompatible versioned package remains visible/removable.
|
|
||||||
- Packaged proof now walks only files reachable from `package.json.main`, including
|
|
||||||
Main imports/requires, minified static ESM imports, dynamic Renderer chunks, and
|
|
||||||
HTML assets. Disconnected marker strings cannot satisfy trust or Marketplace
|
|
||||||
coverage. Test ASAR creation waits for the returned WritableStream `finish`
|
|
||||||
signal, eliminating partial archive reads without adding a production retry.
|
|
||||||
- Stabilized the Marketplace Electron test at its real bootstrap boundary: the
|
|
||||||
initial module-selection screen must be ready before replacing Main's Host API
|
|
||||||
handler and reloading with persisted auth. This removes an old-page/new-page auth
|
|
||||||
initialization race without changing production authentication.
|
|
||||||
- No hosted Provider, charging/Token Point path, arbitrary code/MCP/hooks, generic
|
|
||||||
invoke/config/ledger, publication, deployment, XMA-01, production key material,
|
|
||||||
or server change was introduced.
|
|
||||||
|
|
||||||
## Verification
|
|
||||||
|
|
||||||
- Recovery baseline: the inherited focused set produced 43 passes / 15 failures.
|
|
||||||
Thirteen failures were an expired fixed Admission fixture; the remaining product
|
|
||||||
reds proved the missing archive rejection, Project `client_incompatible` state,
|
|
||||||
and no-version My Plugins action. Correcting the fixture and implementing the
|
|
||||||
owned seams turned those boundaries green.
|
|
||||||
- Explicit uninstall edge RED: when an old Release was protected but current was
|
|
||||||
not, the old implementation returned `kept` and retained current. The focused
|
|
||||||
regression is green after explicit/background cleanup separation.
|
|
||||||
- Direct final focused: 6 files / 73 tests passed.
|
|
||||||
- Marketplace/Pi/Project Plugins/Data Service adjacent regression: 28 files / 229
|
|
||||||
tests passed.
|
|
||||||
- Full unit run: 208 files / 1,799 passed / 2 skipped; dedicated pressure run 1/1
|
|
||||||
passed.
|
|
||||||
- `pnpm typecheck`: passed.
|
|
||||||
- `pnpm run lint:check`: 0 errors; exactly five pre-existing out-of-scope warnings
|
|
||||||
remain (`Home` one hook warning, `Makelore` four Fast Refresh warnings).
|
|
||||||
- `pnpm run build:vite`: passed (Renderer 2,261 modules; Main 193; Preload 1;
|
|
||||||
utility worker 9). Existing dynamic-import and chunk-size warnings remain.
|
|
||||||
- The first clean-source `pnpm run package:win` passed through Python/uv staging,
|
|
||||||
Pi runtime bundling, win-unpacked, and NSIS. The first real
|
|
||||||
`verify:artifact:pi` correctly went RED because Vite's minified
|
|
||||||
`import{...}from"..."` edge was not traversed and the reachable graph could not
|
|
||||||
prove Renderer catalog/Library markers. A matching realistic ASAR unit fixture
|
|
||||||
failed 1/13; after accepting minified static ESM syntax it passed 13/13 and the
|
|
||||||
same real app.asar verifier returned overall `result: pass`, Marketplace
|
|
||||||
`result: pass`, Data Service 10 tools, Pi 0.84.2 closure complete, and only the
|
|
||||||
inherited real-Provider/cross-platform `partial-pass` waivers.
|
|
||||||
- `pnpm run test:electron:windows`: 2 files / 6 tests passed.
|
|
||||||
- Marketplace E2E bootstrap diagnosis: the original focused scenario failed 3/5,
|
|
||||||
and the direct-localStorage hypothesis failed 4/5 and was reverted. Waiting for
|
|
||||||
initial Renderer bootstrap before handler replacement passed 5/5; the original
|
|
||||||
Marketplace + Project Plugins target then passed 3/3.
|
|
||||||
- Full Electron E2E: 28 passed / 1 known baseline failure. The sole failure remains
|
|
||||||
`tests/e2e/pi-coding-first-chat.spec.ts:575`, where the current-conversation model
|
|
||||||
combobox is disabled and `selectOption` times out; both Marketplace tests and the
|
|
||||||
Project Plugins test pass in the same run.
|
|
||||||
- `git diff --check`: passed before documentation finalization.
|
|
||||||
- After the source commit is amended with the minified-ESM regression, the client
|
|
||||||
coordinator reruns clean-HEAD `package:win`, `verify:artifact:pi`,
|
|
||||||
`verify:artifact:win`, and `verify:publish-runtime` so embedded Git evidence names
|
|
||||||
the final source. Exact hashes belong to the repository-local integration
|
|
||||||
checkpoint and remain a handoff condition.
|
|
||||||
|
|
||||||
## Follow-ups
|
|
||||||
|
|
||||||
- The client coordinator must integrate only the single source commit, record the
|
|
||||||
clean-HEAD Windows/package verifier ledger, then start fresh fixed-range R4
|
|
||||||
Standards and Spec reviews. XMA-01 stays closed until both repositories pass.
|
|
||||||
- Production Marketplace activation remains on hold until the official Ed25519
|
|
||||||
public key is supplied. Release B remains deferred until a named Provider contract
|
|
||||||
exists.
|
|
||||||
|
|
||||||
## Promotion Candidates
|
|
||||||
|
|
||||||
- None recorded.
|
|
||||||
@@ -126,6 +126,15 @@
|
|||||||
conflict as coordinator product commit
|
conflict as coordinator product commit
|
||||||
`11d0af01663ad5b35a86fbe037c9277a5283f9a3`; the source/product trees are
|
`11d0af01663ad5b35a86fbe037c9277a5283f9a3`; the source/product trees are
|
||||||
identical after excluding the task-scoped handoff record.
|
identical after excluding the task-scoped handoff record.
|
||||||
|
- MLM-06 R3 review found eight actionable roots. After the user explicitly approved
|
||||||
|
recovery of the unresponsive owner, the coordinator force-released that owner and
|
||||||
|
adopted the existing task/worktree without stash, reset, clean, branch replacement,
|
||||||
|
or loss of its intermediate diff. Task
|
||||||
|
`20260828-marketplace-mlm06-r3-remediation-9e4c2a71` completed from exact frontier
|
||||||
|
`57962591de71fc0a9f142dbcd130e3308754e423` as sole source commit
|
||||||
|
`34341b932ac3a74788658bc0ed0a2732e140f72e`. It was integrated without
|
||||||
|
conflict as coordinator product commit
|
||||||
|
`3df794c2e736bde2c797c99aa8ad55b967e89ea6`.
|
||||||
|
|
||||||
## Outcome
|
## Outcome
|
||||||
|
|
||||||
@@ -177,6 +186,15 @@
|
|||||||
the current channel version, Renderer reports a truthful channel-change/unavailable
|
the current channel version, Renderer reports a truthful channel-change/unavailable
|
||||||
state without inventing a yanked field. Unknown assignments and incompatible packages
|
state without inventing a yanked field. Unknown assignments and incompatible packages
|
||||||
remain persisted but do not enter a new effective worker snapshot.
|
remain persisted but do not enter a new effective worker snapshot.
|
||||||
|
- MLM-06 R3 remediation reserves bundled Data Service and all other non-Marketplace
|
||||||
|
Skill IDs before Marketplace resolution; binds queued Package Store work to the
|
||||||
|
originating account; separates Library/device Renderer intents; distinguishes
|
||||||
|
explicit uninstall from background cleanup; enforces the canonical Skill-only
|
||||||
|
archive contract; projects client incompatibility and no-version unavailable
|
||||||
|
installations truthfully; and binds packed proof to package-main-reachable Main,
|
||||||
|
HTML, minified ESM, dynamic Renderer, and Marketplace chunks. No config/assignment
|
||||||
|
rewrite, hidden acquisition/enablement, Token Point path, Release B runtime, or
|
||||||
|
production trust override was added.
|
||||||
|
|
||||||
## Verification
|
## Verification
|
||||||
|
|
||||||
@@ -248,10 +266,41 @@
|
|||||||
through the real Windows app.asar with native entry separators; Marketplace trust
|
through the real Windows app.asar with native entry separators; Marketplace trust
|
||||||
remains official-key-absent fail-closed with no private-key material. XMA-01 was not
|
remains official-key-absent fail-closed with no private-key material. XMA-01 was not
|
||||||
run and no full-E2E pass beyond the targeted Marketplace file is claimed here.
|
run and no full-E2E pass beyond the targeted Marketplace file is claimed here.
|
||||||
|
- MLM-06 R3 source verification passed six focused files / 73 tests, 28 adjacent
|
||||||
|
files / 229 tests, full Vitest `1799 passed, 2 skipped` plus pressure `1 passed`,
|
||||||
|
typecheck, lint with zero errors and five unchanged warnings, Vite builds, six
|
||||||
|
Windows Electron tests, and Marketplace/Project Plugins E2E 3/3. Full E2E passed
|
||||||
|
28/29; the sole failure is the same unchanged
|
||||||
|
`pi-coding-first-chat.spec.ts:575` disabled-model-combobox timeout. The Marketplace
|
||||||
|
auth test's own old-page/new-page bootstrap race was diagnosed from a 3/5 failing
|
||||||
|
loop and stabilized to 5/5 before the original target reran.
|
||||||
|
- The first real package proof exposed a genuine verifier gap: Vite's
|
||||||
|
`import{...}from"..."` edge was missing from the reachable graph. A realistic
|
||||||
|
ASAR unit went red 1/13 and green 13/13; the same real app.asar then verified
|
||||||
|
Marketplace trust/routes/Renderer assets successfully. Final x64 staging and
|
||||||
|
electron-builder/NSIS ran from clean source HEAD. The aggregate download wrapper
|
||||||
|
was retried after GitHub `ECONNRESET` and connect timeout; already verified x64
|
||||||
|
Python/uv were restored from the first successful package, then final x64 staging
|
||||||
|
and builder passed without changing tracked files.
|
||||||
|
- Final `verify:artifact:pi` passed with Marketplace `result: pass`, Data Service ten
|
||||||
|
tools, Pi 0.84.2, no closure gaps, and only the inherited real-Provider/cross-
|
||||||
|
platform partial-pass waivers. `verify:artifact:win` embedded exact source
|
||||||
|
`gitCommit`/`verificationHead`
|
||||||
|
`34341b932ac3a74788658bc0ed0a2732e140f72e`; installer size is 208,238,894
|
||||||
|
bytes and SHA-256 is
|
||||||
|
`1531A3ACA2AB3387870606ADA54EE40DA9079DB9E2864DE7B8FFEBAF47A453D3`.
|
||||||
|
Python, uv 0.10.0, npm 11.6.2, native addons, Unicode copy, and publish-runtime all
|
||||||
|
passed. The official Ed25519 public key is still absent, so production activation
|
||||||
|
remains fail-closed HOLD rather than a claimed production release.
|
||||||
|
|
||||||
## Follow-ups
|
## Follow-ups
|
||||||
|
|
||||||
- None recorded.
|
- Run fresh fixed-range MLM-06 R4 Standards and Spec reviews from the post-R3
|
||||||
|
coordinator documentation checkpoint. Use one remediation owner only if a
|
||||||
|
supported Release A finding remains.
|
||||||
|
- Keep XMA-01, production activation, deployment, publication, push/PR, and every
|
||||||
|
Release B/Provider/hosted ticket closed until both repository reviews pass and the
|
||||||
|
required external inputs exist.
|
||||||
|
|
||||||
## Promotion Candidates
|
## Promotion Candidates
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user