googleapis / googleapis/python-genai
v2.19.0 release notes advertise AudioTranscriptionConfig.mode, but the wheel rejects VERBATIM/SMART
- Dominant language
- Python
- Stars
- 4k
- Forks
- 1k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 40
Description
### Description
The v2.19.0 release notes advertise a new `mode` enum (`VERBATIM`, `SMART`) on `AudioTranscriptionConfig` and `TranscriptionConfig`:
https://github.com/googleapis/python-genai/releases/tag/v2.19.0
However, the published `google-genai==2.19.0` wheel does not contain `AudioTranscriptionConfigMode` or an `AudioTranscriptionConfig.mode` field. Passing the advertised field is rejected by Pydantic before a Live API connection can be established.
The source history also appears inconsistent:
- The field was added in https://github.com/googleapis/python-genai/commit/e8cd7d001438da2b580c0d65cc429111f1c38442
- It was removed before the release in https://github.com/googleapis/python-genai/commit/fedd121b35dfdb59aa0d808b6da358d194912a2c
- The release notes still list the addition, and the current `main` branch still lacks the field.
### Reproduction
```python
from google.genai import types
print("mode" in types.AudioTranscriptionConfig.model_fields)
types.AudioTranscriptionConfig(mode="SMART")
```
Output with the published v2.19.0 wheel:
```text
False
pydantic_core._pydantic_core.ValidationError: 1 validation error for AudioTranscriptionConfig
mode
Extra inputs are not permitted [type=extra_forbidden, input_value='SMART', input_type=str]
```
This also prevents downstream consumers that use the SDK types, including ADK's public Live configuration path, from passing the advertised option.
### Wire-level cross-check
I also tested the Gemini Developer API v1beta Live WebSocket setup directly with `gemini-3.1-flash-live-preview`, bypassing the SDK model validation:
| `inputAudioTranscription` | Server result |
| --- | --- |
| `{}` | `setupComplete` |
| `{"mode":"VERBATIM"}` | `setupComplete` |
| `{"mode":"SMART"}` | `setupComplete` |
| `{"mode":"DEFINITELY_INVALID"}` | WebSocket close `1007 Invalid value at 'setup.input_audio_transcription.mode'` |
This suggests that the backend schema recognizes the two enum values; they are not merely ignored as unknown fields. This report is only claiming setup/schema acceptance, not a particular transcription-quality difference between the modes.
### Expected behavior / questions
1. Was the removal before v2.19.0 intentional?
2. If the feature is supported, could `AudioTranscriptionConfig.mode` and its enum be restored in the published SDK types?
3. If it is intentionally unavailable, could the v2.19.0 release notes/changelog be corrected and the availability documented?
Either outcome would remove the current contradiction between the release notes, distributed wheel, and Live API wire schema.
### Environment
- `google-genai==2.19.0` (latest published version at time of report)
- Python 3.14.5
- macOS 26.5.2, arm64
- Live model used for the wire cross-check: `gemini-3.1-flash-live-preview`
- Developer API version: `v1beta`
Contributor guide
Assessment
This issue has not been assessed yet.