4.1 KiB
4.1 KiB
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:
5e8b7266c2 - 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
.envfiles, 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
- Verify the live catalog parses through the exact client DTO parser.
- Inspect the running installed Main process, local Host API, logs, embedded bundle, and effective API origin.
- Reproduce the failing boundary with a focused test/probe, rank falsifiable causes, and implement only the confirmed fix.
- 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-Matchrequest 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 asplugin_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 IDsmakelore.data-service,makelore.game-resource,makelore.web-search. - Installed MakeLore is version 1.2.0 and its
app.asarcontains the Marketplace route, service composition, and production originhttps://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 ETagand 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.