docs(plugins): integrate frozen worker stale-library fix

This commit is contained in:
2026-09-01 22:29:56 +08:00
parent 40e1912f2f
commit 2c5b60ea78
3 changed files with 99 additions and 152 deletions

View File

@@ -4,6 +4,21 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
## Integrated Through ## Integrated Through
- Web Search frozen-worker stale-Library correction source
`3620cdc277fa0a99757c57a549008f9ecd380558` from task
`20260901-web-search-stale-resources-8b4e2c71` is integrated onto local `main`
through product commit `40e1912` by task
`20260901-web-search-stale-integration-9c5f3d82`. Live client evidence showed an
eligible parent worker with the official Web Search Skill, tool, Release and policy
failing `409 plugin_runtime_stale` because invocation re-ran full materialization and
treated one transient Account Library refresh as permanent worker invalidation. New
workers still require a current Library; a previously frozen worker may now use the
last verified Library projection only long enough to obtain the server-owned exact
Release Admission. Account/session change, project disable, acquisition removal,
runtime suspension, Release/version change, policy/billing gates and child isolation
remain fail closed. Focused 19, adjacent 55, full 1,786 plus pressure, typecheck and
scoped lint passed. The currently running installed binary predates this source fix;
no restart, package, deploy, publication or paid Provider call was performed.
- Web Search Agent-assignment catalog fix source - Web Search Agent-assignment catalog fix source
`612794463de1b14fd748202a00115c6f93c7346b` from task `612794463de1b14fd748202a00115c6f93c7346b` from task
`20260901-web-search-tool-routing-fix-6f9d3b82` is integrated onto local `main` `20260901-web-search-tool-routing-fix-6f9d3b82` is integrated onto local `main`

View File

@@ -0,0 +1,84 @@
# Task: Integrate Web Search frozen worker stale-Library fix
## Identity
- Task ID: 20260901-web-search-stale-integration-9c5f3d82
- Mode: Integration
- Branch: codex/20260901-web-search-stale-integration-9c5f3d82
- Worktree: D:\Datas\OthersProjects\makelore-web-search-stale-integration-9c5f3d82
- Base commit: 697c68974de8bf43c7094e67372a03123c449343
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Integrate sole source commit `3620cdc277fa0a99757c57a549008f9ecd380558`
from completed feature task `20260901-web-search-stale-resources-8b4e2c71`
onto exact local `main` base `697c68974de8bf43c7094e67372a03123c449343`.
- Preserve the source task record on its source branch, remove only its duplicate copy
from this integration checkpoint, update this integration record and canonical
current state, and fast-forward local `main` after verification.
## Intent And Constraints
- Concurrent Task Gate: passed in the isolated integration worktree created from exact
`main`; this task holds the integration lock. The root worktree's two unrelated
untracked package records remain untouched.
- Planning Gate: passed after loading the required project memory earlier in the
diagnostic task, then re-reading the current integrated state, Integration Gate,
completed source record, and active-owner registry for this exact promotion.
- Semantic comparison found no conflict. The source fix preserves the accepted frozen
worker and server Admission boundaries: new workers still require current Library;
only invocation revalidation may use the last verified stale Library projection.
- Integrate only the sole source commit. Do not restart the running installed client,
package, push, deploy, publish, call paid Web Search, or alter server/pricing/Provider
authority.
## Project Context Loaded
- Integration task/worktree/branch/base identity matches the task registry exactly.
- Source commit has sole parent equal to this integration base and is
`READY_FOR_INTEGRATION`; its focused, adjacent, typecheck, lint, full-unit, pressure,
diff, and documentation gates passed.
- The old Web Search coordinator/reviewer registrations are historical at earlier
frontiers and do not own this product range. The root's package records are unowned
and intentionally excluded by isolated integration.
- Canonical current state already records frozen Web Search worker materialization,
assignment, Admission, and installed-binary limitations. This landing adds only the
diagnosed stale-Library invocation correction and its evidence.
- Gate result: passed; cherry-pick and canonical integration writes may proceed.
## Outcome
- Cherry-picked sole source commit `3620cdc277fa0a99757c57a549008f9ecd380558`
onto the exact integration base as product commit
`40e1912`. The four product/test paths are byte-identical to the completed source.
- Removed only the duplicated source task record from this integration checkpoint; its
source branch/worktree/record remain intact. Recorded the landed behavior and limits
at the top of canonical `current-state.md`.
- The fix keeps new hosted workers fail closed on stale Library data while letting an
already verified frozen worker continue to the server-owned exact Release Admission.
The project, account, acquisition, suspension, Release/version, policy, billing,
confirmation and parent-only checks were not bypassed.
- Local `main` can be fast-forwarded after this documentation checkpoint. Its two
unrelated untracked package records remain untouched. The running installed MakeLore
binary was not restarted or replaced and therefore does not yet contain this source.
## Verification
- Source task evidence adopted: focused 19, adjacent 55, full 215 files / 1,786 passed /
2 skipped plus pressure 1/1, typecheck, scoped lint, diff, and task documentation
gates passed.
- Integration product/test tree equality against source commit: passed.
- Integration rerun: focused resolver/registry 2 files / 19 tests passed; `pnpm run
typecheck` passed.
- No paid Web Search, package, restart, push, deploy, publication, server or Provider
action was performed.
## Follow-ups
- None recorded.
## Promotion Candidates
- None recorded.

