Skip to main content

robot-fleet-connect

Stream your robot's policy decisions to a GROUND CONTROL deployment over WSS — and leave, with a verified purge, at any time.

pip install robot-fleet-connect                    # after first PyPI publish
pip install ./clients/robot-fleet-connect          # from a repo checkout, today

# 1. Mint a guest token (the scope card + consent text come back once):
curl -X POST https://robotfleet.vikramnag.com/ingest/tokens

# 2. Stream — a deterministic simulated G1 decision loop, your own NDJSON,
#    or a live ROS2 topic:
robot-fleet-connect --token <TOKEN> --simulate
cat decisions.ndjson | robot-fleet-connect --token <TOKEN> --ndjson
robot-fleet-connect --token <TOKEN> --ros2 --robot-id my_bot

# 3. Leave any time (never budget-blocked); --purge deletes every row you
#    streamed and prints the verified counts:
robot-fleet-connect --token <TOKEN> --disconnect --purge

--host http://localhost:8000 points the same commands at a local make demo stack. Ctrl-C is a graceful close: your data stays (until the token TTL) and the token keeps working; --disconnect is the explicit leave.

Consent note: the default host is a PUBLIC demo sandbox — telemetry you stream (robot ids, policy decisions, observations) is visible to other visitors. Do not send anything confidential.

Protocol (Phase 6A wave A, locked): first WS frame {"auth": "<token>"}, then NDJSON batch frames with a {"seq": N} header line; every frame is ACKed {ack, landed, dropped, duplicates, skew_corrected, reasons[], errors[]} — losses are counted, never silent. Unacked batches are kept and resent after a reconnect (the server dedups by event id, so a blip never double-counts), with exponential backoff 500 ms → 8 s plus jitter.

The message-mapping core under robot_fleet_connect/_vendor/gc_ingest_core is vendored byte-for-byte from the platform's packages/gc_ingest_core (single source of truth; scripts/sync_vendored_core.py --check fails CI on drift).

Releasing (PyPI Trusted Publishing)

Releases publish to PyPI via Trusted Publishing (OIDC) — there is no stored PyPI token anywhere in the repo or CI. The workflow .github/workflows/publish-client.yml is triggered by a client-v* tag and:

  1. runs scripts/sync_vendored_core.py --check first — a drifted vendored core fails the build, so it can never ship;
  2. checks the tag matches the version in pyproject.toml;
  3. builds the wheel + sdist from clients/robot-fleet-connect/;
  4. installs the built wheel in a clean venv across Python 3.10 / 3.11 / 3.12 and smoke-tests the robot-fleet-connect console script (--help, --version, argument parse + transport generation — the live --simulate → server path is proven end to end over real TCP in tests/phase1/test_phase6b_client_e2e.py);
  5. uploads via pypa/gh-action-pypi-publish using the workflow's OIDC identity.

To cut a release once the one-time owner setup below is done: bump version in pyproject.toml, commit, then tag and push:

git tag client-v0.1.0
git push origin client-v0.1.0

workflow_dispatch runs the build + install matrix as a dry run without publishing (the publish job is gated on a client-v* tag).

One-time owner setup (gated — not automated here)

The first publish cannot be done by CI alone; the project owner must, on pypi.org:

  1. register the project name robot-fleet-connect (or reserve it via a first manual upload), and
  2. add a Trusted Publisher for it: this GitHub repository, workflow filename publish-client.yml, and environment name pypi.

Until that config exists, the workflow still builds and tests green on every tag — only the final upload step needs the owner's one-time PyPI setup. This is called out explicitly rather than faked: no token is committed, and nothing publishes until the owner wires the trusted publisher.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robot_fleet_connect-0.1.0.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robot_fleet_connect-0.1.0-py3-none-any.whl (23.3 kB view details)

Uploaded Python 3

File details

Details for the file robot_fleet_connect-0.1.0.tar.gz.

File metadata

  • Download URL: robot_fleet_connect-0.1.0.tar.gz
  • Upload date:
  • Size: 23.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for robot_fleet_connect-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0fc1bccb8c73cc0fbfb29f50df6e8f4c5f502a27c03b676ebe90ddd3f141127b
MD5 e0ca3482e7dd64cfece88b540681f742
BLAKE2b-256 aac7b7645b902dbd267843295aa5abfa3c11f9835811f4736875aab3650cfc4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for robot_fleet_connect-0.1.0.tar.gz:

Publisher: publish-client.yml on vikramnagashoka/robot-fleet-observability-platform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file robot_fleet_connect-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for robot_fleet_connect-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 13defe2e3bf16eba8eeea310dcd8bc53f2db1a49908a4c743c8ca886e39eb834
MD5 b5431bbc33472ec000fc252bb41db38b
BLAKE2b-256 105806c67ec1fc2a3b13b36cf37f20697ab4302fb3540115ea74bd4b4c0028fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for robot_fleet_connect-0.1.0-py3-none-any.whl:

Publisher: publish-client.yml on vikramnagashoka/robot-fleet-observability-platform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page