Skip to content

fix: relock the echo-agent starter so proxy-managed kit custody can connect#478

Merged
AlexanderZ-Band merged 3 commits into
mainfrom
fix/kit-proxy-managed-credentials-cannot-connect-sdk-w-INT-1109
Jul 23, 2026
Merged

fix: relock the echo-agent starter so proxy-managed kit custody can connect#478
AlexanderZ-Band merged 3 commits into
mainfrom
fix/kit-proxy-managed-credentials-cannot-connect-sdk-w-INT-1109

Conversation

@AlexanderZ-Band

Copy link
Copy Markdown
Collaborator

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.lock pinning band-sdk 1.2.0 + phoenix-channels-python-client 0.2.1 — versions that predate the x-api-key WebSocket 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's api_key query param, which the sandbox proxy never rewrites — the literal proxy-managed sentinel 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

  • Raise the starter's band-sdk floor to >=1.4.0 with a comment explaining why that floor is load-bearing.
  • Relock: band-sdk 1.4.2, phoenix-channels 0.2.2.
  • CI lint job now runs 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):

Lock Proxy-managed result
shipped (band-sdk 1.2.0) WS 403 at startup, agent never connects
this PR (band-sdk 1.4.2) connects; echo round-trip 2.68s; real key never enters the VM

Closes INT-1109.

🤖 Generated with Claude Code

…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>
@linear-code

linear-code Bot commented Jul 22, 2026

Copy link
Copy Markdown

INT-1109

@AlexanderZ-Band
AlexanderZ-Band requested a review from a team July 22, 2026 09:30
…-credentials-cannot-connect-sdk-w-INT-1109

# Conflicts:
#	docker/band_python_kit/echo-agent/pyproject.toml
#	docker/band_python_kit/echo-agent/uv.lock
@AlexanderZ-Band
AlexanderZ-Band merged commit 96d8e87 into main Jul 23, 2026
14 checks passed
@AlexanderZ-Band
AlexanderZ-Band deleted the fix/kit-proxy-managed-credentials-cannot-connect-sdk-w-INT-1109 branch July 23, 2026 07:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants