v3.1.1

novuhq/novuv3.1.1Oct 2, 2026by kausmeows

Upgrading?

AI Summary

This release focuses on the Knowledge base module, adding live progress tracking and cancellation for page synchronization. It also improves error reporting for failed page syncs and fixes issues with large Mintlify-style sites.

Key Highlights

  • Live progress & cancellation for page sync operations
  • Page sync reports now name failed pages and their causes
  • Retry transient page-fetch failures with backoff
  • Complete page sync for Mintlify-style sites (non-page links, nested indexes)

New Features

  • Live progress & cancellation for page sync
  • Page sync reports name failed pages
  • Retry transient page-fetch failures with backoff
  • Complete page sync for Mintlify-style sites

Full Release Notes

# Changelog

## New Features

- Live progress & cancellation for page sync: `Knowledge.stream_sync_pages()` / `astream_sync_pages()` yield typed `PageSyncProgress` snapshots plus one terminal `SyncReport`, and `sync_pages` / `async_sync_pages` accept an `on_progress` observer. A workflow function step can now yield `StepProgress(content=..., data=...)` before its `StepOutput`, emitted as a native `StepProgressEvent` under the existing workflow run/step ID — AgentOS streams it over the existing workflow REST/SSE route, and `AgentOSClient.run_workflow_stream()` parses it. Cancelling a sync now actually reaches the work instead of draining to the end. (#10098)
- Page sync reports name failed pages: `SyncReport.failed_paths` lists the site paths of pages that failed to publish/delete (capped at the first 20, like `errors`; `failed` keeps the full count; defaults to `()` so existing callers/stored reports are unaffected). Logs now name the page and its cause chain, e.g. `Page sync failed for /guides/setup.md (SyncFailed: sync_failed <- ConnectError: [Errno 104] Connection reset by peer)`, plus a new `Page delete failed for …` warning on the prune path. (#10729)

## Bug Fixes

- Retry transient page-fetch failures with backoff: on large corpora (e.g. [docs.agno.com](http://docs.agno.com/), 3,913 pages) 1–2 random pages failed per run with `Connection reset by peer`. Each attempt previously consumed the entire 30s fetch deadline (leaving no time to retry) and retries were too short — both are fixed with a bounded per-attempt timeout and backoff. (#10730)
- Complete page sync for Mintlify-style sites: large Mintlify sites (e.g. [docs.langchain.com](http://docs.langchain.com/)) synced as `partial` even when every page indexed — and a `partial` result skips pruning, so removed pages stayed searchable indefinitely. Discovery now skips links to non-page files (`.json`, `.yaml`, `.xml`, `.csv`, `.pdf`, images/audio/video, archives, fonts — while keeping `.js`/`.css` as valid page names like `/guides/node.js`), and handles nested indexes, MDX code blocks and redirect aliases. Off-host page links still block pruning (by design). (#10726)

## What's Changed
* feat: name failed pages and their causes in page sync reports by @kausmeows in https://github.com/agno-agi/agno/pull/10729
* fix: retry transient page fetch failures with backoff by @kausmeows in https://github.com/agno-agi/agno/pull/10730
* feat: add AgentOS lifecycle support for Knowledge page synchronization by @ashpreetbedi in https://github.com/agno-agi/agno/pull/10098
* fix: complete page sync for Mintlify-style sites (non-page links, nested indexes, MDX code, redirect aliases) by @kausmeows in https://github.com/agno-agi/agno/pull/10726
* chore: Release v3.1.1 by @kausmeows in https://github.com/agno-agi/agno/pull/10736


**Full Changelog**: https://github.com/agno-agi/agno/compare/v3.1.0...v3.1.1

Related Repositories