docs(plugins): integrate catalog load fix

This commit is contained in:
2026-09-01 12:25:47 +08:00
parent 38f2358db3
commit 6083de6aee
3 changed files with 59 additions and 59 deletions

View File

@@ -4,6 +4,17 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
## Integrated Through
- Marketplace weak-ETag interoperability fix source
`b3cfe7e1ceb7da65ccc99214db09102b4fc1cace` from task
`20260901-plugin-catalog-load-client-7d4a8c21` is promoted to local `main` by
task `20260901-plugin-catalog-main-integration-8e5c2a91` through product commit
`38f2358`. The Main-owned Marketplace client now accepts both strong and valid
weak composite catalog ETags, preserves the exact received validator for the next
`If-None-Match`, and retains catalog-generation and Token Point pricing identity
checks. This closes the installed-client failure where the production gateway's
compressed `W/"plugins-..."` response was incorrectly surfaced as
`plugin_backend_unavailable`; it does not add a local fallback catalog or change
server, Provider, trust, pricing, or billing authority.
- Packaged Pi Agent Server resolver fix source `7df245af5a04f62be48980831ff41987ba686009`
from task `20260901-local-runtime-unavailable-8b42c7f1` is promoted to local
`main` by task `20260901-promote-local-runtime-main-a7c4e291` through verified

View File

@@ -1,59 +0,0 @@
# Task: Diagnose MakeLore Marketplace catalog loading
## Identity
- Task ID: 20260901-plugin-catalog-load-client-7d4a8c21
- Mode: Feature
- Branch: codex/20260901-plugin-catalog-load-client-7d4a8c21-plugin-catalog-load-client
- Worktree: D:\Datas\OthersProjects\makelore-plugin-catalog-load-client-7d4a8c21
- Base commit: 5e8b7266c2a8297c9d307b576256886659d44780
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Reproduce the installed MakeLore Marketplace catalog failure at the Renderer → IPC dispatcher → Main Marketplace client boundary.
- Verify the installed 1.2.0 artifact contains the current Marketplace composition and compare its parser/network behavior with the live catalog.
- If a client defect is confirmed, change only the smallest Marketplace client/Host API/error-projection seam and focused tests.
## Intent And Constraints
- Preserve the occupied client root worktree and its untracked packaging record; all product work stays in this isolated worktree.
- Do not expose Works credentials, read real `.env` files, alter Package Store/Provider/billing state, or publish a package.
- Treat local-package inference as forbidden: a failed server catalog must remain fail closed.
- The tight loop must reproduce the exact initial catalog failure or prove each boundary healthy before any implementation change.
## Plan
1. Verify the live catalog parses through the exact client DTO parser.
2. Inspect the running installed Main process, local Host API, logs, embedded bundle, and effective API origin.
3. Reproduce the failing boundary with a focused test/probe, rank falsifiable causes, and implement only the confirmed fix.
4. Run focused regressions and task documentation gates; do not rebuild/publish unless the fix affects packaged behavior and needs an artifact proof.
## Outcome
- Completed. The Marketplace client now accepts both strong and standards-compliant weak composite ETags, while preserving the exact received validator for the next `If-None-Match` request and retaining all generation/pricing identity checks.
- Root cause: the production gateway emits `W/"plugins-..."` for the compressed catalog response. The previous strong-only regular expression rejected that otherwise valid HTTP 200 response, and the local Host API surfaced the rejection as `plugin_backend_unavailable`.
- No fallback catalog, server mutation, proxy workaround, or billing/Provider behavior was added.
## Verification
- Live catalog parsed through `parseMarketplaceCatalogPage`: HTTP 200, total 3, exact IDs `makelore.data-service`, `makelore.game-resource`, `makelore.web-search`.
- Installed MakeLore is version 1.2.0 and its `app.asar` contains the Marketplace route, service composition, and production origin `https://square.nianxx.cn`.
- Running local Host API is on `127.0.0.1:13210`; an unauthenticated shell probe correctly returns 401 and therefore cannot yet distinguish dispatcher/service from upstream failure.
- Installed-session Electron probes returned HTTP 200 and the weak composite ETag; the exact source Marketplace client failed before the fix with `marketplace_response_invalid: invalid composite Marketplace ETag` and returned all three official Plugins after the fix.
- TDD regression: the new weak-ETag/304-reuse case failed before the product change and passed after it.
- `pnpm exec vitest run tests/unit/coding-plugin-marketplace-client.test.ts tests/unit/plugin-marketplace-routes.test.ts tests/unit/plugin-marketplace-store.test.ts tests/unit/plugin-marketplace-pages.test.tsx`: 4 files, 68 tests passed.
- `pnpm test`: 214 files, 1761 tests passed, 2 expected skips; pressure test 1/1 passed.
- `pnpm run typecheck`: passed.
- `pnpm run lint:check`: 0 errors and 5 unchanged warnings outside this task.
- `pnpm run build:vite`: Renderer, Main, Preload, and utility builds passed.
- Scoped ESLint and `git diff --check`: passed.
## Follow-ups
- Integrate this task into the client main branch, rebuild the Windows artifact, and install/restart it. The currently installed MakeLore 1.2.0 artifact cannot pick up this source-only fix dynamically.
## Promotion Candidates
- None recorded.

View File

@@ -0,0 +1,48 @@
# Task: Integrate and package Marketplace weak-ETag fix
## Identity
- Task ID: 20260901-plugin-catalog-main-integration-8e5c2a91
- Mode: Integration
- Branch: main
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: 5e8b7266c2a8297c9d307b576256886659d44780
- Owner: codex-root
- Status: In Progress
## Scope
- Integrate the completed weak-ETag Marketplace client fix from source commit `b3cfe7e1ceb7da65ccc99214db09102b4fc1cace` into local `main`.
- Reconcile the accepted fact into current project state without changing Marketplace architecture or authority boundaries.
- Rebuild and verify the Windows 1.2.0 artifact, then replace the currently installed client and verify the Plugin Center against the deployed catalog.
## Intent And Constraints
- The user explicitly authorized release/takeover of completed root task `20260901-package-120-4c7e`, integration, rebuild, and installation.
- Preserve the released task's untracked record `.project-docs/30-worklog/tasks/20260901-package-120-4c7e.md` byte-for-byte; to satisfy the Integration Gate it was moved without modification to `C:\Users\7brot\AppData\Local\Temp\codex-task-recovery-20260901-package-120-4c7e\20260901-package-120-4c7e.md` and remains outside this task's commit.
- Source task promotion candidates are empty and its sole parent is the exact current `main` base, so no semantic conflict or merge choice exists.
- Do not push, publish, deploy, mutate the Works Square catalog, or weaken trust/Provider/billing fail-closed behavior.
- Installation may stop the running MakeLore process, but must target only the exact generated MakeLore installer/application.
## Plan
1. Cherry-pick the exact source fix and remove only the duplicate source task record from the integration history.
2. Update canonical current state and run focused/full source verification from the integrated tree.
3. Build and verify the Windows artifact, stop MakeLore, install the exact artifact, and smoke the Plugin Center.
4. Record artifact/install evidence, complete project-document gates, and leave `main` clean except the preserved foreign task record.
## Outcome
- Product source commit `b3cfe7e1ceb7da65ccc99214db09102b4fc1cace` was integrated as local `main` commit `38f2358`; packaging and installed-client verification remain in progress.
## Verification
- Source commit sole parent equals integration base `5e8b7266c2a8297c9d307b576256886659d44780`; cherry-pick completed without conflict.
## Follow-ups
- None recorded.
## Promotion Candidates
- None recorded.