5.3 KiB
5.3 KiB
Task: REV-01 Client WebSearchClient remediation
Identity
- Task ID: 20260901-web-search-rev01-client-remediation-e4a7c9b2
- Mode: Feature
- Branch: codex/20260901-web-search-rev01-client-remediation-e4a7c9b2-web-search-rev01-client-remediation
- Worktree: D:\Datas\OthersProjects\makelore-web-search-rev01-client-remediation-e4a7c9b2
- Base commit:
4a1e5d3121 - Owner: web-search-rev01-client-remediation
- Status: Ready for Integration
Scope
- Remediate the four accepted REV-01 Client Spec-axis findings from the exact
coordinator frontier
4a1e5d31213191a0102eab9278dd9887ba8738f4. - Ownership is limited to
electron/services/web-search-client.ts, its focused Web Search client tests, and this task record. No Server, composition, Pi, Package Store, Renderer, or shared product-scope changes. - Preserve the fixed typed route, trusted admission, same logical-operation replay, closed capability envelope, and external PostgreSQL/live OpenAI/ production-activation holds.
Intent And Constraints
- Project Context Loaded:
- Task ID:
20260901-web-search-rev01-client-remediation-e4a7c9b2 - Mode: Feature
- Branch:
codex/20260901-web-search-rev01-client-remediation-e4a7c9b2-web-search-rev01-client-remediation - Worktree:
D:\Datas\OthersProjects\makelore-web-search-rev01-client-remediation-e4a7c9b2 - Base commit:
4a1e5d31213191a0102eab9278dd9887ba8738f4 - Other active local tasks: client coordinator, MLW-01/02/03 source tasks, and the read-only REV-01 client/server review tasks. Their records were inspected for scope; no product writer overlaps this remediation.
- Overlap/semantic assessment: the four findings are confined to the WebSearchClient response boundary and have one authorized owner. No semantic conflict with server DTO, composition, or Package Store scope.
- Task ID:
- Read: client
AGENTS.md; completemaintain-project-docs,implement-spec, andtddskills; project entry files; client architecture/domain/decision, evidence/reflection/commitment/stale indexes; the Web Search design and implementation Spec; REV-01 client Spec and Standards task records. - Concurrent Task Gate: Passed.
check_project_docs.pypassed; task_context created the isolated worktree andstatus --jsonmatches this task ID, owner, worktree, branch, and exact base. - Planning Gate: Passed. The fixed client review identified exactly four actionable response-boundary findings; the current plan remains within the accepted ownership and does not alter the frozen contract.
- Implementation plan:
- Add public-seam tests that fail for status/body precedence, streamed response bounds, closed status/receipt/result pairings, and source URL validation.
- Make the smallest WebSearchClient changes to pass each red test: status first with bounded Retry-After, chunked streaming cap, closed receipt and result invariants, and absolute HTTP(S) URL validation without userinfo.
- Run focused and adjacent tests, typecheck, lint, diff/doc gates; then update this record and create one source commit only after a clean handoff.
Outcome
- Implemented the four accepted WebSearchClient response-boundary fixes: HTTP-status-first 429 handling with bounded Retry-After, a true streamed response cap, closed search/billing/error pairings, and safe bounded source URLs. No file outside the owned client service/test/task-record scope was changed.
Verification
- Concurrent/Planning gates passed.
- TDD RED: the new focused suite exposed 8 failures in 16 tests for unsafe URLs, 429 body precedence, chunked buffering, malformed receipts/pairings, and the now-invalid failed-without-error fixture.
- TDD GREEN:
pnpm exec vitest run tests/unit/web-search-client.test.tspassed 16/16. - Adjacent:
pnpm exec vitest run tests/unit/web-search-client.test.ts tests/unit/web-search-plugin-adapter.test.tspassed 27/27. pnpm run typecheckpassed; owned-file ESLint passed with zero errors.- Full
pnpm testpassed: 214 files, 1,759 tests passed, 2 skipped; the pressure suite passed 1/1. Fullpnpm run lint:checkpassed with zero errors and five pre-existing warnings outside this task's ownership. - Task-aware doc drift and source diff checks passed; the final source commit
and clean
task_contexthandoff are recorded below.
Handoff
- Source commit: the final task
HEADhanded off to the coordinator; its sole parent is the exact coordinator frontier4a1e5d31213191a0102eab9278dd9887ba8738f4. task_context completepassed withREADY_FOR_INTEGRATION; this source commit is the sole integration candidate.
Follow-ups
- Coordinator must integrate only the final source commit and trigger a fresh fixed-range Standards/Spec review.
Promotion Candidates
- Target: client integration coordinator and fresh REV-01 review checkpoint. Proposal: preserve HTTP-status-first semantics, enforce a real 1 MiB stream cap, reject incoherent closed receipts/results, and reject unsafe source URLs. Evidence: REV-01 Client Spec findings and new public-seam regressions. Future impact: prevents malformed responses from overriding server status, unbounded chunked buffering, ungrounded success results, or provider URL leakage. Semantic conflicts: none; human confirmation: not required for this in-scope remediation.