diff --git a/.project-docs/30-worklog/current-state.md b/.project-docs/30-worklog/current-state.md index 7e4b493..09e9d65 100644 --- a/.project-docs/30-worklog/current-state.md +++ b/.project-docs/30-worklog/current-state.md @@ -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 diff --git a/.project-docs/30-worklog/tasks/20260901-plugin-catalog-load-client-7d4a8c21.md b/.project-docs/30-worklog/tasks/20260901-plugin-catalog-load-client-7d4a8c21.md deleted file mode 100644 index ab5ea4d..0000000 --- a/.project-docs/30-worklog/tasks/20260901-plugin-catalog-load-client-7d4a8c21.md +++ /dev/null @@ -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. diff --git a/.project-docs/30-worklog/tasks/20260901-plugin-catalog-main-integration-8e5c2a91.md b/.project-docs/30-worklog/tasks/20260901-plugin-catalog-main-integration-8e5c2a91.md new file mode 100644 index 0000000..a5b328a --- /dev/null +++ b/.project-docs/30-worklog/tasks/20260901-plugin-catalog-main-integration-8e5c2a91.md @@ -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.