fix: finish the v0.12.0 Reflex→Tether rename (repair tether-vla breakage + stale reflex text)#221
Merged
Merged
Conversation
…he rename introduced The v0.12.0 rename sed'd 'reflex-vla' to 'tether-vla' in many places, but neither the PyPI package (it's 'tether', per pyproject) nor the GitHub repo (FastCrest/tether) is named tether-vla. github.com/FastCrest/tether-vla 404s and pypi.org/project/tether-vla does not exist, so everything that referenced them was broken. It also left current-tense 'reflex' commands in user-facing help text, docs, and infra runbooks. Functional fixes (were broken): - upgrade_check.py: PyPI URL + distribution() looked up 'tether-vla' -> upgrade check could never fire; now 'tether' - cli.py: shim imports 'from reflex.embodiments...' made tether's own CLI emit DeprecationWarnings to users; now imports tether.* directly. Also fixed GitHub URLs, install hints, doctor component label - ci_template.py: generated CI installed from the 404 tether-vla repo URL - scripts/modal_*.py (56 files): git+ install URLs pointed at the 404 FastCrest/tether-vla; egg names 'tether-vla[...]' mismatched the real dist name. Historical pins restored to the actually-published artifacts (reflex-vla==0.6.0, ghcr.io/fastcrest/reflex-vla:0.2.0) with comments - README hero image referenced assets/tether-tweet.gif which didn't exist (404 on the public README); gifs renamed to match. assets/README notes both recordings pre-date the rename and need re-recording - comply/sbom.py: SBOM purl/name now matches the publishable dist 'tether' - install_digest.py: pypistats now aggregates reflex-vla (where all published downloads live) + tether (post-publish) - pro/fingerprint.py: restore the pre-rename salt b'reflex-vla:pro- fingerprint:v1' — the rename rotated it, which would break Pro license node binding for 0.11.x pilots on upgrade. Wire contract, documented Text/branding fixes (stale 'reflex'): - pyproject extras comments, so_arm100 docstrings + error messages, cli.py help text, examples/so_arm100_smolvla.py - launch/ drafts (unpublished), outreach/gmi doc, GOALS.yaml checks (src/reflex paths -> src/tether so the checks evaluate again) - infra/ worker READMEs + deploy.sh operator instructions (D1 names, worker URLs, reflex_version JSON field kept — deployed contracts) - contrib/ros2: reflex_client.py -> tether_client.py, ReflexClient -> TetherClient, shim import fixed - dashboards/reflex_fleet.json -> tether_fleet.json (description text only; reflex_* Prometheus metric names kept — customer wire contract) - OTel service name 'tether-vla' -> 'tether' (+ docs/otel.md) Deliberately kept: src/reflex shim + reflex entry point, REFLEX_* env compat, CHANGELOG history, reflex_version cert field, reflex_* metrics, REFLEX-XXXX license code prefix, reflex_context vault references. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
rylinjames
added a commit
that referenced
this pull request
Jun 10, 2026
…blocked on PyPI) (#222) * release: set PyPI distribution name to fastcrest-tether (the bare 'tether' name is blocked on PyPI) PyPI rejects the project name 'tether' ('isn't allowed' — reserved/blocked, not merely taken). Published v0.12.0 as 'fastcrest-tether' instead. The import package ('import tether') and the CLI command ('tether ...') are unchanged — only the pip distribution name differs, the same dist/command split reflex-vla already used. - pyproject: name = 'fastcrest-tether' - All 'pip install tether[...]' / 'tether @ git+...' specs across README, docs, install.sh, examples, launch, contrib, ci_template, and the Modal scripts -> 'fastcrest-tether' (CLI commands 'tether ...' left untouched) - PyPI badges + pypistats package -> fastcrest-tether - Functional metadata lookups rewired to the real dist name so they don't silently break (same bug class as #221): upgrade_check distribution(), bench/eval report version(), calibration _safe_pkg_version, agent/hardware _package_version (JSON key 'tether_version' kept), comply/sbom purl+name, doctor component label, telemetry User-Agent, install_digest PACKAGES Kept as 'tether': import package, CLI command + entry point, git repo + clone dir (FastCrest/tether), GHCR image, OTel service name, TETHER_* env, 'tether_version' wire field, src/reflex compat shim. Published: https://pypi.org/project/fastcrest-tether/0.12.0/ Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * ci(doctor-smoke): wheel glob dist/tether-*.whl -> dist/fastcrest_tether-*.whl The dist-name change renamed the built wheel to fastcrest_tether-0.12.0-*.whl, so the doctor-smoke install step's hardcoded dist/tether-*.whl glob matched nothing ('ls: cannot access dist/tether-*.whl'). Update to the new filename. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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.
Why
The v0.12.0 rename sed'd
reflex-vla→tether-vla, but nothing is namedtether-vla: the PyPI package istether(pyproject) and the repo isFastCrest/tether.github.com/FastCrest/tether-vla404s andpypi.org/project/tether-vladoesn't exist — so the upgrade checker, generated CI templates, ~56 Modal scripts' git installs, the SBOM identity, and the public README hero image were all broken. Plus a long tail of current-tensereflexcommands in help text, docs, infra runbooks, contrib, and launch drafts.Functional repairs
distribution()now usetether(was silently dead)from reflex.embodiments…shim imports that made our own CLI emit DeprecationWarnings to users; fixed GitHub URLs + install hintsFastCrest/tether; requirement egg names →tether[...]; historical pins restored to the actually-published artifacts (reflex-vla==0.6.0,ghcr.io/fastcrest/reflex-vla:0.2.0) with commentsassets/tether-tweet.gifwhich didn't exist (live 404); gifs renamed, assets/README flags both as pre-rename recordings needing re-record. Alsotether-vla→tetherin badges/install (11×)reflex-vla(all published downloads) +tether(post-publish)Branding sweep
help text, so_arm100 docstrings/errors, pyproject comments, examples, launch/ drafts (unpublished), outreach doc, GOALS.yaml checks (src/reflex → src/tether so they evaluate again), infra runbooks, contrib/ros2 (
ReflexClient→TetherClient), dashboards/reflex_fleet.json → tether_fleet.json, OTel service name →tether.Deliberately kept (wire contracts / compat)
src/reflexshim +reflexentry point,REFLEX_*env compat,reflex_versioncert field,reflex_*Prometheus metrics,REFLEX-XXXXlicense prefix, D1 database/worker names, CHANGELOG history,reflex_contextvault refs.🤖 Generated with Claude Code