Intent: an agent that calls search wrong learns how to call it right from the answer.
Today: GET /api/v1/search?q= answers 200 with empty lists and nothing else, while /api/v1/explore?q=sort:bogus answers a note naming what is accepted (src/http/api.ts:1366).
Done:
A missing or blank q answers 200 with the same empty shape plus note: one sentence saying q is empty and giving an example and the kinds (kind=all|repos|issues|code).
An unknown kind is named in the same note field instead of being silently read as all.
The MCP search tool returns the same note.
The OpenAPI contract for the route lists note.
Tests for the HTTP route and the MCP tool.
Files: src/http/api.ts, the MCP search tool, src/contract/openapi route file, tests.
Intent: an agent that calls search wrong learns how to call it right from the answer.
Today: GET /api/v1/search?q= answers 200 with empty lists and nothing else, while /api/v1/explore?q=sort:bogus answers a
notenaming what is accepted (src/http/api.ts:1366).Done:
note: one sentence saying q is empty and giving an example and the kinds (kind=all|repos|issues|code).kindis named in the samenotefield instead of being silently read as all.searchtool returns the same note.note.Files: src/http/api.ts, the MCP search tool, src/contract/openapi route file, tests.