docs(plugins): record unavailable release integration

This commit is contained in:
2026-09-02 00:07:48 +08:00
parent 93e3143573
commit 7cb7f6a5f4
3 changed files with 112 additions and 135 deletions

View File

@@ -4,6 +4,20 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
## Integrated Through
- Web Search unavailable-Release diagnostic correction source
`2e093bd22c0a3c46cc08b8eede8c1bc02afd690b` from task
`20260901-web-search-runtime-stale-r2-6f4a2d91` is integrated on local `main`
through product commit `93e3143` by task
`20260902-web-search-client-integration-a4c8e291`. When the server resolve API
explicitly returns `action='unavailable'` for `plugin_release_not_ready` or
`plugin_client_incompatible`, Electron Main now preserves the existing typed
`plugin_release_unavailable` result instead of mislabeling it as the unrelated
frozen-worker `plugin_runtime_stale` error. Exact Release, Account/project, policy,
Admission, Provider, confirmation, billing, and child-isolation gates are unchanged.
The current installed client still predates this diagnostic correction, and actual
usability still requires Works Square to deploy/apply the missing official bundled
Release and compatibility migrations; no package, restart, deployment, publication,
or paid Provider request occurred.
- Web Search frozen-worker stale-Library correction source
`3620cdc277fa0a99757c57a549008f9ecd380558` from task
`20260901-web-search-stale-resources-8b4e2c71` is integrated onto local `main`

View File

