Quick and Claude Opus 4.8
dadd6f4769
feat(search): surface search diagnostics on catalog responses
...
Add per-query search observability to /api/v1/catalog. The internal
CatalogSearchResult now carries Mode + SemanticUsed alongside the existing
Provider + FallbackReason; all four are plumbed through CatalogResult (which
previously dropped them in resolveDirectSearchSource) and exposed as an
additive, omitempty search_diagnostics object on the catalog response.
Two correctness points:
- For Meilisearch, Mode/SemanticUsed are derived from the POST-downgrade
request (baseSearchReq.Hybrid != nil) at the end of searchMeilisearch, so a
hybrid->keyword self-downgrade reports mode="keyword", semantic_used=false.
- search_diagnostics is emitted iff a provider search actually ran
(result.Provider != ""), which naturally omits browse, preview,
non-relevance-sort q=, and group=work paths (none set Provider).
API additive-only: existing response fields keep declaration order and stay
byte-stable; only the new omitempty field is added.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-25 23:32:30 -04:00
..
2026-06-10 14:58:54 -04:00
2026-05-22 23:26:56 -04:00
2026-05-29 12:16:18 -04:00
2026-05-29 12:16:18 -04:00
2026-06-17 09:51:43 -04:00
2026-06-17 13:48:57 -04:00
2026-06-17 13:48:57 -04:00
2026-06-17 13:48:57 -04:00
2026-06-09 19:28:53 -04:00
2026-06-08 21:05:33 -04:00
2026-06-16 20:13:10 -04:00
2026-06-05 16:33:40 -04:00
2026-06-16 20:13:10 -04:00
2026-05-29 13:50:48 -04:00
2026-05-29 13:50:48 -04:00
2026-05-29 13:49:34 -04:00
2026-05-29 13:49:34 -04:00
2026-06-24 11:03:38 -04:00
2026-06-24 11:03:38 -04:00
2026-05-22 23:26:56 -04:00
2026-06-25 23:32:30 -04:00
2026-06-25 23:32:30 -04:00
2026-05-22 23:26:56 -04:00
2026-05-22 23:26:56 -04:00
2026-05-22 23:26:56 -04:00
2026-06-16 18:30:16 -04:00
2026-06-09 18:01:36 -04:00
2026-06-09 18:01:36 -04:00
2026-06-17 09:51:43 -04:00
2026-06-10 08:18:35 -04:00
2026-06-16 18:17:08 -04:00
2026-06-16 20:13:10 -04:00
2026-05-23 23:48:25 -04:00
2026-06-25 20:46:08 -04:00
2026-06-08 09:33:55 -04:00
2026-06-16 20:13:10 -04:00
2026-06-24 11:03:38 -04:00
2026-06-24 11:03:38 -04:00
2026-06-12 10:32:21 -04:00
2026-06-25 16:20:14 -04:00
2026-05-27 13:59:29 -04:00
2026-06-09 19:44:40 -04:00
2026-05-29 11:53:32 -04:00
2026-06-18 10:07:58 -04:00
2026-05-27 10:11:58 -04:00
2026-05-22 23:26:56 -04:00
2026-06-18 10:07:58 -04:00
2026-05-22 23:26:56 -04:00
2026-06-16 20:13:10 -04:00
2026-06-25 20:46:08 -04:00
2026-06-25 21:31:20 -04:00
2026-05-22 23:26:56 -04:00
2026-05-22 23:26:56 -04:00
2026-06-15 15:34:13 -04:00
2026-06-15 15:34:13 -04:00
2026-05-28 17:11:11 -04:00
2026-06-25 20:46:08 -04:00
2026-06-25 21:31:20 -04:00
2026-05-22 23:26:56 -04:00
2026-05-22 23:26:56 -04:00
2026-06-18 10:20:48 -04:00
2026-05-22 23:26:56 -04:00
2026-06-24 11:03:38 -04:00
2026-06-16 18:32:52 -04:00
2026-06-25 17:26:19 -04:00
2026-06-18 10:07:58 -04:00
2026-06-10 14:58:54 -04:00
2026-06-18 10:07:58 -04:00
2026-06-16 20:13:10 -04:00
2026-06-16 20:13:10 -04:00
2026-06-16 20:13:10 -04:00
2026-05-27 10:11:58 -04:00
2026-06-09 19:44:40 -04:00
2026-06-09 19:44:40 -04:00
2026-06-25 20:46:08 -04:00
2026-06-25 20:46:08 -04:00
2026-06-25 20:46:08 -04:00
2026-05-24 22:27:18 -04:00
2026-06-16 20:13:10 -04:00
2026-06-24 11:03:38 -04:00
2026-06-24 11:03:38 -04:00
2026-06-16 20:13:10 -04:00
2026-06-16 20:13:10 -04:00
2026-05-27 10:11:58 -04:00
2026-06-16 20:13:10 -04:00
2026-05-22 23:26:56 -04:00
2026-05-22 23:26:56 -04:00
2026-06-25 21:31:20 -04:00
2026-06-25 21:31:20 -04:00
2026-06-25 22:43:23 -04:00
2026-06-25 22:43:23 -04:00
2026-06-25 20:46:08 -04:00
2026-06-25 23:32:30 -04:00
2026-06-25 23:17:47 -04:00
2026-06-25 23:32:30 -04:00
2026-06-15 09:34:08 -04:00
2026-06-15 09:34:08 -04:00
2026-06-25 23:17:47 -04:00
2026-06-18 10:07:58 -04:00
2026-06-25 23:06:51 -04:00
2026-06-25 23:06:51 -04:00
2026-06-11 17:16:27 -04:00
2026-05-27 14:27:14 -04:00
2026-05-22 23:26:56 -04:00
2026-06-18 10:07:58 -04:00
2026-06-18 19:17:22 -04:00
2026-06-05 16:33:40 -04:00