Skip to content

chore: bump fastmcp for security fixes, adopt uv exclude-newer#57

Open
jtroup wants to merge 1 commit into
mainfrom
elmo/nearby-parrot
Open

chore: bump fastmcp for security fixes, adopt uv exclude-newer#57
jtroup wants to merge 1 commit into
mainfrom
elmo/nearby-parrot

Conversation

@jtroup
Copy link
Copy Markdown
Contributor

@jtroup jtroup commented May 20, 2026

what

  • Bump fastmcp / fastmcp-slim from 3.2.4 to 3.3.1
    (refresh of uv.lock).
  • Add [tool.uv] exclude-newer = "7 days" in pyproject.toml
    with per-package overrides for fastmcp and fastmcp-slim
    pinned to 2026-05-16 so the new 3.3.1 release (uploaded
    2026-05-15) still resolves through the otherwise 7-day
    fence.
  • Bump uv to 0.11.13 and just to 1.50.0 in
    .tool-versions; the uv bump is the minimum that
    understands the relative exclude-newer syntax and the
    per-package override.
  • Add a pre-commit ecosystem entry to dependabot.yaml
    (monthly, 7-day cooldown, grouped, chore prefix).
  • Roll the package version to 2026.05.20.

why

fastmcp 3.3.1 ships security fixes we want to pick up, so the
primary driver is the version bump. Doing the bump is also a
good moment to harden dependency resolution: exclude-newer
refuses package versions uploaded inside the configured window,
so a freshly published compromised release (Shai-Hulud, LiteLLM
etc.) cannot be pulled in before maintainers and detection
tooling have had a chance to react. 3.3.1 itself sits inside
the 7-day window, hence the per-package exemption capped at
2026-05-16 — it lets the security fix through without
weakening the global default for everything else. Adding
pre-commit to dependabot keeps hook versions current alongside
the existing ecosystems.

testing

  • just lint
  • just test
  • uv sync to confirm the new [tool.uv] block and lockfile
    options resolve cleanly with uv 0.11.13.

docs

No docs needed. The behaviour is internal to dependency
resolution and not user-facing.


🤖 Generated with Claude Code

@jtroup jtroup requested a review from a team as a code owner May 20, 2026 00:25
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 20, 2026

Greptile Summary

This PR bumps fastmcp/fastmcp-slim from 3.2.4 to 3.3.1 for security fixes, hardens dependency resolution with uv's exclude-newer feature, and adds pre-commit to Dependabot alongside tool-version bumps for uv and just.

  • pyproject.toml: Adds [tool.uv] exclude-newer = "7 days" to refuse package versions uploaded within the last 7 days, with a temporary per-package absolute ceiling (2026-05-16) for fastmcp/fastmcp-slim so that 3.3.1 (uploaded 2026-05-15) still resolves; an inline comment reminds maintainers to remove the override once >= 3.3.2 ships.
  • uv.lock: Refreshed to fastmcp 3.3.1; uv correctly serialises the relative window as exclude-newer-span = "P7D" plus a no-op backward-compat sentinel.
  • .github/dependabot.yaml: New pre-commit ecosystem entry mirrors the existing github-actions entry (monthly schedule, 7-day cooldown, grouped, chore prefix).

Confidence Score: 5/5

All changes are confined to dependency metadata, tooling configuration, and a CalVer version string — no application logic is modified.

The fastmcp bump is a security patch with no application-code changes. The exclude-newer configuration is additive and only affects future uv lock runs. The uv.lock refresh is a direct consequence of the version bump. The Dependabot addition is purely operational. No runtime behaviour changes.

No files require special attention.

Important Files Changed

Filename Overview
pyproject.toml Adds [tool.uv] block with relative exclude-newer = "7 days" global window and per-package absolute ceiling for fastmcp/fastmcp-slim at 2026-05-16; inline comment explains the temporary override intent.
.github/dependabot.yaml Adds pre-commit ecosystem entry with monthly schedule, 7-day cooldown, and grouped updates; minor YAML quoting style differs from the existing github-actions entry but is functionally equivalent.
.tool-versions Bumps uv to 0.11.13 (minimum required for relative exclude-newer syntax) and just to 1.50.0.
stacklet/mcp/init.py Version bumped from 2026.04.0 to 2026.05.20 following CalVer scheme.
uv.lock Lockfile refreshed to reflect fastmcp 3.3.1 and the new exclude-newer options block; exclude-newer-span = "P7D" and the backward-compat sentinel are correctly emitted by uv 0.11.13.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[uv lock / uv sync] --> B{Is package version\nuploaded within 7 days?}
    B -- Yes --> C{Is package in\nexclude-newer-package override?}
    C -- Yes\nfastmcp / fastmcp-slim --> D{Uploaded before\n2026-05-16?}
    D -- Yes --> E[✅ Allowed\ne.g. fastmcp 3.3.1]
    D -- No --> F[❌ Excluded]
    C -- No --> F
    B -- No --> E
Loading

Reviews (2): Last reviewed commit: "chore: bump fastmcp for security fixes, ..." | Re-trigger Greptile

Comment thread pyproject.toml Outdated
[tool.uv]
exclude-newer = "7 days"
# Remove this next line once fastmcp >= 3.3.2 is released and fall back to the global 7-day window.
exclude-newer-package = { fastmcp = "2026-05-16T00:00:00Z", fastmcp-slim = "2026-05-16T00:00:00Z" }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Hard ceiling on fastmcp silently blocks future upgrades

The per-package cutoff "2026-05-16T00:00:00Z" is an absolute date, not a relative window. Any fastmcp or fastmcp-slim release uploaded after that timestamp — including a hypothetical 3.3.2 security patch — will be excluded by uv lock until this line is manually removed. If a security fix ships before someone remembers to clean up the override (or before dependabot opens a PR), the lock will silently stay on 3.3.1. The inline comment calls it out, but given the stated motivation (picking up security fixes quickly), it may be worth tracking this as an issue or adding a CI assertion so the guard is lifted proactively.

Fix in Claude Code

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We get alerts from Aikido about CVEs in dependencies that matter, so this is covered IMO.

@jtroup jtroup force-pushed the elmo/nearby-parrot branch from cb8ff6b to 009531d Compare May 20, 2026 00:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant