v3.0.8

agno-agi/agnov3.0.8Sep 8, 2026by kausmeows

AI Summary

This release introduces bounded full-page reading capabilities and new PostgreSQL engine factories with shared connection-pool defaults. It also addresses critical bug fixes regarding SQLite session integrity and enhances validation for public MCP tools.

Key Highlights

  • New bounded full-page read methods (`read_full_page` and `aread_full_page`) with shared fence tracking.
  • New PostgreSQL engine factories (`create_postgres_engine` and `create_async_postgres_engine`) with shared connection-pool defaults.
  • Bug fix for SQLite bulk upserts to prevent session data overwrites by enforcing owner checks.
  • Improvements to Public MCP tool validation to correctly handle lifecycle tools.

New Features

  • Knowledge.read_full_page and aread_full_page for complete page reads with character limits and deadlines.
  • create_postgres_engine and create_async_postgres_engine for PostgreSQL with shared defaults.
  • agno.utils.markdown.advance_code_fence for application transforms to preserve code examples.
  • Magic Hour hosted MCP cookbook for image and video generation.

Full Release Notes

# Changelog

## **New Features**

- **Complete page reads:** `Knowledge.read_full_page` and `aread_full_page` return an entire published page from one bounded SQL read and read-only snapshot. Both support revision pinning, character limits and deadlines. Oversized pages return `None`; 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_engine` and `create_async_postgres_engine` expose Agno's connection-pool and JSON serialization defaults with configurable SQLAlchemy options. Plain `postgres://` and `postgresql://` 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_fence` exposes 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()` in `SqliteDb` / `AsyncSqliteDb` now applies the same owner check as the single-row `upsert_session()` — previously a batch containing another user's `session_id` would 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 unnecessary `lifecycle_tools=False` override. Public exposure of agents, teams or workflows still requires disabling the automatically added lifecycle tools with `lifecycle_tools=False` or `exclude_tags={"lifecycle"}`. (**fix: validate effective public MCP lifecycle tools #10060**)

## What's Changed
* feat: add Magic Hour hosted MCP cookbook by @runshouse in https://github.com/agno-agi/agno/pull/10057
* fix: validate effective public MCP lifecycle tools by @ashpreetbedi in https://github.com/agno-agi/agno/pull/10060
* feat: add PostgreSQL engine factories with shared defaults by @ashpreetbedi in https://github.com/agno-agi/agno/pull/10062
* feat: add bounded full-page reads and shared fence tracking by @ashpreetbedi in https://github.com/agno-agi/agno/pull/10063
* fix: stop double-encoding session JSON fields in the SQLite adapters by @ashpreetbedi in https://github.com/agno-agi/agno/pull/9797
* [fix] agno 3.x: apply the session owner check to SqliteDb bulk upserts by @basnijholt in https://github.com/agno-agi/agno/pull/9937
* Release: v3.0.8 by @ashpreetbedi in https://github.com/agno-agi/agno/pull/10066

## New Contributors
* @runshouse made their first contribution in https://github.com/agno-agi/agno/pull/10057

**Full Changelog**: https://github.com/agno-agi/agno/compare/v3.0.7...v3.0.8