fix: monkey-patch mcp cancellation race crash (SDK issue #2416)
Some checks failed
Build and Push Docker Image / build (push) Failing after 28s

Patch RequestResponder.respond() and cancel() at startup to handle
the race where a notifications/cancelled arrives between handler
return and respond(), which crashes the session with
"AssertionError: Request already responded to".

Also improve build.sh to handle registry push failures gracefully
and auto-restart the container after building.
This commit is contained in:
2026-04-25 05:20:20 +00:00
parent 61073b2b69
commit 3d0352384b
2 changed files with 45 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
SCRAPER_DIR="/home/b3nw/projects/financial/schwab-scraper"
IMAGE="gitea.ext.ben.io/b3nw/schwab-mcp-custom:latest"
BUILD_HOST="${BUILD_HOST:-docker-test}"
COMPOSE_DIR="/opt/schwab-mcp-custom"
cd "$PROJECT_DIR"
@@ -28,10 +29,17 @@ echo "==> Building Docker image on $BUILD_HOST..."
ssh "$BUILD_HOST" "cd /tmp/schwab-mcp-build && docker build -t $IMAGE ."
echo "==> Pushing image to registry..."
ssh "$BUILD_HOST" "docker push $IMAGE"
if ssh "$BUILD_HOST" "docker push $IMAGE" 2>/dev/null; then
echo " Image pushed to registry."
else
echo " Registry push failed (auth?), image available locally only."
fi
echo "==> Restarting container..."
ssh "$BUILD_HOST" "cd $COMPOSE_DIR && docker compose up -d --force-recreate --pull never --no-deps schwab-mcp"
echo "==> Cleaning up..."
rm -rf vendor/schwab-scraper
ssh "$BUILD_HOST" "rm -rf /tmp/schwab-mcp-build"
echo "==> Done! Image pushed: $IMAGE"
echo "==> Done! Container restarted with new image."