fix: relock the echo-agent starter so proxy-managed kit custody can connect#478
Merged
AlexanderZ-Band merged 3 commits intoJul 23, 2026
Conversation
…onnect The starter's committed uv.lock pinned band-sdk 1.2.0 + phoenix-channels 0.2.1, which predate the x-api-key WebSocket handshake header (added in 1.4.0). The kit launcher installs the lock verbatim, so the sandbox proxy had only the URL query param to rewrite — which it never does — and every proxy-managed (default-tier) kit agent failed its socket connect with 403. Raise the starter's band-sdk floor to 1.4.0 (documented in pyproject), relock (1.4.2 + phoenix 0.2.2), and add an echo-agent uv lock --check to the CI lint job so a floor bump without a relock can't merge. Proven live in a Docker sandbox (sbx v0.35.0, kit 1.4.2): with the old lock the WS upgrade is rejected 403; with this lock the proxy-managed echo agent connects and round-trips in 2.7s with the real key never entering the VM. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
amit-gazal-thenvoi
previously approved these changes
Jul 23, 2026
…-credentials-cannot-connect-sdk-w-INT-1109 # Conflicts: # docker/band_python_kit/echo-agent/pyproject.toml # docker/band_python_kit/echo-agent/uv.lock
…nect-sdk-w-INT-1109
AlexanderZ-Band
deleted the
fix/kit-proxy-managed-credentials-cannot-connect-sdk-w-INT-1109
branch
July 23, 2026 07:23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The kit's default credential tier (
credentials.source: proxy-managed) could not connect any agent: every fresh kit workspace failed its WebSocket connect with 403. Found by running the kit quickstart end-to-end as an outsider (INT-1109).Root cause
The echo-agent starter ships a committed
uv.lockpinning band-sdk 1.2.0 + phoenix-channels-python-client 0.2.1 — versions that predate thex-api-keyWebSocket handshake header added in 1.4.0 (INT-981, #449). The launcher installs the lock verbatim (uv sync --locked), so the agent authenticated only via the upgrade URL'sapi_keyquery param, which the sandbox proxy never rewrites — the literalproxy-managedsentinel reached the platform.The SDK itself needs no change: 1.4.x already sends the header, and the platform gives it precedence (verified live from inside a sandbox: header → 200/connected, query-only → 403).
Fix
band-sdkfloor to >=1.4.0 with a comment explaining why that floor is load-bearing.uv lock --check --directory docker/band_python_kit/echo-agent, so a future floor bump without a relock (or any starter lock/pyproject drift) fails the PR instead of breaking every fresh kit workspace.Verification
Live in a Docker sandbox (sbx v0.35.0, kit 1.4.2 image, dev platform):
Closes INT-1109.
🤖 Generated with Claude Code