@@ -1,135 +0,0 @@
# Task: Diagnose Web Search runtime stale after reinstall
## Identity
- Task ID: 20260901-web-search-runtime-stale-r2-6f4a2d91
- Mode: Feature
- Branch: codex/20260901-web-search-runtime-stale-r2-6f4a2d91-web-search-runtime-stale-r2
- Worktree: D:\Datas\OthersProjects\makelore-web-search-runtime-stale-r2-6f4a2d91
- Base commit: 2c5b60ea78e014a712a47bdbb9efd156f52f3a1d
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Diagnose the installed-client `plugin_runtime_stale` failure after reinstall and a
newly created Conversation, using the latest Pi session, installed artifact metadata,
Main log, frozen worker manifest, and server Admission response as evidence.
- Establish a deterministic read-only reproduction/inspection loop before reading or
changing product code. If the fault is client-owned, make the smallest correction in
the Marketplace/effective-resolver/hosted-admission/Web Search invocation seam with
focused regressions. If evidence locates a deployed server-state problem, stop client
mutation and report the exact server prerequisite instead.
- Preserve the user root worktree and its two unrelated untracked package records. All
product, test, and task-record writes remain in this isolated worktree.
## Intent And Constraints
- Concurrent Task Gate: Passed. Task `20260901-web-search-runtime-stale-r2-6f4a2d91`
owns this worktree/branch at exact base
`2c5b60ea78e014a712a47bdbb9efd156f52f3a1d`; the dirty root was not adopted,
stashed, reset, cleaned, or modified.
- Planning Gate: Passed after reading the project-memory startup set, current state,
decisions, architecture/module/data-flow, business rules, success criteria,
glossary, evidence/reflection/commitment/stale indexes, the prior assignment and
frozen-worker corrections, official bundled-plugin integration, Web Search main
merge, and the only active Web Search peer record.
- The old coordinator task `20260831-web-search-client-5b9d2e63` remains at base
`0a86ec825...` with no live ownership of this post-merge runtime failure. No semantic
or write-scope conflict was found.
- Confirmed product invariants: a new parent worker must freeze an acquired, enabled,
assigned, exact official bundled Release; child workers receive no hosted tool;
invocation still requires current account/project/policy and exact server-owned
Release Admission; Renderer/Pi must not receive credentials or Provider authority.
- The previous source correction permits only a verified frozen worker to survive a
transient stale Library projection. The user's fresh reinstall/new Conversation
disproves that correction as a complete explanation, so it will not be broadened
without new evidence.
- Do not restart or terminate the running client, invoke paid Web Search/OpenAI, alter
Account Library/project/Agent state, package, push, deploy, publish, or touch server
state without a separately evidenced need and authority.
## Project Context Loaded
- Project goal: keep Electron Main as the authenticated Marketplace/hosted-Plugin
authority while exposing only frozen, admitted parent tools to Pi.
- Current integrated focus: Web Search is an official bundled optional hosted Plugin;
assignment discovery and frozen-worker stale-Library fixes are already on `main`.
- Active task scope: isolate the remaining installed-client `plugin_runtime_stale`
boundary and correct only the proven owner.
- Decisions affecting this task: ADR-006 single Pi runtime and frozen logical-thread
ownership; distinct Library, project, Agent, runtime Admission, confirmation, and
billing states; no hot-swap and no child inheritance.
- Evidence/commitments: installed artifacts must be verified rather than inferred from
source; live paid Provider and production activation remain out of scope.
- Likely modules if client-owned: `electron/coding-plugins/registry.ts`,
`effective-resolver.ts`, `hosted-admission.ts`, `marketplace-client.ts`, Web Search
adapter, and their focused tests.
- Unknowns to resolve first: exact installed source/verification head; exact newest Pi
tool event and frozen manifest; whether failure occurs before or inside hosted
Admission; whether `/resolve` reports stale, mismatched request identity, or a
different exact Release.
- Gate result: Passed.
## Diagnosis Evidence
- The newest Pi session deterministically reproduces two non-billing
`plugin_runtime_stale` results for `makelore_web_search`; both stop before Provider
dispatch or Token Point reservation.
- The new worker manifest is current and correct: parent-only Web Search Skill/tool,
Release `00000000-0000-4000-8000-000000000204`, version `1.0.0`, contract v1,
exact project/account snapshot, and platform-metered policy are frozen.
- The installed `app.asar` is version `1.2.4` and contains the prior
`resolveForInvocation` fix, disproving missing installation, stale conversation,
missing Agent assignment, and missing prior product code.
- Live anonymous Marketplace detail returns `stable_release=null` and
`stable_version=null`. The server task history confirms `0077` lists metadata only;
`0078` creates the exact bundled stable Release and has not been deployed.
- The integrated `0078` migration additionally declares `min_makelore_version=2.0.0`,
while the complete compatible runtime is demonstrably present in installed
MakeLore `1.2.4`. Once `0078` is deployed this would become the next Admission
blocker.
- The remaining client-owned defect is diagnostic fidelity: an explicit Marketplace
`action=unavailable` result is currently folded into `plugin_runtime_stale` instead
of the existing typed `plugin_release_unavailable` failure.
## Outcome
- Corrected the hosted Admission boundary so an explicit Marketplace
`action='unavailable'` becomes the existing typed
`plugin_release_unavailable` failure instead of being folded into the unrelated
`plugin_runtime_stale` worker-snapshot error.
- Added regressions for both currently reachable unavailable reasons:
`plugin_release_not_ready` and `plugin_client_incompatible`.
- The fix is deliberately diagnostic, not a client-side bypass: exact frozen Release,
Account, project, policy, Admission, Provider, and billing validation remain intact.
The actual production prerequisite is the server's missing `0078` Release migration
followed by the `0079` compatibility correction.
## Verification
- Deterministic installed-client evidence: newest Pi session reproduced two
`plugin_runtime_stale` Web Search calls; the frozen parent manifest and installed
`1.2.4` app contained the expected Skill, tool, Release, account/project snapshot,
and prior resolver implementation.
- TDD RED: both explicit unavailable-reason cases returned
`plugin_runtime_stale`; GREEN after the boundary correction.
- `pnpm exec vitest run tests/unit/hosted-admission.test.ts
tests/unit/web-search-plugin-adapter.test.ts
tests/unit/game-resource-plugin-adapter.test.ts`: 3 files, 25 tests passed.
- `pnpm exec tsc --noEmit`: passed.
- Scoped ESLint for the changed implementation and test: passed.
- `git diff --check`: passed. No installed client, user root worktree, Account/Library,
project/Agent assignment, Provider, billing, or production state was mutated.
## Follow-ups
- Integrate this small diagnostic correction into the next MakeLore build so future
Release availability failures remain truthful. It is not required to make the
current installed runtime compatible once the server Release/migration gate is fixed.
- Deploy/apply server `0078` and `0079`, reopen the worker, then verify Provider
readiness before performing an explicitly authorized paid Web Search smoke.
## Promotion Candidates
- None recorded.

View File

