v2.0.20
What's Changed
- fix(types/file): use removesuffix instead of rstrip on upload URL str.rstrip() takes a set of chars, not a suffix, so it would chew arbitrary trailing chars from the URL whenever they overlapped with the filename (e.g. .../foo_111.jpg with name foo_111.jpg stripped the 'm' from .com). Use str.removesuffix() (stdlib, 3.9+; repo pins >=3.11) for actual suffix semantics. (ce05236)
- fix(platform/types): make UploadFileResponse.id optional POST /files returns a temporary upload without an id field, which made UploadFileResponse.model_validate() raise ValidationError in File.persist(). The error was being silently swallowed upstream (e.g. build_prompt_from_messages), causing messages to be saved with caption only and no attached file URL. (7cbb54e)
- chore(models): rename gemini-3.1-flash-lite-preview to gemini-3.1-flash-lite (4ce2818)
- refactor(integrations): drop client-side credential cache (9fc2bf9)
- chore: remove PlatformSubject.version_id and TIMBAL_VERSION_ID (e4324dc)
Full Changelog: v2.0.19...v2.0.20