diff --git a/CHANGELOG.md b/CHANGELOG.md index 13bfa229..e333b3e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,20 @@ # Changelog ## [Unreleased] +## [0.48.2] - 2026-06-19 + +### Added + +- `analysis.max_executions` (default 15): caps `execute_code` calls per analysis question. Past the cap the tool returns a notice telling the skill to answer from what it has, instead of spiralling into `request_limit`. The analysis skill sets `request_limit` to 30 as a backstop. + ### Changed - `textual-image` moved to base dependencies; `ask`/`analyze`/`visualize` render image citations without the `tui` extra. -- Drop `list_documents` and `get_document` from the default RAG skill's tool set; the skill now exposes only `search` and `cite`. Both tools dumped unbounded content into the agent's context (full document lists, full document bodies) and `get_document` returned no chunk_ids so its output was structurally uncitable. The analysis skill already covers these uses programmatically — `await list_documents()` and `Path('/documents/{id}/content.txt').read_text()` inside `execute_code`. The tool branches remain in `create_skill_tools` and the `skill_generator` `AVAILABLE_TOOLS` set so users can still opt in when building custom skills. +- Drop `list_documents` and `get_document` from the default RAG skill's tool set; the skill now exposes only `search` and `cite`. The tool branches remain in `create_skill_tools` and the `skill_generator` `AVAILABLE_TOOLS` set so users can still opt in when building custom skills. + +### Fixed + +- Analysis-skill `execute_code` no longer crashes with LanceDB `Already borrowed` when sandboxed code reads the document VFS (`content.txt`, `items.jsonl`, `toc.json`); VFS reads run on one background event loop with a single read-only connection for the sandbox's lifetime. ## [0.48.1] - 2026-05-21 @@ -1600,7 +1610,8 @@ Existing documents without DoclingDocument data will work but won't have provena - Initial version tracking -[Unreleased]: https://github.com/ggozad/haiku.rag/compare/0.48.1...HEAD +[Unreleased]: https://github.com/ggozad/haiku.rag/compare/0.48.2...HEAD +[0.48.2]: https://github.com/ggozad/haiku.rag/compare/0.48.1...0.48.2 [0.48.1]: https://github.com/ggozad/haiku.rag/compare/0.48.0...0.48.1 [0.48.0]: https://github.com/ggozad/haiku.rag/compare/0.47.0...0.48.0 [0.47.0]: https://github.com/ggozad/haiku.rag/compare/0.46.0...0.47.0 diff --git a/app/backend/pyproject.toml b/app/backend/pyproject.toml index a700b81e..7ed0f06b 100644 --- a/app/backend/pyproject.toml +++ b/app/backend/pyproject.toml @@ -8,7 +8,7 @@ dependencies = [ "uvicorn[standard]>=0.40.0", "pydantic-ai-slim[ag-ui,anthropic,openai]>=1.81.0", "python-dotenv>=1.2.1", - "haiku.rag-slim>=0.48.1", + "haiku.rag-slim>=0.48.2", "logfire[pydantic-ai]>=3.17.0", ] diff --git a/evaluations/pyproject.toml b/evaluations/pyproject.toml index 2836fb53..ccf28613 100644 --- a/evaluations/pyproject.toml +++ b/evaluations/pyproject.toml @@ -2,7 +2,7 @@ name = "haiku.rag-evals" description = "Benchmarking and evaluation scripts for haiku.rag" -version = "0.48.1" +version = "0.48.2" authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }] license = { text = "MIT" } requires-python = ">=3.12" diff --git a/haiku_rag_slim/pyproject.toml b/haiku_rag_slim/pyproject.toml index 02297659..ea373af1 100644 --- a/haiku_rag_slim/pyproject.toml +++ b/haiku_rag_slim/pyproject.toml @@ -2,7 +2,7 @@ name = "haiku.rag-slim" description = "Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling - Minimal dependencies" -version = "0.48.1" +version = "0.48.2" authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }] license = { text = "MIT" } readme = { file = "README.md", content-type = "text/markdown" } diff --git a/pyproject.toml b/pyproject.toml index 5f661393..acd76b08 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "haiku.rag" description = "Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling" -version = "0.48.1" +version = "0.48.2" authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }] license = { text = "MIT" } readme = { file = "README.md", content-type = "text/markdown" } @@ -30,7 +30,7 @@ classifiers = [ ] dependencies = [ - "haiku.rag-slim[docling,voyageai,mxbai,cohere,zeroentropy,tui,cross-encoder]==0.48.1", + "haiku.rag-slim[docling,voyageai,mxbai,cohere,zeroentropy,tui,cross-encoder]==0.48.2", ] [project.scripts] @@ -38,8 +38,8 @@ haiku-rag = "haiku.rag.cli:cli" [project.optional-dependencies] tui = ["textual>=8.2.4"] -s3 = ["haiku.rag-slim[s3]==0.48.1"] -cross-encoder = ["haiku.rag-slim[cross-encoder]==0.48.1"] +s3 = ["haiku.rag-slim[s3]==0.48.2"] +cross-encoder = ["haiku.rag-slim[cross-encoder]==0.48.2"] [build-system] requires = ["hatchling"] diff --git a/uv.lock b/uv.lock index b6322b7e..807562f1 100644 --- a/uv.lock +++ b/uv.lock @@ -1432,7 +1432,7 @@ wheels = [ [[package]] name = "haiku-rag" -version = "0.48.1" +version = "0.48.2" source = { editable = "." } dependencies = [ { name = "haiku-rag-slim", extra = ["cohere", "cross-encoder", "docling", "mxbai", "tui", "voyageai", "zeroentropy"] }, @@ -1497,7 +1497,7 @@ dev = [ [[package]] name = "haiku-rag-evals" -version = "0.48.1" +version = "0.48.2" source = { editable = "evaluations" } dependencies = [ { name = "datasets" }, @@ -1520,7 +1520,7 @@ requires-dist = [ [[package]] name = "haiku-rag-slim" -version = "0.48.1" +version = "0.48.2" source = { editable = "haiku_rag_slim" } dependencies = [ { name = "docling-core" },