Skip to content

feat: player link previews, entities collection search, and deep search auto scope (sync spec v0.7.16) - #74

Merged
kdr merged 3 commits into
mainfrom
kdr-es
Aug 12, 2026
Merged

feat: player link previews, entities collection search, and deep search auto scope (sync spec v0.7.16)#74
kdr merged 3 commits into
mainfrom
kdr-es

Conversation

@kdr

@kdr kdr commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Syncs the SDK to spec v0.7.16 (cloudglue/cloudglue-api-spec#109) and bumps the package to 0.7.21. Two themes:

  1. Entities and metadata collections become first-class search sources — direct search, deep-search KBs, and Response API KBs all accept them, deep search gains an auto scope mode (response scope is now nullable — None = the planner chose scopes per search plan), and CollectionFile gains searchable_status.
  2. Shares gain the player link-preview level and instant-clip windowslink_preview widens to none | full | player ('player' lets a private share play inline when unfurled by the Cloudglue Slack app), and GET /share/{id} accepts clip_start/clip_end so the returned stream_url plays only that window.

Generated (cloudglue/sdk)

  • CollectionFile.searchable_status (pending/processing/completed/failed)
  • DeepSearch.scope / DeepSearchListItem.scope nullable (None = auto)
  • Broadened collection-type acceptance + doc_lexical over entity docs (doc-level)
  • link_preview enum widened to 'none' | 'full' | 'player' on ShareableAsset, CreateShareableAssetRequest, UpdateShareableAssetRequest (validators + descriptions)
  • ShareApi.get_shareable_asset gains clip_start / clip_end query params

Wrapper (cloudglue/client)

  • Share.get now plumbs clip_start / clip_end through to the generated client (new query params don't flow automatically)
  • Share.create / Share.update docstrings document the 'player' level, its anyone-in-the-channel playback caveat, and downgrade revocation
  • Deep search: docs only — deep_search.create already defaulted scope=None so auto mode works as-is; docstrings document auto vs explicit scope semantics (metadata + file-level entities → file, segment-level entities → segment) and the accepted collection types

Test plan

  • Package imports clean; player accepted by all three shareable-asset models, bogus enum values still rejected; Share.get signature carries the clip params
  • Live battery against production, entities half — 7/7 on 2026-08-04, re-run 7/7 on 2026-08-12 at branch tip 69c9c44 (evidence in ~/Downloads/cloudglue-v0.7.16-sdk-test-results.md): searchable_status enum values on entities + media-descriptions listings; segment search over an entities collection returns results; file-scope over a segment-level entities collection 400s; auto deep search over a mixed KB completes with scope=None and results mixing segment+file types; explicit scope still completes and is echoed; nimbus-002-preview accepts an entities-collection KB while nimbus-001 400s. Created response deleted at cleanup.
  • Live battery against production, share half — 9/9 (evidence in ~/Downloads/cloudglue-v0.7.16-share-player-clip-test-results.md): private share created with link_preview='player' and round-tripped through get/list response validation; update lifecycle player → full → player echoed; clip window [2, 8] verified via the Mux playback-token JWT claims (asset_start_time=2, asset_end_time=8) while the full-asset read carries no clip claims; clip_start without clip_end and clip_end <= clip_start both 400; created share deleted at cleanup.

Release note

Old SDK versions (≤ 0.7.20) reject 'player' in response validation, so any customer who opts a share into "Playable in Slack" breaks their own get/list calls until they upgrade — release this promptly now that the backend accepts 'player' in production.

…ponse KBs (sync spec v0.7.16)

Regenerated from spec v0.7.16 (cloudglue/cloudglue-api-spec#108) and
bumped to 0.7.21.

Generated (cloudglue/sdk):
- CollectionFile gains searchable_status
  (pending/processing/completed/failed)
- DeepSearch/DeepSearchListItem scope is now nullable (None = auto:
  scope was omitted and the planner chose scopes per search plan)
- SearchRequest.collections, deep-search KBs, and response KBs accept
  metadata and entities collections; doc_lexical covers entity docs

Wrapper (cloudglue/client):
- Docs only — deep_search.create already defaulted scope=None, so auto
  mode works as-is; docstrings document auto vs explicit semantics, the
  per-collection-type scope requirements, and the accepted collection
  types (deep_search.py, search.py). Everything else flows through the
  regenerated models.

Verified against PRODUCTION (7/7): searchable_status on entities and
media-descriptions listings; segment search over an entities collection;
file-scope over a segment-level entities collection 400s; auto deep
search over a mixed KB completes with scope=None and results mixing
segment+file types; explicit scope still echoed; nimbus-002-preview
accepts an entities-collection KB while nimbus-001 400s.
@kdr
kdr requested a review from amyxst August 5, 2026 05:28
@kdr kdr changed the title feat: entity and metadata collections in search, deep search, and response KBs (sync spec v0.7.16) feat: player link previews, entities collection search, and deep search auto scope (sync spec v0.7.16) Aug 12, 2026
@kdr
kdr merged commit c33ea46 into main Aug 12, 2026
1 check passed
@kdr
kdr deleted the kdr-es branch August 12, 2026 04:16
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.

2 participants