@@ -0,0 +1,98 @@
# Task: Integrate Web Search unavailable-release diagnostics
## Identity
- Task ID: 20260902-web-search-client-integration-a4c8e291
- Mode: Integration
- Branch: main
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: 2c5b60ea78e014a712a47bdbb9efd156f52f3a1d
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Integrate exact source commit `2e093bd22c0a3c46cc08b8eede8c1bc02afd690b`
from completed feature task `20260901-web-search-runtime-stale-r2-6f4a2d91`.
- Preserve the two pre-existing untracked package task records byte-for-byte and keep
all other client product, package, installed application, and runtime state unchanged.
- Record the integrated diagnostic boundary in canonical current state and run the
source-focused verification plus Integration Documentation Gate.
## Intent And Constraints
- The source commit changes only the mapping of an explicit Marketplace
`action='unavailable'`: it must surface `plugin_release_unavailable`, not the
unrelated `plugin_runtime_stale` snapshot error.
- Do not weaken frozen worker, exact Release, Account/project, policy, Admission,
Provider, confirmation, or billing checks. Do not install/package/restart the running
application, mutate Account/Library/project state, deploy, publish, or invoke a paid
Provider.
- User authorization to take over the client root while preserving unowned files was
applied through `--adopt-existing`; the exact pre-existing files remain outside this
task's ownership:
`.project-docs/30-worklog/tasks/20260901-package-122-c5e8.md` and
`.project-docs/30-worklog/tasks/20260901-package-123-d7f3.md`.
- Concurrent Task Gate: PASS. Integration lock and exact root identity are held for
task `20260902-web-search-client-integration-a4c8e291` on `main` at base
`2c5b60ea78e014a712a47bdbb9efd156f52f3a1d`; no other task owns this worktree.
## Project Context Loaded
- Project goal: Electron Main remains the authenticated Marketplace and hosted-Plugin
authority; Renderer/Pi receive only closed projections from an exact frozen parent
worker.
- Current integrated focus: official bundled Game Resource/Web Search already use
account acquisition plus server Release Admission without device package download.
- Active task scope: integrate one reviewed diagnostic correction and its two-reason
regression, then update canonical integrated state.
- Active constraints: no silent state advancement; no hot swap; no child inheritance;
no client-side bypass of Release, Provider, or Token Point authority.
- Decisions affecting this task: ADR-006 single Pi runtime and logical-thread resource
ownership; Marketplace Library, project selection, Agent assignment, Admission, and
billing remain distinct states.
- Evidence/reflections/commitments: the installed `1.2.4` artifact and fresh Pi manifest
proved correct tool materialization; live public Marketplace detail proved the server
Stable Release was absent. Paid Provider and production deployment remain external.
- Files involved: hosted Admission resolver, its focused test, source task record,
this integration record, and canonical current state only.
- Other active local tasks: many historical isolated feature/review owners remain in
the registry, but none owns this root or the changed hosted-Admission files at the
current frontier. The completed source feature is the only semantic input.
- Unknowns/conflicts: current production Web Search Provider Config/model is not
revalidated by this client integration; no semantic conflict or promotion decision
is present.
- Gate result: Passed.
## Outcome
- Cherry-picked the exact completed source as product commit
`93e3143e8a427829efc1894317f188868c21803c` on local `main`; source and integrated
product trees match for the resolver/test/source-record change.
- Canonical current state now records the corrected unavailable-Release diagnostic and
keeps the server migration/Provider readiness requirements explicit.
- The two pre-existing untracked package records remain present and unmodified. No
installed application, project, Account Library, server, package, or external state
was changed.
## Verification
- Source evidence adopted: focused 3 files / 25 tests, TypeScript typecheck, scoped
ESLint, diff gate, and feature task documentation gate passed.
- Post-integration rerun on exact `main`: the same 3 files / 25 tests passed;
`pnpm exec tsc --noEmit`, scoped ESLint, and `git diff --check` passed.
- Integration task-aware document drift and ownership completion are required before
closure.
## Follow-ups
- Deploy Works Square commits containing migrations `0078` and `0079`, run Alembic to
exact `20260901_official_plugin_compat_0079`, and verify Web Search public detail has
Stable Release `00000000-0000-4000-8000-000000000204`.
- Revalidate the server-owned Web Search Provider Config/model and deployment secret,
then reopen the worker. A rebuilt client is needed only to display the improved typed
error; reinstalling cannot replace the missing server Release migration.
## Promotion Candidates
- None recorded.