fix: v0.9.1 — clearer messages for exec/redeploy/check_image_updates
Three live-verified MCP weaknesses (update run 2026-06-22): - exec_in_container: SYNO.Docker.Container/exec does not exist on this DSM firmware (code 103, like pause/unpause). Catch it and return a guiding "not supported on this firmware" message instead of the raw DSM error; the tool stays available for firmwares that do implement exec. - redeploy_project: the failure hint suggested stop_project + start_project, but start_project does not recreate on a new image (it restarts the old one). Both failure hints now point back at redeploy_project and warn about parallel pull_image lock contention (DSM 2101/2202). - check_image_updates: docstring and output now state it only reflects DSM digest drift on already-pulled tags and does NOT discover newer version tags (use list_image_tags + release notes for that). Tests updated accordingly; CHANGELOG + version bumped to 0.9.1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -353,7 +353,7 @@ async def test_redeploy_large_image_returns_background_hint():
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_redeploy_unknown_status_returns_error():
|
||||
"""Unknown status must return a clear error with a workaround hint."""
|
||||
"""Unknown status must return a clear error pointing back at redeploy_project."""
|
||||
client = AsyncMock()
|
||||
|
||||
async def mock_request(api, method, **kwargs):
|
||||
@@ -368,7 +368,8 @@ async def test_redeploy_unknown_status_returns_error():
|
||||
result = await tools["redeploy_project"]("myapp", confirmed=True)
|
||||
|
||||
assert "UPDATING" in result
|
||||
assert "Workaround" in result or "stop_project" in result
|
||||
assert "redeploy_project" in result
|
||||
assert "does NOT recreate" in result
|
||||
|
||||
|
||||
# ──────────────────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user