Changelog
New Features
- Complete page reads:
Knowledge.read_full_pageandaread_full_pagereturn an entire published page from one bounded SQL read and read-only snapshot. Both support revision pinning, character limits and deadlines. Oversized pages returnNone; missing or changed pages retain typed errors. Calls share the existing eight-slot page-read worker pool. (feat: add bounded full-page reads and shared fence tracking #10063) - Shared PostgreSQL engine factories:
create_postgres_engineandcreate_async_postgres_engineexpose Agno's connection-pool and JSON serialization defaults with configurable SQLAlchemy options. Plainpostgres://andpostgresql://URLs select Psycopg 3 in these new factories; explicit drivers and TLS settings are preserved. Existing database constructor driver selection is unchanged. (feat: add PostgreSQL engine factories with shared defaults #10062)
Improvements
- Shared Markdown fence tracking:
agno.utils.markdown.advance_code_fenceexposes the page chunker's fence rules for application transforms that need to preserve code examples. A full-page cookbook demonstrates reads and prose normalization. (feat: add bounded full-page reads and shared fence tracking #10063) - Magic Hour hosted MCP cookbook: an example for image and video generation covers bearer authentication, long render timeouts, project ID reuse and output URL handling. (feat: add Magic Hour hosted MCP cookbook #10057)
Bug Fixes
- Session data integrity (SQLite): bulk
upsert_sessions()inSqliteDb/AsyncSqliteDbnow applies the same owner check as the single-rowupsert_session()— previously a batch containing another user'ssession_idwould reassign the row and overwrite its data. Rows the predicate refuses are omitted from the returned list, matching Postgres and the single-row path. (#9937) - Public MCP validates the tools actually exposed. Custom-function configurations such as
MCPConfig(tools=[custom_function], default_tools=False, stateless=True)now work without an unnecessarylifecycle_tools=Falseoverride. Public exposure of agents, teams or workflows still requires disabling the automatically added lifecycle tools withlifecycle_tools=Falseorexclude_tags={"lifecycle"}. (fix: validate effective public MCP lifecycle tools #10060)
What's Changed
- feat: add Magic Hour hosted MCP cookbook by @runshouse in #10057
- fix: validate effective public MCP lifecycle tools by @ashpreetbedi in #10060
- feat: add PostgreSQL engine factories with shared defaults by @ashpreetbedi in #10062
- feat: add bounded full-page reads and shared fence tracking by @ashpreetbedi in #10063
- fix: stop double-encoding session JSON fields in the SQLite adapters by @ashpreetbedi in #9797
- [fix] agno 3.x: apply the session owner check to SqliteDb bulk upserts by @basnijholt in #9937
- Release: v3.0.8 by @ashpreetbedi in #10066
New Contributors
- @runshouse made their first contribution in #10057
Full Changelog: v3.0.7...v3.0.8