Files
makelore/.project-docs/30-worklog/tasks/20260901-web-search-mlw01-admission-b7d5f3a2.md
T

5.8 KiB

Task: Implement MLW-01 shared hosted admission resolver

Identity

  • Task ID: 20260901-web-search-mlw01-admission-b7d5f3a2
  • Mode: Feature
  • Branch: codex/20260901-web-search-mlw01-admission-b7d5f3a2-web-search-mlw01-admission
  • Worktree: D:\Datas\OthersProjects\makelore-web-search-mlw01-admission-b7d5f3a2
  • Base commit: c4db68767f
  • Owner: web-search-mlw01-implementer
  • Status: Ready for Integration

Scope

  • Implement MLW-01 shared hosted admission resolution from the exact client frontier c4db68767fcd1916e4441ab0e2c2504210f75e83.
  • Add electron/coding-plugins/hosted-admission.ts as the single shared, provider-neutral resolver. It validates a trusted worker snapshot against the Package Store, MakeLore version, Marketplace channel resolution and the current account admission, returning only exact releaseId and releaseAdmissionId or a typed failure.
  • Refactor only the admission portion of electron/coding-plugins/adapters/game-resource.ts to consume the helper; preserve its existing provider, payload, confirmation, replay, and result behavior.
  • Add seam tests in tests/unit/hosted-admission.test.ts and the relevant admission regression coverage in tests/unit/game-resource-plugin-adapter.test.ts.
  • Do not implement Web Search client/adapter, composition, Renderer, Pi worker, Package Store/effective resolver, Server, or MLW-02/MLW-03 work.

Intent And Constraints

  • Project Context Loaded: client AGENTS.md, the complete maintain-project-docs skill, TDD and implement-spec instructions, required project-memory entry points, the MLW-01 implementation ticket, and the reviewed Web Search design/implementation sections were read before coding.
  • Concurrent Task Gate: Passed. Task-context owner, isolated worktree, branch, owner, mode, and exact base match; the client coordinator and user root worktrees remain untouched.
  • Planning Gate: Passed. The prior broad Web Search feature/coordinator records were inspected read-only. Their old 0a86ec8... base and broad coordination scope overlap by topic, but the current coordinator explicitly owns this isolated MLW-01 ticket from the frozen DTO frontier; no unresolved semantic conflict remains.
  • The helper accepts only code-owned plugin identity, trusted worker snapshot, Package Store, Marketplace client, and MakeLore version. It does not accept provider/config, payload, billing, or HTTP-route inputs and sends no business request of its own.
  • Use TDD red -> green vertical slices and public seams. Every source change stays within the five product/test paths above plus this task record. One source commit with this task record included, clean worktree, and READY_FOR_INTEGRATION handoff are required. No push, PR, deploy, publish, or real Provider call.
  • Project Context Loaded:
    • Task ID: 20260901-web-search-mlw01-admission-b7d5f3a2
    • Mode: Feature
    • Branch: codex/20260901-web-search-mlw01-admission-b7d5f3a2-web-search-mlw01-admission
    • Worktree: D:\Datas\OthersProjects\makelore-web-search-mlw01-admission-b7d5f3a2
    • Base commit: c4db68767fcd1916e4441ab0e2c2504210f75e83
    • Other active local tasks: old Web Search feature/coordinator records and unrelated historical review records; no other task owns the files in this ticket.
    • Overlap assessment: topic overlap with the old Web Search coordinator is resolved by current ticket ownership and exact-base isolation; no code-path or semantic overlap is left within this ticket's owned files.
  • Planned slices: (1) resolver contract and mismatch tests; (2) minimal resolver implementation; (3) Game Resource seam migration and regression; (4) focused/adjacent/typecheck/lint/doc gates; (5) one source commit and clean handoff.

Outcome

  • Implemented the provider-neutral MarketplaceHostedAdmissionResolver and migrated Game Resource's admission seam to use it. A worker must carry a frozen release; the resolver reads that exact installed release, resolves the current account admission through the selected channel, and returns only the exact release/admission IDs. Release, channel, action, digest, size, request, and account mismatches fail with typed bounded errors. No current-release fallback, provider/config, payload, billing, HTTP, Web Search, or renderer behavior was added.
  • The Game Resource adapter preserves its existing client and tool behavior, while missing or stale hosted admission now fails closed through the shared resolver. The only product/test paths changed are the five paths listed in Scope; this task record is the sole project-doc change.

Verification

  • TDD red: the new resolver suite initially collected zero tests because the new module was absent (expected module-not-found); no product module existed before the red checkpoint.
  • TDD green: hosted-admission and Game Resource admission suites passed 12/12.
  • pnpm run typecheck passed.
  • Adjacent coding-plugin/Game Resource suite passed 74/74 across 6 files.
  • Full pnpm test passed: 212 files, 1,728 tests, 2 skipped; pressure suite passed 1/1. pnpm run lint:check passed with 0 errors and 5 pre-existing warnings outside this task (Home hook dependency and Makelore fast-refresh exports). Owned-file ESLint and compile checks passed.
  • Worktree diff/doc gates are being finalized before the single source commit; no real provider call, publish, deployment, or production activation was attempted.

Follow-ups

  • Coordinator must cherry-pick the single source commit from this exact base, then run its repository-local integration and fixed-range review gates.
  • Real PostgreSQL, live OpenAI, official signing-key, provider-secret, and production-activation gates remain outside this client ticket and HOLD as specified by the parent Web Search rollout.

Promotion Candidates

  • None recorded.