fix: upgrade marvin>=3.2.0 to fix contact-extractor crash#211
fix: upgrade marvin>=3.2.0 to fix contact-extractor crash#211
Conversation
Marvin 3.0.x/3.1.x are incompatible with pydantic-ai>=1.56.0 (required for CVE-2026-25580). The Agent class lost the `_deprecated_result_tool_name` attribute in pydantic-ai 1.56+, causing AttributeError in marvin's streaming.py when using `run_async()` with union result_type. Upgrade to marvin>=3.2.0 which is compatible with modern pydantic-ai. Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Paolo Dettori <dettori@us.ibm.com>
28a610e to
ad8d3af
Compare
Pin indirect dependencies to fix code scanning alerts: - fastmcp>=3.2.0: CVE-2026-32871 (critical SSRF), CVE-2026-27124 (high) - anthropic>=0.87.0: CVE-2026-34452, CVE-2026-34450 - aiohttp>=3.13.4: CVE-2026-34525, CVE-2026-34516, CVE-2026-34515, CVE-2026-22815, and 6 low-severity CVEs Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Paolo Dettori <dettori@us.ibm.com>
Marvin upgrades can break the contact-extractor agent due to pydantic-ai compatibility issues. Require manual testing before accepting major version bumps. Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Paolo Dettori <dettori@us.ibm.com>
cwiklik
left a comment
There was a problem hiding this comment.
Review Summary
The code changes are solid — upgrading marvin to >=3.2.0 for pydantic-ai compatibility, pinning CVE-affected indirect deps (fastmcp>=3.2.0, anthropic>=0.87.0, aiohttp>=3.13.4), and configuring dependabot to avoid risky auto-upgrades. All 3 commits signed-off with proper Assisted-By trailer. All 11 CI checks passing.
Areas reviewed: Python (deps), YAML (dependabot), Security (CVEs), Commit conventions
Commits: 3 commits, all signed-off: ✅
CI status: all 11 checks passing ✅
Must-fix
PR title and description are stale and contradict the actual changes:
- Title says
fix: pin marvin<3.1.0 to fix contact-extractor crash— but the actual constraint ismarvin>=3.2.0 - Body says
marvin 3.1.1 → 3.0.6— but the lockfile showsmarvin 3.1.1 → 3.2.7 - Body says
Pin marvin>=3.0.0,<3.1.0— but pyproject.toml showsmarvin>=3.2.0
The PR title becomes permanent git history (squash/merge commit). Please update to match the actual change, e.g.:
- Title:
fix: upgrade marvin>=3.2.0 to fix contact-extractor crash - Body: Update the summary bullets and uv.lock line to reflect the upgrade
Highlights
- Good approach pinning CVE-affected indirect deps as direct constraints with clear comments
- Smart dependabot ignore for marvin major bumps given the pydantic-ai compatibility sensitivity
- Clean commit structure — each commit addresses a distinct concern (marvin fix, CVE bumps, dependabot config)
esnible
left a comment
There was a problem hiding this comment.
This looks good.
We need to be able to tell if version changes break the examples. Thus we need tests for them. I created CI to make sure the Dockerfiles build and the servers are able to start.
I did not create CI that verifies if the servers actually serve traffic. Perhaps this is needed? Perhaps we should test each example by sending it A2A or MCP traffic?
cwiklik
left a comment
There was a problem hiding this comment.
Review Summary
Previous review's must-fix (stale PR title/description) has been addressed. Title and body now accurately describe the upgrade to marvin>=3.2.0 with CVE-affected indirect dep pins. Code is unchanged and CI remains green.
Areas reviewed: Python (deps), YAML (dependabot), Security (CVEs), Commit conventions
Commits: 3 commits, all signed-off: ✅
CI status: all 11 checks passing ✅
No remaining issues — good to merge.
Summary
marvin>=3.2.0ina2a/a2a_contact_extractor/pyproject.toml(3.0.x/3.1.x incompatible with pydantic-ai>=1.56)fastmcp>=3.2.0,anthropic>=0.87.0,aiohttp>=3.13.4Root Cause
The
pydantic-ai>=1.56.0CVE pin (CVE-2026-25580) pulled in pydantic-ai 1.71.0, which removed_deprecated_result_tool_namefrom the Agent class. Marvin 3.0.x/3.1.x still referenced this attribute, causing AttributeError on everyrun_async()call with union result_type. Marvin 3.2.0+ is compatible.CVEs Fixed
Test plan
Assisted-By: Claude (Anthropic AI) noreply@anthropic.com