Skip to content

feat(search): serve glean search from the platform API by default - #134

Merged
steve-calvert-glean merged 4 commits into
mainfrom
sc/platform-04-search-cmd-migration
Jul 27, 2026
Merged

feat(search): serve glean search from the platform API by default#134
steve-calvert-glean merged 4 commits into
mainfrom
sc/platform-04-search-cmd-migration

Conversation

@steve-calvert-glean

Copy link
Copy Markdown
Collaborator

glean search is now platform-first:

  • Flag path calls POST /api/search; on the tenant-gate hidden 404 it warns once and retries the classic endpoint. GLEAN_LEGACY_APIS=1 forces classic.
  • 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); 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 drive the platform-404 → legacy-200 fallback sequence.

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

Comment thread cmd/search.go
}
resp, err := search.RunSearchSDK(cmd.Context(), opts, sdk)
if !platform.Legacy() {
if ignored := platformIgnoredFlags(cmd); len(ignored) > 0 {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 👎

steve-calvert-glean and others added 3 commits July 27, 2026 10:03
Brings in the platform API namespaces (s.Search, s.Agents on /api/* routes)
and the WithIncludeExperimental SDK option needed for the platform-first
migration. Classic s.Client.* surface unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
BuildPlatformSearchRequest maps CLI options onto the narrower platform
shape (query, page_size, cursor, datasources via the dedicated field,
remaining facet filters as generic filters). RunPlatformSearch calls
POST /api/search and honors --timeout via context deadline since the
platform request body has no timeoutMillis. Not yet wired into cmd/search.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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>
@steve-calvert-glean
steve-calvert-glean force-pushed the sc/platform-03-search-platform-lib branch from 20fe51d to 228208b Compare July 27, 2026 17:05
@steve-calvert-glean
steve-calvert-glean force-pushed the sc/platform-04-search-cmd-migration branch from 9e1e0a1 to 13fe792 Compare July 27, 2026 17:05
Base automatically changed from sc/platform-03-search-platform-lib to main July 27, 2026 17:08
@steve-calvert-glean
steve-calvert-glean merged commit bf4c747 into main Jul 27, 2026
8 checks passed
@steve-calvert-glean
steve-calvert-glean deleted the sc/platform-04-search-cmd-migration branch July 27, 2026 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant