v3.0.8

microsoft/TinyTroupev3.0.8Sep 8, 2026by kausmeows

Upgrading?

AI Summary

Adds bounded full-page reading capabilities, PostgreSQL engine factories, and fixes session data integrity issues.

Key Highlights

  • Added bounded full-page reads (`Knowledge.read_full_page`)
  • Added PostgreSQL engine factories with shared defaults
  • Added shared Markdown fence tracking
  • Fixed session data integrity in SQLite bulk upserts
  • Fixed public MCP lifecycle tools validation

New Features

  • Magic Hour hosted MCP cookbook example
  • Bounded full-page reads and shared fence tracking

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

Related Repositories