fix: bound fastmcp and mcp below their next majors (#37) #38

Merged
ric merged 1 commit from v6.7.x into main 2026-09-15 09:00:06 +00:00
Owner

Fixes the failing Test Coverage job on main (#37).

Cause

mcp_server/requirements.txt had fastmcp>=2.13.0 with no ceiling, so a fresh install resolved fastmcp 4.0.3 / mcp 2.2.0, two majors past the fastmcp 3.4.7 / mcp 1.29.0 that 6.7.1 was tested on. mcp 2 made OAuthClientInformationFull.client_id required, which failed tests/test_oauth.py::TestClientRegistration::test_register_and_get. Nothing in OmniMem had changed.

Change

  • fastmcp>=2.13.0,<4 and mcp>=1.24.0,<2. mcp is bounded explicitly because fastmcp's metadata doesn't declare it, so a fastmcp pin alone can't be relied on to hold mcp back
  • Two tests for the uncovered branches in tools/briefing.py _skill_source_keys (empty skill row, store error while reading manifests), so tools/ is back at 100%
  • Changelog entry under [6.7.2] - Unreleased

Verified

Ran the job's exact steps (uv venv on Python 3.12, the same pip installs, pytest --cov=memory --cov=tools --cov-report=xml, genbadge) against a clean install with no cache:

  • resolved fastmcp 3.4.7, mcp 1.30.0
  • 1916 passed, 1 skipped, exit 0
  • every memory/ and tools/ module at 100%
  • badge generation succeeds

Follow-up

Images built from the v6.7.1 tag resolved the unbounded versions and should be rebuilt once this is on main. Moving to fastmcp 4 is separate work.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HWqtyPdN5MHxqoVM3Sj9xD

Fixes the failing Test Coverage job on main (#37). ## Cause `mcp_server/requirements.txt` had `fastmcp>=2.13.0` with no ceiling, so a fresh install resolved fastmcp 4.0.3 / mcp 2.2.0, two majors past the fastmcp 3.4.7 / mcp 1.29.0 that 6.7.1 was tested on. mcp 2 made `OAuthClientInformationFull.client_id` required, which failed `tests/test_oauth.py::TestClientRegistration::test_register_and_get`. Nothing in OmniMem had changed. ## Change - `fastmcp>=2.13.0,<4` and `mcp>=1.24.0,<2`. mcp is bounded explicitly because fastmcp's metadata doesn't declare it, so a fastmcp pin alone can't be relied on to hold mcp back - Two tests for the uncovered branches in `tools/briefing.py _skill_source_keys` (empty skill row, store error while reading manifests), so `tools/` is back at 100% - Changelog entry under `[6.7.2] - Unreleased` ## Verified Ran the job's exact steps (uv venv on Python 3.12, the same pip installs, `pytest --cov=memory --cov=tools --cov-report=xml`, `genbadge`) against a clean install with no cache: - resolved fastmcp 3.4.7, mcp 1.30.0 - 1916 passed, 1 skipped, exit 0 - every `memory/` and `tools/` module at 100% - badge generation succeeds ## Follow-up Images built from the v6.7.1 tag resolved the unbounded versions and should be rebuilt once this is on main. Moving to fastmcp 4 is separate work. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01HWqtyPdN5MHxqoVM3Sj9xD
fix: bound fastmcp and mcp below their next majors, cover the #34 fallbacks (#37)
All checks were successful
Security Scans / Bandit SAST (pull_request) Successful in 11s
Security Scans / Dependency Audit (mcp_server) (pull_request) Successful in 42s
Security Scans / Dependency Audit (rss_worker) (pull_request) Successful in 27s
Security Scans / Dependency Audit (web_ui) (pull_request) Successful in 28s
Security Scans / Test Coverage (pull_request) Successful in 1m20s
Security Scans / Secret Scan (pull_request) Successful in 5s
332fab34d3
A fresh install resolved fastmcp 4.0.3 / mcp 2.2.0 from the unbounded
fastmcp>=2.13.0, two majors past what 6.7.1 was tested on. mcp 2 made
OAuthClientInformationFull.client_id required, failing the Test Coverage
job. Bound fastmcp<4 and mcp<2 explicitly (fastmcp doesn't declare mcp).

Also test the two uncovered branches in _skill_source_keys so tools/
is back at 100%.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HWqtyPdN5MHxqoVM3Sj9xD
ric merged commit 9de0fc2356 into main 2026-09-15 09:00:06 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ric/omnimem!38
No description provided.