fix(search): harden live search accuracy, provider queries, and request cost - #8226
Conversation
…st cost - GitHub: batch code search by bytes under its 1,000-byte query limit, send date bounds as one updated:start..end range, keep qualifiers outside grouped text, and exclude dateless code from dated searches - Calendar: keep one verified copy of a meeting shared across calendars and order dated agendas by start - Clean Gmail, Calendar, and Confluence text; report Google quota 403s as rate limits - Report partial only for degraded coverage; drop cursors that would skip merged-out results - Share one account session between search and read; filter before verifying, verify in parallel, pass GitLab evidence, and reuse listed accounts - Pin DNS on the request as well as the agent (Bun ignores agent lookups), and reuse pinned keep-alive connections with compressed responses - Route the Search MCP chat tool to the assistant chat endpoint
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
There was a problem hiding this comment.
Review completed against the latest diff
Tip: instead of fixing issues one by one fix them all with cubic
Re-trigger cubic
…d MCP chat - Keep invisible-character cleanup linear, table rows and definition lists readable, meaningful joiners intact, and deeply nested markup readable - Strip interactive Chat tags from MCP chat answers with the helper the Slack assistant shares - Report empty continuable pages and short dated listings as partial; dedupe after date filtering - Merge GitHub batches within each kind, give repository search the larger query budget, keep the 1,000-result hint, and skip code search when the query leaves no room for a repository - Keep memoized metadata failures for the request, re-read metadata after a document read, reload the Coda grant on every provider load, and request only gzip or brotli
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 38 files
Requires human review: Auto-approval blocked because this review re-detected 3 unresolved issues already reported by Cubic.
Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.
Fix all with cubic | Re-trigger cubic
…ies, and answer tags - Report any page with more matches no cursor can reach as partial, and an empty continuable page as partial - Keep live reads on the 8,000-character page budget indexed reads use - Leave boolean GitHub queries as written and explain the 256-character search text limit - Strip only closed interactive tags from complete MCP answers so prose after an unclosed opener survives - Skip the wire-size Content-Length precheck for encoded bodies; the decoded stream stays capped - Build the meaningful-mark pattern without a joiner inside a character class
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 39 files
Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 39 files
Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.
Fix all with cubic | Re-trigger cubic
…ed prose - Remove interactive cards by their JSON payload so closing markers inside strings cannot end a card and tag-shaped prose stays - Keep the Slack stream's existing tag withholding unchanged - Require valid element syntax in looksLikeHtml so an address like <a@acme.com> stays text - Keep verified results when verification is rate-limited and name the rate limit
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
No issues found across 39 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.
Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.
Re-trigger cubic
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
No issues found across 39 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.
Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.
Re-trigger cubic
Summary
updated:start..endrange (twoupdated:qualifiers are ORed), keep qualifiers outside the grouped text (they returned 0/422 inside parentheses), and leave dateless code out of dated searcheshtml-to-text; report Google quota 403s asrate_limitedinstead of "reconnect"partialnow means degraded coverage only; more matches stay onnextCursor, and an account whose results were cut from the merge drops its cursor so continuing can't skip themlookup; reuse pinned keep-alive connections per search (~85 ms vs ~430 ms per provider call) with compressed responses, still capped at 4 MB decodedlimit; Atlassian sites run in parallel; Gmail reads only the metadata fields it uses; the Drive service verification budget caps the pagechattool to the assistant chat endpoint (the worker's execute route only accepts the block payload)Type of Change
Testing
Type-check, Biome, and all 49 audits pass. Ran 8,719 tests across search, knowledge, security, connectors, and MCP. New tests fail against the previous code. Verified GitHub query limits and date ranges, Google/Atlassian response shapes, and Bun connection pinning against live provider APIs.
Checklist