Skip to content

v1.6.0 — Parallel Ingestion, Auto-Recovery & Large Book Support

Choose a tag to compare

@barkain barkain released this 28 Mar 15:22
· 20 commits to main since this release

What's New

Parallel Chapter Summarization

  • Stage 4 (chapter summarization) now runs in parallel using asyncio with a configurable semaphore
  • Default concurrency: 10 simultaneous LLM calls
  • Configurable via AGENTLIB_CONCURRENCY env var
  • ~10x faster ingestion for large books (e.g., 1134 chapters: ~5 min instead of ~50 min)

Batched Concept Extraction

  • extract_concepts() now processes chapters in batches of 50 instead of sending all chapter summaries in one LLM call
  • Prevents context window overflow on large books (previously crashed on books with 1000+ chapters)
  • Concepts deduplicated across batches (normalized keys, merged locations and aliases)
  • Global cap of 50 concepts per book, ranked by coverage breadth

Auto-Recovery

  • Partial manifest saved after stage 4 (chapter summaries with empty concept index)
  • On re-run after a stage 5 failure, stages 1-4 are skipped automatically — only concept extraction re-runs
  • Stage 5 retries up to 3 times with 30-second delay on API failures (rate limits, overloaded errors)
  • Retry scope includes RuntimeError, TypeError, AttributeError, and ValueError to handle malformed LLM output

Hero Animation

  • README now features a looping GIF demo of AgentLib in action
  • Navigation diagram redesigned as horizontal Mermaid flowchart

Bug Fixes

  • AGENTLIB_CONCURRENCY validated: clamped to min 1, fallback to 10 on invalid input
  • Stage 5 skip detection uses catalog entry (not dict truthiness) to correctly handle empty concept indexes
  • Non-dict LLM responses now raise RuntimeError with clear message instead of silent failures
  • Server tests no longer fail when fastmcp dependency is missing

Documentation

  • README updated with: content-aware chunking, PDF table/image extraction, parallel ingestion, auto-recovery, AGENTLIB_CONCURRENCY env var

Testing

  • 98 tests passing (up from 92)
  • New tests for: batched concept extraction, deduplication, concept cap, async summarization, semaphore concurrency, parallel timing

Full Changelog: v1.5.0...v1.6.0