feat: rename FastCrest Reflex OSS to Tether (v0.12.0)#209
Merged
Conversation
Salvages the rebrand work the prior agent did before its watchdog timeout. - pyproject.toml renamed package to "tether"; entry point: tether = "tether.cli:app" - src/tether/ now exists alongside src/reflex/ (shim) - src/reflex/_redirect.py emits DeprecationWarning + forwards CLI to tether - ~20 doc files + workflows + Dockerfiles updated for new name - README, docs/, CONTRIBUTING all reference Tether (formerly Reflex) What remains (follow-up commit in this PR): - Final wiring of src/tether/__init__.py env-mirror - Test pass: pytest tests/ -x - Backwards-compat test (from reflex import X still works) - Repo rename via gh api (post-merge action by user) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…her salvaged) - src/reflex/__init__.py: full DeprecationWarning + re-export shim - tests/test_backwards_compat.py: 3 tests proving the shim works - tests/test_observability_prometheus.py: preserve reflex_* wire-level metric names Salvaged from finisher agent that stalled on silent pytest run. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The salvaged rename commit changed the test payload from "reflex-vla-sha256-test" to "tether-vla-sha256-test" but left the expected hash digest pointing at the old payload, so test_sha256_large_file failed with a hash mismatch (7e889344... vs the stale be4d788a...). Recomputed the digest for the new payload and updated the assertion. Per CLAUDE.md: no band-aids. The hash IS the contract; verification.py's _sha256 is correct, the test fixture was just lagging behind the rename. Co-Authored-By: Claude Opus 4.7 (1M context) <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.
Summary
Renames the FastCrest OSS deploy CLI from
reflex-vla/reflexto Tether. Per the 2026-06-03 brand decision: one brand (FastCrest) with one OSS product name (Tether) that captures the hybrid edge-to-cloud thesis.What is in this PR
pyproject.tomlrenamed package totether; CLI entrypointtether = "tether.cli:app"src/tether/is now the canonical packagesrc/reflex/is a backwards-compat shim. Emits one DeprecationWarning on import, then forwards every symbol + submodule totethervia aMetaPathFindersoreflex.fixtures is tether.fixtures(one shared module object, no parallel state)src/reflex/_redirect.pyis wired as thereflexCLI entry point. Prints a deprecation banner to stderr, then forwards totether.cli:appsrc/tether/_compat_env.pymirrorsREFLEX_*env vars toTETHER_*at import time (idempotent; opt out viaTETHER_NO_ENV_COMPAT=1)reflex_*totether_*(caught two stragglers intest_observability_prometheus.py)test_sha256_large_fileexpected hash recomputed for the newtether-vla-sha256-testpayloadsrc/, docs/, workflows, Dockerfiles, READMEspip install reflex-vlabecomespip install tetherfrom reflex import Xbecomesfrom tether import X(shim keeps both working)Backwards compatibility
For 6+ months, the old names keep working with a DeprecationWarning:
from reflex import Xcontinues to workfrom reflex.fixtures import load_fixturescontinues to work (shared module object viaMetaPathFinder)reflex --helpCLI continues to work (forwards totether, banner on stderr)REFLEX_*env vars continue to be honored (mirrored toTETHER_*)pip install reflex-vlawill be deprecated on PyPI but continue workingShim is removed in v0.14.0 (~6 months from rename). See
tests/test_backwards_compat.pyfor the deprecation contract.Tests
tests/test_backwards_compat.py(4 tests) locks in the deprecation contract:refleximport emits a DeprecationWarningreflex.__version__ == tether.__version__reflex._redirect:mainentry point is importablereflex.fixtures is tether.fixtures(shared module object, not a parallel instance)Full suite: 2853 passed / 1 pre-existing slow test (test_pi05vla_from_lerobot_policy_extracts_paligemma_submodule; passes with 300s timeout) / 85 skipped. Run via
pip install -e ".[dev]" jsonschema onnxruntime opencv-python-headless msgpack pytest-timeoutthenpytest tests/ --timeout=60.Post-merge actions (user)
gh api -X PATCH /repos/FastCrest/reflex-vla -f name=tethertetherv0.12.0 to PyPIreflex-vlav0.12.0 stub (re-exports from tether + DeprecationWarning)Status
Complete. Final wiring of
src/tether/__init__.py,src/reflex/__init__.py(withMetaPathFinder),src/reflex/_redirect.py,tests/test_backwards_compat.py, and the SHA256 fixture fix landed. Backwards-compat tests passing; broader suite passing modulo one pre-existing slow lerobot model test.Generated with Claude Code (https://claude.com/claude-code)