Skip to content

feat(regen): add usage redaction, Flux volume controls, and voices - #828

Merged
GregHolmes merged 9 commits into
mainfrom
gh/sdk-gen-2026-11-12
Nov 12, 2026
Merged

GregHolmes merged 9 commits into
mainfrom
gh/sdk-gen-2026-11-12

Conversation

@GregHolmes

@GregHolmes GregHolmes commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Regenerated the SDK with fernapi/fern-python-sdk 5.39.3.
  • Added Listen V1/V2 redact_usage controls, Speak V2 normalize_volume, and an expanded typed Flux voice catalog.
  • Reapplied all existing compatibility, transport, credential-redaction, query-encoding, source-version, package-export, and wire-coverage patches.
  • Preserved new Fern exports and Listen V2 Configure Success redact_usage while restoring dict-style Listen V2 response access.
  • Added sync/async regression coverage for public and raw Listen V1/V2 usage-redaction, Listen V2 Configure/Configure Success frames, and public/raw Speak V2 volume normalization.
  • Restored the SDK version metadata to 7.18.0; Release Please will create the next feature-release version.

What This Enables

  • Pass redact_usage when opening Listen V1 or V2 connections to control usage redaction, then update an active Flux session with connection.send_configure(ListenV2Configure(redact_usage=True)). The server reports the active setting in ListenV2ConfigureSuccess.redact_usage.
  • Pass normalize_volume=True or False to Flux batch synthesis with client.speak.v2.audio.generate(...), or use the string form ("true" / "false") on client.speak.v2.connect(...). Volume normalization is enabled by default; opting out still applies peak limiting.
  • Use the expanded typed DeepgramModel catalog for multilingual Flux voices such as flux-ambreen-ur, including when configuring the Deepgram Agent TTS provider.
  • All new controls are available in synchronous, asynchronous, and with_raw_response() clients.

Validation

  • Live smoke test passed against Deepgram: Listen V1/V2 redact_usage, Listen V2 Configure acknowledgements, and Speak V2 normalize_volume with flux-ambreen-ur.
  • poetry run mypy src/ tests/typecheck
  • Source and regenerated tests pass Ruff; full poetry run ruff check . retains 57 existing violations in examples, manual tests, and tests/custom/test_transport.py.
  • 574 focused unit and regression tests passed in a clean Python 3.13 container.
  • poetry run pytest -rP .: 1,102 passed, 4 skipped, 1 expected failure. The remaining 53 WireMock failures are all Connection refused because Docker Compose reports the dynamic WireMock mapping as localhost:0.

@github-actions

github-actions Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Branch Rate Complexity Health
src.deepgram 97% 94% 0 ✔
src.deepgram.agent 100% 100% 0 ✔
src.deepgram.agent.v1 98% 100% 0 ✔
src.deepgram.agent.v1.settings 100% 100% 0 ✔
src.deepgram.agent.v1.settings.think 100% 100% 0 ✔
src.deepgram.agent.v1.settings.think.models 97% 100% 0 ✔
src.deepgram.auth 100% 100% 0 ✔
src.deepgram.auth.v1 100% 100% 0 ✔
src.deepgram.auth.v1.tokens 97% 100% 0 ✔
src.deepgram.core 89% 84% 0 ➖
src.deepgram.errors 100% 100% 0 ✔
src.deepgram.helpers 98% 92% 0 ✔
src.deepgram.listen 100% 100% 0 ✔
src.deepgram.listen.v1 98% 93% 0 ✔
src.deepgram.listen.v1.media 97% 100% 0 ✔
src.deepgram.listen.v2 98% 93% 0 ✔
src.deepgram.manage 100% 100% 0 ✔
src.deepgram.manage.v1 100% 100% 0 ✔
src.deepgram.manage.v1.models 96% 100% 0 ✔
src.deepgram.manage.v1.projects 97% 100% 0 ✔
src.deepgram.manage.v1.projects.billing 100% 100% 0 ✔
src.deepgram.manage.v1.projects.billing.balances 96% 100% 0 ✔
src.deepgram.manage.v1.projects.billing.breakdown 97% 100% 0 ✔
src.deepgram.manage.v1.projects.billing.fields 97% 100% 0 ✔
src.deepgram.manage.v1.projects.billing.purchases 97% 100% 0 ✔
src.deepgram.manage.v1.projects.keys 96% 100% 0 ✔
src.deepgram.manage.v1.projects.members 97% 100% 0 ✔
src.deepgram.manage.v1.projects.members.invites 96% 100% 0 ✔
src.deepgram.manage.v1.projects.members.scopes 96% 100% 0 ✔
src.deepgram.manage.v1.projects.models 96% 100% 0 ✔
src.deepgram.manage.v1.projects.usage 98% 100% 0 ✔
src.deepgram.manage.v1.projects.usage.breakdown 97% 100% 0 ✔
src.deepgram.manage.v1.projects.usage.fields 97% 100% 0 ✔
src.deepgram.read 100% 100% 0 ✔
src.deepgram.read.v1 100% 100% 0 ✔
src.deepgram.read.v1.text 98% 100% 0 ✔
src.deepgram.self_hosted 100% 100% 0 ✔
src.deepgram.self_hosted.v1 100% 100% 0 ✔
src.deepgram.self_hosted.v1.distribution_credentials 96% 100% 0 ✔
src.deepgram.speak 100% 100% 0 ✔
src.deepgram.speak.v1 98% 97% 0 ✔
src.deepgram.speak.v1.audio 91% 80% 0 ✔
src.deepgram.speak.v2 98% 93% 0 ✔
src.deepgram.speak.v2.audio 100% 100% 0 ✔
src.deepgram.voice_agent 100% 100% 0 ✔
src.deepgram.voice_agent.configurations 95% 100% 0 ✔
src.deepgram.voice_agent.variables 95% 100% 0 ✔
Summary 96% (6619 / 6916) 92% (1457 / 1578) 0 ✔

