diff --git a/CHANGELOG.md b/CHANGELOG.md index 39c91227..fe9eb187 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Changelog ## [Unreleased] +### Fixed + +- `fastmcp` is now a direct dependency instead of being pulled via the `pydantic-ai-slim[fastmcp]` extra, which `pydantic-ai-slim` 2.0 dropped. Clean installs resolving that release got only `fastmcp-slim` (client), so `haiku-rag mcp` failed with `ImportError: FastMCP server support is not installed`. + ## [0.61.1] - 2026-06-24 ### Fixed diff --git a/haiku_rag_slim/pyproject.toml b/haiku_rag_slim/pyproject.toml index 9c727395..e345081f 100644 --- a/haiku_rag_slim/pyproject.toml +++ b/haiku_rag_slim/pyproject.toml @@ -27,10 +27,11 @@ dependencies = [ "httpx>=0.28.1", "jinja2>=3.1.0", "jsonpatch>=1.33", + "fastmcp>=3.3.0", "lancedb==0.30.2", "pathspec>=1.0.4", "pydantic>=2.12.5", - "pydantic-ai-slim[openai,fastmcp,logfire,ag-ui]>=1.100.0", + "pydantic-ai-slim[openai,logfire,ag-ui]>=1.100.0", "pydantic-monty>=0.0.17", "pypdfium2>=5.0", "python-dotenv>=1.2.2", diff --git a/uv.lock b/uv.lock index e06cf2f8..659a80e0 100644 --- a/uv.lock +++ b/uv.lock @@ -1662,6 +1662,7 @@ version = "0.61.1" source = { editable = "haiku_rag_slim" } dependencies = [ { name = "docling-core" }, + { name = "fastmcp" }, { name = "haiku-skills" }, { name = "httpx" }, { name = "jinja2" }, @@ -1669,7 +1670,7 @@ dependencies = [ { name = "lancedb" }, { name = "pathspec" }, { name = "pydantic" }, - { name = "pydantic-ai-slim", extra = ["ag-ui", "fastmcp", "logfire", "openai"] }, + { name = "pydantic-ai-slim", extra = ["ag-ui", "logfire", "openai"] }, { name = "pydantic-monty" }, { name = "pypdfium2" }, { name = "python-dotenv" }, @@ -1749,6 +1750,7 @@ requires-dist = [ { name = "docling", marker = "extra == 'docling'", specifier = ">=2.102.2,<3.0.0" }, { name = "docling-core", specifier = ">=2.82.0,<3.0.0" }, { name = "fastapi", marker = "extra == 'ingester'", specifier = ">=0.125" }, + { name = "fastmcp", specifier = ">=3.3.0" }, { name = "haiku-rag-slim", extras = ["s3"], marker = "extra == 'ingester'", editable = "haiku_rag_slim" }, { name = "haiku-skills", specifier = ">=0.17.2" }, { name = "httpx", specifier = ">=0.28.1" }, @@ -1765,7 +1767,7 @@ requires-dist = [ { name = "pydantic-ai-slim", extras = ["google"], marker = "extra == 'google'" }, { name = "pydantic-ai-slim", extras = ["groq"], marker = "extra == 'groq'" }, { name = "pydantic-ai-slim", extras = ["mistral"], marker = "extra == 'mistral'" }, - { name = "pydantic-ai-slim", extras = ["openai", "fastmcp", "logfire", "ag-ui"], specifier = ">=1.100.0" }, + { name = "pydantic-ai-slim", extras = ["openai", "logfire", "ag-ui"], specifier = ">=1.100.0" }, { name = "pydantic-ai-slim", extras = ["vertexai"], marker = "extra == 'vertexai'" }, { name = "pydantic-ai-slim", extras = ["voyageai"], marker = "extra == 'voyageai'" }, { name = "pydantic-monty", specifier = ">=0.0.17" }, @@ -3846,9 +3848,6 @@ bedrock = [ evals = [ { name = "pydantic-evals" }, ] -fastmcp = [ - { name = "fastmcp" }, -] google = [ { name = "google-genai" }, ]