feat: support participants in describe (sync spec 0.7.7) - #65
Conversation
Exposes the new optional `participants` field on `client.describe.create` / `client.describe.run` (synced from spec 0.7.7 / cloudglue-api-spec#101). When provided, speaker naming is constrained to that cast — uploaded files (which carry no connector participant metadata) get roster-corrected speaker labels instead of open-vocabulary guesses; connector files (e.g. Grain) populate it automatically. - cloudglue/client/resources/describe.py: add `participants` param to create() and run(); accept dicts or NewDescribeAllOfParticipants and thread into the NewDescribe request. - Regenerated low-level SDK from the spec (+ new NewDescribeAllOfParticipants model) + version bump.
|
Important Review skippedToo many files! This PR contains 275 files, which is 125 over the limit of 150. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (275)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Exposes the new optional
participantsfield onclient.describe.create/client.describe.run, synced from spec 0.7.7 (cloudglue/cloudglue-api-spec#101). Bumps version0.7.13 → 0.7.14and regenerates the low-level SDK (adds theNewDescribeAllOfParticipantsmodel).Why
Describe normally guesses speaker names open-vocabulary. When
participantsis supplied, naming is closed-set: transcript speaker labels only use one of those names (or a genericSpeaker N), never an invented name. Intended for uploaded files, which (unlike data-connector files such as Grain) carry no participant metadata; connector files get it populated automatically.API
Change
cloudglue/client/resources/describe.py— addparticipantstocreate()andrun(); acceptdicts orNewDescribeAllOfParticipantsand thread into theNewDescriberequest.cloudglue/sdk/from the spec (+ newnew_describe_all_of_participants.py) + version bump.Verified against prod (
.venv/bin/python test_py.py, raw upload)client.describe.create(..., participants=[{"name":"Michael Bressler","scope":"external"}]):describe_config.participants: [{"name": "Michael Bressler", "scope": "external"}].Michael Bresslerresolves; the other (un-rostered) guest and anchors fall back toSpeaker 1/2/4— nothing invented.3674389f…), confirming both SDKs send the same canonicalized payload.Note
Low Risk
Backward-compatible optional API field plus generated SDK sync; behavior change only when callers pass
participants.Overview
Adds optional
participantstoclient.describe.createandclient.describe.run, synced from OpenAPI 0.7.7. Callers can pass a list of{"name", "scope"}dicts (or SDK models); the client normalizes them and sends them onNewDescribeso describe jobs can restrict diarized speaker labels to those names or genericSpeaker N, instead of invented names—mainly for uploaded files without connector metadata.The low-level
cloudglue/sdkis regenerated (newNewDescribeAllOfParticipants,participantsonNewDescribe/DescribeDescribeConfig), API doc version strings move 0.7.6 → 0.7.7, and the package version is bumped 0.7.13 → 0.7.14.Reviewed by Cursor Bugbot for commit a811769. Bugbot is set up for automated code reviews on this repo. Configure here.