Files
agno/libs
KaustubhandSannya Singal ab1d6007f0 feat: Release v3.1.0 (#10702)
## New Features

- **User Management / Authorization (RBAC):** a
new `agno.os.authz` package adds role-based access control to AgentOS —
a role store, scope policy, audit log, user directory and an admin
router, with pluggable authorization engines (a native engine plus a
fine-grained `fga` engine). Scopes and auth middleware were extended to
enforce it.
- **AgentOS Filesystem:** a new `agno.fs` filesystem (`DbFileSystem`)
with dedicated `/filesystem` routes (list/read/manage files) backed by
an `agno_fs` table.
- **MCP config / auth updates:** refreshed MCP server config and
built-in MCP auth handling.
- **AIMLAPITools:** new toolkit for image, video, speech and
transcription via the AI/ML API.

## ⚠️ Breaking Changes

- Filesystem table re-key (`agno_fs`): v3.1 keys the filesystem table
by `(namespace, user_id, path)`, where `user_id` is the user partition
(`""` for the shared/no-user partition). A table created by an earlier
release is refused with `SchemaOutdatedError` until upgraded — the
re-key never runs automatically. Upgrade once, with the application
stopped, using the script for your database (#10530):

This affects you only if you use `DbFileSystem`. The table is managed
by `DbFileSystem` (its own schema, buildable from a bare `db_url`), so
it is deliberately not part of `MigrationManager`.
    
```python
python libs/agno/migrations/migrate_filesystem_postgres.py   # PostgreSQL
python libs/agno/migrations/migrate_filesystem_sqlite.py     # SQLite
 ```
    

## Bug Fixes

- **HITL:** continuing a paused run with `background` + `stream` no longer duplicates the paused run in its own history.
- **OpenAIResponses:** recover requests when the chained (previous) response is gone.
- **DB:** an async delete that *failed* is no longer reported as a run that *wasn't there* — the two cases are distinguished.
- **Structured output:** don't crash when a JSON fragment provides a scalar before a list.
- **Python tool results:** distinguish `None`valued results from missing variables.
- **Chunking:** reject an overlap that is not smaller than the chunk size.
- **CSV readers:** handle CR (`\r`) record endings.
- **CsvTools:** honor explicit zero row limits.
- **Shell / workspace command tools:** honor an explicit zero `tail`.
- **GeminiTools:** store raw video bytes in the `generate_video` artifact.
- **GithubTools:** build branch links from the repository web URL (#10509); `get_file_content` preserves valid non-ASCII UTF-8 text
- **LocalFileSystemTools:** read and write local files as UTF-8.
- **PubMed:** preserve metadata for short abstracts.
- **Claude citations:** preserve nullable document titles.

Co-authored-by: Sannya Singal <[email protected]>
2026-10-01 14:58:11 +05:30
..
2026-10-01 14:58:11 +05:30