Skip to content

Jeff/fix/connect#23

Closed
spomichter wants to merge 30 commits into
mainfrom
jeff/fix/connect
Closed

Jeff/fix/connect#23
spomichter wants to merge 30 commits into
mainfrom
jeff/fix/connect

Conversation

@spomichter
Copy link
Copy Markdown

Related

What

ruthwikdasyam and others added 30 commits March 14, 2026 01:01
…PC proxy

When --connect is provided (with optional URL), the viewer connects to an
existing gRPC proxy server instead of spawning its own. This mirrors the
stock rerun binary's --connect behavior. Defaults to rerun+http://127.0.0.1:<port>/proxy.
- Remove unused `parking_lot` dependency (cargo-shear)
- Add `[lints] workspace = true` to dimos/Cargo.toml (rerun lint)
- Fix TOML formatting in dimos/pyproject.toml (taplo)
- Rename error variables from `e` to `err` (rerun lint convention)
- Fix trailing whitespace in keyboard.rs
- Add blank lines before doc comments on struct fields/constants
- Use Display instead of Debug for error formatting in viewer.rs
- Commit updated Cargo.lock

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…econnect

- WsPublisher now connects as a client to RerunWebSocketServer (Python)
  instead of running its own axum server
- Replaced axum + broadcast with tokio-tungstenite + mpsc
- Drain queued commands on reconnect to avoid sending stale velocities
- Changed --ws-port to --ws-url for full URL control
- Moved WS_EVENTS.md to repo root with other docs
The Python server (websockets library) sends keepalive pings every 30s
and expects a pong within 30s. The old code only wrote to the stream
and never read, so tungstenite never got a chance to auto-reply with
pong frames. This caused the server to close the connection every
~2 minutes.

Split the stream into read/write halves and spawn a reader task that
consumes incoming frames (triggering tungstenite's automatic pong
replies). The write loop uses tokio::select! to also detect when the
reader exits (server closed), triggering immediate reconnection instead
of waiting for the next send to fail.
- Delete interaction/lcm.rs (LCM publisher no longer needed)
- Simplify KeyboardHandler to take WsPublisher directly
- Remove dual LCM/WS code paths in viewer.rs
- Always connect via WebSocket (default ws://127.0.0.1:3030/ws)
Merges main's run_with_app_wrapper refactor while preserving WebSocket-only
transport from this branch (no LCM dependency).

- Use rerun's run_with_app_wrapper for cleaner CLI handling
- WsPublisher now spawns its own tokio runtime thread (works without #[tokio::main])
- Inherits click-to-engage overlay and other UI improvements from main
- Bump version to 0.30.0-alpha.6
- ruff F541: remove f-prefix from string without placeholders in test_keyboard_lcm.py
- typos: serialised → serialized in ws.rs
- lint.py: add blank lines before doc comments and methods in viewer.rs
- lint.py: fix double space in ws.rs comment
- cargo-shear: remove unused clap dependency
@leshy
Copy link
Copy Markdown

leshy commented May 19, 2026

merged as a part of #22

@leshy leshy closed this May 19, 2026
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.

4 participants