feat(search): serve glean search from the platform API by default#134
Conversation
The flag path calls POST /api/search and falls back to the classic API (with a one-time warning) when the tenant gate is off; GLEAN_LEGACY_APIS=1 forces the classic path. Platform responses are emitted as-is (snake_case, never cleansed); CleanseSearchResponse and --raw now apply only to legacy responses. Explicitly-set flags without a platform equivalent produce a stderr note instead of silently doing nothing. --json payloads are platform-shaped and never auto-fall-back: the body is coupled to the endpoint, so gate-closed produces an actionable error naming GLEAN_LEGACY_APIS=1 (under which the payload is parsed as the classic shape, exactly as before). MockTransport gains per-path Routes so tests can drive the platform 404 → legacy 200 fallback sequence. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
| } | ||
| resp, err := search.RunSearchSDK(cmd.Context(), opts, sdk) | ||
| if !platform.Legacy() { | ||
| if ignored := platformIgnoredFlags(cmd); len(ignored) > 0 { |
There was a problem hiding this comment.
Issue: The note about legacy-only flags being ignored by platform search is printed before platform.Run executes, so it is emitted whenever GLEAN_LEGACY_APIS is not set, even if platform.Run falls back to the legacy API and those flags are actually honored.
Suggested fix: Move the platformIgnoredFlags(cmd) check to after the platform.Run call and only emit the "flags ignored by platform search" note when viaLegacy is false (i.e., the platform API was used and legacy-only flags truly had no effect).
🔧 Tag @ glean-for-engineering to fix or click here to fix in Glean
💬 Help us improve! Was this comment helpful? React with 👍 or 👎

glean search is now platform-first:
Verified with the binary: default dry-run emits the platform snake_case request; GLEAN_LEGACY_APIS=1 emits the classic camelCase request.
Part 4/9.
🤖 Generated with Claude Code