Scope: hand-maintained SDK logic. Fern-generated data models (types/, requests/), package __init__.py files, version.py, and the unused core/http_sse/ scaffolding are excluded — see .coveragerc. Unscoped whole-package coverage is ~70%.

@GregHolmes GregHolmes changed the title chore: SDK regeneration 2026-11-12 feat(regen): add usage redaction and Flux TTS controls Nov 12, 2026
@GregHolmes GregHolmes changed the title feat(regen): add usage redaction and Flux TTS controls feat(regen): add usage redaction, Flux volume controls, and voices Nov 12, 2026

@dg-coreylweathers dg-coreylweathers left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

What this PR does: This adds three new opt-in features to the Python SDK: a setting called redact_usage that keeps certain transcript keywords out of Deepgram's internal usage records, a setting called normalize_volume that controls loudness on text-to-speech audio, and a large batch of new voices across 20+ languages for the Flux text-to-speech engine.

What I checked:

  • Is anything here a breaking change for existing users? No — everything added is optional and defaults to off, so code that worked before this PR keeps working exactly the same way.
  • Did the SDK's existing hand-patched compatibility fixes survive this regeneration? Yes, including one that had accidentally been dropped once before in an earlier regeneration — I checked it specifically and it's still there.
  • Do these new settings actually work against Deepgram's live servers, not just in theory? Yes. I connected directly to the production server and confirmed redact_usage behaves exactly as documented: it starts off, can be turned on mid-conversation, and once on it can't be turned back off for that session. I also confirmed one of the new voices (flux-ambreen-ur) genuinely exists and produces real audio on production today.
  • Does it pass our tests? Yes — 1175 tests passed with nothing new broken. The PR's own notes mentioned some test failures caused by a local networking quirk; those didn't show up at all once I ran the tests with the correct setup, so that's not a real gap.

What to fix / what still needs you: Nothing blocking. One small cleanup: the PR's description shows an example using the text "true" in quotes for the redact_usage setting, but it's actually a true/false value, not text — it happens to work by accident today, but writing it as a plain true (no quotes) would be clearer for anyone copying the example.

@GregHolmes
GregHolmes merged commit 0487431 into main Nov 12, 2026
12 checks passed
@GregHolmes
GregHolmes deleted the gh/sdk-gen-2026-11-12 branch November 12, 2026 16:18
GregHolmes added a commit that referenced this pull request Nov 13, 2026
🤖 I have created a release *beep* *boop*
---

##
[7.19.0](v7.18.0...v7.19.0)
(2026-11-12)

### Features

* **Listen:** Add the optional `redact_usage` control to Listen V1 and
V2 clients. Active Flux sessions can update it through
`ListenV2Configure`, and `ListenV2ConfigureSuccess` reports the active
setting.
([#828](#828))
([0487431](0487431))
* **Flux TTS:** Add the `normalize_volume` control for batch and
WebSocket synthesis. Expand the typed Flux voice catalog with new
multilingual voices, including support for Deepgram Agent TTS providers.
([#828](#828))
([0487431](0487431))

## Highlights

- Control usage redaction for Listen V1 and V2 connections; Flux users
can update the setting during an active session and inspect the
server-confirmed value.
- Control Flux speech-volume normalization for batch and streaming
synthesis.
- Select from the expanded typed catalog of multilingual Flux voices,
including in Deepgram Agent TTS configuration.

---
This PR was prepared for the Deepgram Python SDK release workflow.
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