Skip to content

feat(runtime): make Rust the sole Wayfinder runtime#114

Merged
tcballard merged 3 commits into
mainfrom
codex/rust-only-cutover
Jul 24, 2026
Merged

feat(runtime): make Rust the sole Wayfinder runtime#114
tcballard merged 3 commits into
mainfrom
codex/rust-only-cutover

Conversation

@tcballard

Copy link
Copy Markdown
Contributor

Summary

Completes the Wayfinder router rewrite by making Rust the sole production implementation. This removes the retired Python runtime, fallback/delegation, package release, tests, benchmarks, and fixture generators rather than merely suppressing their CI failures.

Scope

  • removes all tracked Python source and packaging metadata;
  • removes PyPI publishing and Python-owned CI;
  • removes CLI delegation and makes legacy coexistence commands fail closed;
  • reports the native command set with gateway_ready: true;
  • builds the container from the Rust workspace;
  • retains checked migration fixtures as immutable Rust test inputs;
  • updates release, contributor, setup, and migration contracts around the native Desktop product.

Product / Architecture Decisions

WF-ADR-0046 accepts Rust as Wayfinder's sole router and gateway runtime and closes WF-ROADMAP-0014.

Native Swift continues to own Desktop Chat and setup. The Rust gateway remains the source of truth for routing and delivery. This does not broaden the credential broker, make Apple the preferred default, or change Automatic routing.

The removed calibrate, recalibrate, webchat, ui, chat, onboard, judge, init, doctor, and keys surfaces are not silently emulated. They return a deterministic unsupported-command error until a reviewed native user journey justifies a replacement.

User-facing contract

  • Wayfinder Desktop remains a SemVer product with its Rust gateway embedded and versioned as part of the app.
  • Building, testing, running, containerizing, and releasing Wayfinder no longer requires Python.
  • The old PyPI package is retired and is not a release or rollback channel.
  • Existing routing behavior, Apple availability gating, ChatGPT opt-in behavior, and credential boundaries are unchanged.

Verification

  • cargo fmt --manifest-path rust/Cargo.toml --all -- --check
  • cargo test --manifest-path rust/Cargo.toml --workspace --all-features --locked
  • cargo clippy --manifest-path rust/Cargo.toml --workspace --all-targets --all-features --locked -- -D warnings
  • swift test --package-path macos/WayfinderMac — 174 tests passed
  • node clients/shared/test/parity.mjs — 21/21 score, routing, and feature vectors passed
  • cargo +1.85.0 build --manifest-path rust/Cargo.toml --package wayfinder-cli --bin wayfinder-router --release --locked
  • capability smoke: Rust implementation, native-only command set, empty delegation, gateway_ready: true
  • fail-closed smoke: a removed command exits 2 even with WAYFINDER_PYTHON_EXECUTABLE=/bin/false
  • repository audit: zero .py files and zero executable Python/install references

Docker is not installed on the development Mac, so the updated multi-stage Rust image is left to the required remote Docker check.

Review Path

  1. Review WF-ADR-0046 and the completed WF-ROADMAP-0014 contract.
  2. Review the CLI capability/delegation removal and fail-closed tests.
  3. Review CI, Docker, release-workflow, and packaging changes.
  4. Treat the large deletion set as removal of the retired implementation; review retained Rust/Swift behavior separately.
  5. Confirm remote Rust, Docker, client-contract, and desktop checks before merge.

Notes

This PR is intentionally separate from PR #113 and is based on main. It does not contain the per-message route-mention work.

…AP-0014]

Remove the retired Python implementation, delegation, package release, generated fixture tooling, and Python-owned CI. Make the native Rust gateway authoritative across capabilities, containers, desktop packaging, and contributor guidance, with legacy commands failing closed under WF-ADR-0046.
…ROADMAP-0016]

Implements the Phase 0 source-of-truth boundary for native iPhone and iPad development.

Adds:
- independent mobile product and shared Rust routing-core ADRs
- provider, OAuth, Keychain, Apple model, and pairing contracts
- v0.2.0/v0.2.1 delivery roadmap and capability matrix
- conservative Kimi account-auth qualification
- supersession links across current macOS and Rust documents
…016]

Rename the authoritative scorer as wayfinder-routing-core, add
secret-free runtime contracts and deterministic eligibility planning,
and prove gateway/embedded parity without changing gateway behavior.
@tcballard
tcballard marked this pull request as ready for review July 24, 2026 10:39
@tcballard
tcballard merged commit 061b45e into main Jul 24, 2026
6 checks passed
@tcballard
tcballard deleted the codex/rust-only-cutover branch July 24, 2026 10:46
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.

1 participant