From 7ce00948c74ddc0fcc3991c858ab48626d4b22fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:35:01 +0000 Subject: [PATCH 1/2] chore(deps): bump pygments from 2.19.2 to 2.20.0 Bumps [pygments](https://github.com/pygments/pygments) from 2.19.2 to 2.20.0. - [Release notes](https://github.com/pygments/pygments/releases) - [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES) - [Commits](https://github.com/pygments/pygments/compare/2.19.2...2.20.0) --- updated-dependencies: - dependency-name: pygments dependency-version: 2.20.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- uv.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/uv.lock b/uv.lock index 65c6984b5..acb62fe8f 100644 --- a/uv.lock +++ b/uv.lock @@ -5493,11 +5493,11 @@ wheels = [ [[package]] name = "pygments" -version = "2.19.2" +version = "2.20.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, ] [[package]] From 587ae1d44679f41742d6defad6e18f7160fbfb39 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 01:21:27 +0000 Subject: [PATCH 2/2] chore(deps): update dependency fastmcp to v3.2.0 [security] --- pyproject.toml | 6 +++--- specifications/SPEC-UTILS-SERVICE.md | 14 +++++++------- tests/resources/mcp_dummy_plugin/pyproject.toml | 2 +- uv.lock | 8 ++++---- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d16c4226f..5567e991d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -125,7 +125,7 @@ dependencies = [ "truststore>=0.10.4,<1", "urllib3>=2.6.3,<3", # CVE-2026-21441 requires >= 2.6.3 "wsidicom>=0.28.1,<1", - "fastmcp>=3.0.0,<4", + "fastmcp>=3.2.0,<4", # Transitive overrides # WARNING: one cannot negate or downgrade a dependency required here. use override-dependencies for that. "rfc3987; sys_platform == 'never'", # GPLv3 @@ -208,7 +208,7 @@ dev = [ "watchdog>=6.0.0,<7", # Transitive overrides # WARNING: one cannot negate or downgrade a dependency required here. use override-dependencies for that. - "pip>=5.3", # CVE-2025-8869 + "pip>=5.3", # CVE-2025-8869 "uv>=0.9.7", # CVE-2025-54368, GHSA-w476-p2h3-79g9, GHSA-pqhf-p39g-3x64 "fonttools>=4.60.2", # CVE-2025-66034 (GHSA-768j-98cg-p3fv), dep of matplotlib ] @@ -348,7 +348,7 @@ addopts = "-p nicegui.testing.plugin -v --strict-markers --log-disable=aignostic asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" timeout = 10 # We use a rather short default timeout. Override with @pytest.mark.timeout(timeout=N) -# timeout_method="signal" +# timeout_method="signal" env = [ "COVERAGE_FILE=.coverage", "COVERAGE_PROCESS_START=pyproject.toml", diff --git a/specifications/SPEC-UTILS-SERVICE.md b/specifications/SPEC-UTILS-SERVICE.md index 544a4b022..e88299b5d 100644 --- a/specifications/SPEC-UTILS-SERVICE.md +++ b/specifications/SPEC-UTILS-SERVICE.md @@ -260,7 +260,7 @@ uvx aignostics [module-name] [subcommand] [options] | `nicegui` | ^1.0 | GUI framework support | Optional | CLI-only mode | | `logfire` | ^0.41 | Observability and monitoring | Optional | Standard logging | | `sentry-sdk` | ^2.0 | Error tracking and performance | Optional | Local error handling | -| `fastmcp` | >=2.0,<3 | MCP server framework | Required | N/A - MCP functionality | +| `fastmcp` | >=3.2,<4 | MCP server framework | Required | N/A - MCP functionality | | `marimo` | ^0.8 | Notebook utilities | Optional | Notebook features disabled | _Note: For exact version requirements, refer to `pyproject.toml` and dependency lock files._ @@ -367,18 +367,18 @@ _Note: For exact version requirements, refer to `pyproject.toml` and dependency ### Verification and Updates -**Last Verified**: September 11, 2025 -**Verification Method**: Code review against implementation in `src/aignostics/utils/` +**Last Verified**: September 11, 2025 +**Verification Method**: Code review against implementation in `src/aignostics/utils/` **Next Review Date**: December 11, 2025 ### Change Management -**Interface Changes**: Changes to BaseService or BasePageBuilder APIs require spec updates and version bumps -**Implementation Changes**: Internal discovery algorithms don't require spec updates unless behavior changes +**Interface Changes**: Changes to BaseService or BasePageBuilder APIs require spec updates and version bumps +**Implementation Changes**: Internal discovery algorithms don't require spec updates unless behavior changes **Dependency Changes**: Optional dependency changes should be reflected in fallback behavior section ### References -**Implementation**: See `src/aignostics/utils/` for current implementation -**Tests**: See `tests/aignostics/utils/` for usage examples and verification +**Implementation**: See `src/aignostics/utils/` for current implementation +**Tests**: See `tests/aignostics/utils/` for usage examples and verification **API Documentation**: Auto-generated from docstrings and type hints diff --git a/tests/resources/mcp_dummy_plugin/pyproject.toml b/tests/resources/mcp_dummy_plugin/pyproject.toml index cceae3460..d6fe5a4bf 100644 --- a/tests/resources/mcp_dummy_plugin/pyproject.toml +++ b/tests/resources/mcp_dummy_plugin/pyproject.toml @@ -7,7 +7,7 @@ name = "mcp-dummy-plugin" version = "0.0.1" description = "Dummy MCP plugin for integration testing of plugin auto-discovery." requires-python = ">=3.11" -dependencies = ["fastmcp>=3.0.0,<4", "typer>=0.12", "aignostics"] +dependencies = ["fastmcp>=3.2.0,<4", "typer>=0.12", "aignostics"] [project.entry-points."aignostics.plugins"] mcp_dummy_plugin = "mcp_dummy_plugin" diff --git a/uv.lock b/uv.lock index acb62fe8f..3ea18f10f 100644 --- a/uv.lock +++ b/uv.lock @@ -168,7 +168,7 @@ requires-dist = [ { name = "dicomweb-client", extras = ["gcp"], specifier = ">=0.59.3,<1" }, { name = "duckdb", specifier = ">=1.4.2,<=2" }, { name = "fastapi", extras = ["all", "standard"], specifier = ">=0.123.10" }, - { name = "fastmcp", specifier = ">=3.0.0,<4" }, + { name = "fastmcp", specifier = ">=3.2.0,<4" }, { name = "fastparquet", marker = "python_full_version < '3.14'", specifier = ">=2025.12.0,<2026.0.0" }, { name = "filelock", specifier = ">=3.20.1" }, { name = "google-cloud-storage", specifier = ">=3.6.0,<4" }, @@ -2041,7 +2041,7 @@ wheels = [ [[package]] name = "fastmcp" -version = "3.1.0" +version = "3.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "authlib" }, @@ -2066,9 +2066,9 @@ dependencies = [ { name = "watchfiles" }, { name = "websockets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0a/70/862026c4589441f86ad3108f05bfb2f781c6b322ad60a982f40b303b47d7/fastmcp-3.1.0.tar.gz", hash = "sha256:e25264794c734b9977502a51466961eeecff92a0c2f3b49c40c070993628d6d0", size = 17347083, upload-time = "2026-03-03T02:43:11.283Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/32/4f1b2cfd7b50db89114949f90158b1dcc2c92a1917b9f57c0ff24e47a2f4/fastmcp-3.2.0.tar.gz", hash = "sha256:d4830b8ffc3592d3d9c76dc0f398904cf41f04910e41a0de38cc1004e0903bef", size = 26318581, upload-time = "2026-03-30T20:25:37.692Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/17/07/516f5b20d88932e5a466c2216b628e5358a71b3a9f522215607c3281de05/fastmcp-3.1.0-py3-none-any.whl", hash = "sha256:b1f73b56fd3b0cb2bd9e2a144fc650d5cc31587ed129d996db7710e464ae8010", size = 633749, upload-time = "2026-03-03T02:43:09.06Z" }, + { url = "https://files.pythonhosted.org/packages/4f/67/684fa2d2de1e7504549d4ca457b4f854ccec3cd3be03bd86b33b599fbf58/fastmcp-3.2.0-py3-none-any.whl", hash = "sha256:e71aba3df16f86f546a4a9e513261d3233bcc92bef0dfa647bac3fa33623f681", size = 705550, upload-time = "2026-03-30T20:25:35.499Z" }, ] [[package]]