View File

@@ -1,152 +0,0 @@
# Task: Diagnose Web Search stale worker resources
## Identity
- Task ID: 20260901-web-search-stale-resources-8b4e2c71
- Mode: Feature
- Branch: codex/20260901-web-search-stale-resources-8b4e2c71
- Worktree: D:\Datas\OthersProjects\makelore-web-search-stale-resources-8b4e2c71
- Base commit: 697c68974de8bf43c7094e67372a03123c449343
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Diagnose the reported `409 Web Search worker resources are stale` from the actual
installed-client Conversation, establish a deterministic regression at the owning
client seam, and implement only the smallest lifecycle/materialization correction
supported by evidence.
- Own only the client Plugin/Pi resource-generation paths and focused tests proven to
cause the failure. Do not change Works Square, pricing, Provider, Marketplace
publication, packaged trust, or unrelated Agent behavior.
## Intent And Constraints
- Preserve the product invariant that one parent Pi worker uses a frozen Plugin
snapshot for its lifetime. Account/project/Release/policy or worker-generation
changes must continue to invalidate future actions; the fix must not globally relax
fail-closed stale-resource checks.
- Use the live user-data files only as read-only diagnostic evidence and redact Account
tokens/credentials. Do not restart or kill the running MakeLore client without user
authorization.
- Follow the `diagnosing-bugs` loop: first establish a tight red-capable feedback loop,
then state ranked falsifiable hypotheses, add a regression before changing product
code, and verify the same loop after the fix.
- Preserve the two unrelated untracked package task records in the user root worktree;
all task writes stay in this isolated worktree. No push, package, publish, deploy, or
paid Provider call is authorized.
## Project Context Loaded
Task context:
- Task ID: `20260901-web-search-stale-resources-8b4e2c71`
- Mode: Feature
- Branch: `codex/20260901-web-search-stale-resources-8b4e2c71`
- Worktree: `D:\Datas\OthersProjects\makelore-web-search-stale-resources-8b4e2c71`
- Base commit: `697c68974de8bf43c7094e67372a03123c449343`
- Other active local tasks: the old Web Search coordinator
`20260831-web-search-client-5b9d2e63` remains registered at its pre-integration
frontier; several historical Marketplace reviewers remain registered in Planning.
The user root contains two unowned package task records.
- Overlap or semantic-conflict assessment: no current product writer owns the exact
main frontier or this diagnosis. The old coordinator and reviewers are historical or
read-only at earlier bases. The two root records remain unknown/unowned and untouched;
isolation prevents overlap.
Read:
- `.project-docs/05-agent-entry/memory-index.md`
- `.project-docs/05-agent-entry/read-before-coding.md`
- `.project-docs/05-agent-entry/planning-gate.md`
- `.project-docs/00-brief/project-positioning.md`
- `.project-docs/30-worklog/current-state.md`
- `.project-docs/10-decisions/decision-index.md`
- `.project-docs/20-architecture/system-overview.md`
- `.project-docs/20-architecture/module-map.md`
- `.project-docs/20-architecture/data-flow.md`
- `.project-docs/40-domain/business-rules.md`
- `.project-docs/00-brief/success-criteria.md`
- `.project-docs/40-domain/glossary.md`
- `.project-docs/50-evidence/evidence-index.md`
- `.project-docs/60-reflection/reflection-index.md`
- `.project-docs/80-commitments/commitments.md`
- `.project-docs/90-maintenance/stale-items.md`
- peer record `20260831-web-search-client-5b9d2e63.md`
Relevant understanding:
- Project goal: MakeLore exposes curated, Main-owned Plugin capabilities to eligible Pi
parent workers without leaking Account, Provider, trust, or billing authority.
- Current integrated focus: the Web Search package/runtime and assignment catalog fix
are on local `main`; the screenshot proves the new Conversation now loads and invokes
`makelore_web_search` but fails at invocation-time resource validation.
- Active task scope: diagnose and correct only the self-invalidating stale-resource path.
- Active constraints: frozen workers must remain frozen; child workers remain empty;
official bundled acquisition, project enablement, Agent assignment, current Admission,
confirmation, and billing remain separate gates.
- Decisions affecting this task: effective Plugin materialization is a single frozen
snapshot; supported lifecycle changes invalidate future actions rather than hot-swap
resources; Electron Main is the only hosted transport authority.
- Evidence, reflections, or commitments affecting this task: existing workers are
intentionally frozen, and the current installed binary may predate source changes;
live PostgreSQL/OpenAI/production activation holds are unrelated to this client-side
`409` and must not be presented as verified.
- Files or modules likely involved: actual Pi prompt/extension-context/session evidence,
then `electron/coding-plugins/registry.ts`, effective resolver/policy admission, Pi
materialization/lifecycle seams, and their focused tests if the evidence points there.
- Unknowns, stale docs, or conflicts: a paid live Provider call remains intentionally
unexecuted. The client-side failure is independently reproducible at the frozen
snapshot boundary and does not require spending Token Points to diagnose.
Gate result:
- Passed. Concurrent ownership and Planning context are resolved; diagnostic work may
proceed in this isolated worktree.
## Outcome
- Live evidence from the reported Conversation proves that the parent worker contains
the `makelore-web-search` Skill, the `makelore_web_search` tool, the official bundled
Release `00000000-0000-4000-8000-000000000204`, account generation 1, and current
runtime policy. The confirmed invocation alone returned
`409 plugin_runtime_stale`; no resource-rebuild event occurred before it.
- Ranked hypotheses were checked against the persisted Pi manifest/session, project
selection, Agent assignment, session timestamps, extension-host context, and Main
logs. Wrong child role, wrong Conversation/generation, an account epoch change, and a
project/Release mutation were not supported. The remaining reachable path was the
registry's invocation-time call to the full worker materializer.
- Root cause: `CodingCapabilityRegistryImpl.invoke()` re-ran
`EffectivePluginResolver.resolve()`. That path intentionally rejects a hosted Plugin
whenever a subsequent Account Library request returns a trusted but stale snapshot,
so one transient Library refresh invalidated a worker that had just been materialized.
This happened before the hosted adapter could obtain the server-owned immutable
Admission that actually gates account, runtime status, and exact Release dispatch.
- Added a separate `resolveForInvocation()` contract. New workers still fail closed on
stale hosted Library data. An already frozen worker may retain the last verified
Library projection long enough to reach the typed hosted Admission; missing Library,
account change, project disable, removed acquisition, suspension, incompatible or
changed Release, unsupported policy, billing unavailability, and child-worker gates
remain unchanged.
- TDD evidence: the new resolver and registry regressions first failed because
`resolveForInvocation` did not exist and the registry still called `resolve`; after
the focused correction both pass.
## Verification
- `pnpm exec vitest run tests/unit/coding-plugin-effective-resolver.test.ts tests/unit/coding-capability-registry.test.ts`: 2 files / 19 tests passed.
- `pnpm exec vitest run tests/unit/coding-plugin-effective-resolver.test.ts tests/unit/coding-capability-registry.test.ts tests/unit/hosted-admission.test.ts tests/unit/web-search-plugin-adapter.test.ts tests/unit/coding-plugin-composition.test.ts tests/unit/coding-product-services.test.ts`: 6 files / 55 tests passed.
- `pnpm run typecheck`: passed.
- Scoped ESLint for the two product and two regression-test files: passed.
- `pnpm test`: 215 regular files / 1,786 passed / 2 skipped, followed by the
single-worker pressure suite 1/1 passed. The first diagnostic run encountered two
transient `spawn EBUSY` failures while the offline Electron dependency was settling;
that exact real-process file then passed 3/3, and the clean full rerun passed.
- `git diff --check`, `check_project_docs.py`, and task-aware
`check_doc_drift.py`: passed.
- A paid Web Search execution was not run; this task does not claim Provider, Token
Point settlement, deployment, packaging, or production activation evidence.
## Follow-ups
- None recorded.
## Promotion Candidates
- None recorded.