diff --git a/.project-docs/30-worklog/current-state.md b/.project-docs/30-worklog/current-state.md index d155924..85944a1 100644 --- a/.project-docs/30-worklog/current-state.md +++ b/.project-docs/30-worklog/current-state.md @@ -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` diff --git a/.project-docs/30-worklog/tasks/20260901-web-search-runtime-stale-r2-6f4a2d91.md b/.project-docs/30-worklog/tasks/20260901-web-search-runtime-stale-r2-6f4a2d91.md deleted file mode 100644 index de363c5..0000000 --- a/.project-docs/30-worklog/tasks/20260901-web-search-runtime-stale-r2-6f4a2d91.md +++ /dev/null @@ -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. diff --git a/.project-docs/30-worklog/tasks/20260902-web-search-client-integration-a4c8e291.md b/.project-docs/30-worklog/tasks/20260902-web-search-client-integration-a4c8e291.md new file mode 100644 index 0000000..b2ef9f6 --- /dev/null +++ b/.project-docs/30-worklog/tasks/20260902-web-search-client-integration-a4c8e291.md @@ -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.