Repository navigation
fix: secure WebSocket authentication and diagnostic boundaries - #837
AlexanderZ-Band merged 10 commits into
Conversation
AlexanderZ-Band
left a comment
There was a problem hiding this comment.
my-code-review --fix: converged in cycle 1. Independent A–F passes found no verified in-scope issues or cleanup worth changing; no existing feedback required handling. Scope: Python WebSocket dependency adoption, connection/probe logging and retained diagnostics.
Validation against updated local Phoenix source ada7555: 77 focused tests passed; repository-wide Ruff, format and pyrefly checks passed. The broad 8,690-test suite was intentionally interrupted to keep verification proportional and is not a pass.
Release gate remains: exact-head CI and a fresh uv lock --check fail because the required Phoenix >=0.3.1 release is not published (registry currently offers <=0.2.5). Publish the dependency, refresh the real lock, and rerun CI before merge. No source changes, merges or releases performed.
…-in-phoenix-INT-1838
Checkpoint — 2026-10-20Merged to main as Merged head GitHub still showed Continue here
Follow-ups: INT-1859 and INT-1861. Docker kit and example lockfiles still pin older Phoenix and are excluded. |
…-in-phoenix-INT-1838
The pin moved to >=0.3.1,<0.4 without a lock refresh, so `uv sync --locked` and the lock-sync lint step failed on every job. 0.3.1 was published after the last CI run, which is why resolution failed at the time. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MaoYFzCV2bJRD4sDDVD7td
…-in-phoenix-INT-1838
…-in-phoenix-INT-1838 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T5N5cEQQgnb9GXfNTcBSve Signed-off-by: Alexander Zaikman <alexander.zaikman@band.ai>
…ect fixture Phoenix 0.3 made ReconnectPolicy a frozen Pydantic model, so dataclasses.replace raised TypeError in millisecond_reconnects and errored every tests/platform/linkclose test. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T5N5cEQQgnb9GXfNTcBSve Signed-off-by: Alexander Zaikman <alexander.zaikman@band.ai>
…-in-phoenix-INT-1838
Why
The SDK's WebSocket error probe and retained refusal fields can expose credentials after the connection attempt.
What
Adopt Phoenix header-only authentication (
phoenix-channels-python-client>=0.3.1,<0.4, locked from the registry), reuse its safe connection logger for probes and failures, redact retained error fields, and encode agent identity as one query value. Keep the existing test layout, add focused wire/log regressions, and update the fast-reconnect test fixture for Phoenix's PydanticReconnectPolicy.Scope
Python WebSocket transport only, coordinated by INT-1838. Phoenix 0.3.1 is published, so the lock is real. Moving to Phoenix 0.4.0 (reconnect default, terminal 403) is INT-1859. Consumer manifests and deployment work are outside this PR.
🤖 Generated with Claude Code
https://claude.ai/code/session_01T5N5cEQQgnb9GXfNTcBSve