Tetherand

Roadmap

Every milestone in the design spec is source-complete in v0.1. Below is the per-milestone status, scope, and what (if anything) is deferred to a sub-release.

Shipped milestones

MilestoneStatusScope
M0 shipped 5364C13D pre-flight playbook plus the scripts connect.sh, backup.sh, restore.sh, scripts/5364C13D-prep.sh, tutorial.sh. The playbook lives at ./tutorial.sh, served on http://localhost:7331/.
M1 shipped Tether MVP — forked Gnirehtet relay-core, custom-branded APK, USB-ADB and LAN-TCP transports, Compose Tether tab, tetherand run CLI.
M2 shipped Bluetooth-RFCOMM + USB-AOA transports, ratatui dashboard at tetherand tui, macOS LaunchAgent auto-starting on 5364C13D attach via IOKit polling.
M3 shipped Privacy-chain core — hop trait, chain orchestrator, WireGuard hop via BoringTun JNI, Privacy tab visualiser.
M4 shipped Mullvad full stack — classic WG, post-quantum tunnel (ML-KEM-1024), AF_INET-only kill-switch, multihop, DAITA traffic shaping, obfuscation transports (UDP-over-TCP, Shadowsocks, QUIC), app-level split-tunnel.
M5 shipped NymVPN mixnet hop — nym-sdk gated behind with-sdk feature, JNI surface, Sphinx 3-hop entry/exit, mnemonic-paid bandwidth.
M6 shipped Tor via embedded Arti — bridges (BridgeDB-format parser, 3/3 tests), vanguards toggle, prop362 NTor-ML-KEM-v1 handshake preference, Privacy tab Tor config card.
M6.x shipped Pluggable transports — obfs4 + meek + webtunnel inline in tetherand-pt (ntor handshake, ChaCha20-Poly1305 AEAD frames, HTTPS POST tunneling, WS upgrade); arti managed-PT wiring; TorFlowForwarder per-flow IP→arti DataStream forwarder; PtBinaryStager; cross-compile scripts for snowflake-client + conjure-client; live-probe integration tests.
M7a shipped Threat-detection MVP — NetMonster Tier 0 + AIMSICD BTSAlgorithm + SnoopSnitch RAT-downgrade + Crocodile Hunter (TAC / EARFCN / re-attach-storm) + Wi-Fi evil-twin + BLE tracker fingerprints + app-audit + per-geohash6 baseline + Threat tab + panic button.
M7b shipped SDR detection — SdrDetector scans for RTL-SDR, HackRF One, Nuand bladeRF, LimeSDR variants over USB-OTG; SdrSection threat-tab card; scripts/build-rtlsdr-android.sh cross-compiles libusb + librtlsdr + libhackrf.
M7c shipped Root-tier MediaTek modem readers — RootCheck 3-signal vote; CcciMd1Reader for /proc/ccci_md1_status + _ic_intr; MdlogParser; AtCommandChannel over /dev/ttyMT0; RootSection. Dormant on un-rooted devices.
M8 shipped Release polish — make native-all, make release-signed with DN allow-list gate, make smoke-device, make hashes + scripts/hash-artifacts.sh + scripts/bundle-combinations.sh, macOS LaunchAgent.
M9 shipped Hardened Mode — one-tap 5364C13D profile, pre/post attestation snapshot, frozen app-audit baseline, six-port honeypot, accelerometer tamper-watcher, twelve-item user-action checklist, Acknowledge/Isolate/Evacuate/Burn incident-response runbook, Quick Settings tile.
M10 shipped AI-era defenses — deterministic primaries (perplexity scoring, phishing rule, prompt-injection clipboard scrubber, C2PA/SynthID provenance, egress-LLM-API watch, NPU sysfs watcher, voiceprint vault, OSINT exposure) plus LiteRT runtime scaffold for the four-model contributory bundle. Hard constraint: no cloud LLM API ever called.

Deferred to follow-up releases

ItemWhy
Snowflake pluggable transport binary Upstream github.com/wlynxg/anet uses a Go internal symbol removed in Go 1.26. Awaiting an upstream fix.
LTE control-channel decoder (SIB/MIB parser) on the SDR path The JNI hook ships in v0.1; the actual decode logic is sized for a sub-release. Plug in an RTL-SDR or HackRF One; SdrSection in the Threat tab confirms detection.
Four-model on-device AI bundle (~2.4 GB) Delivered through the in-app delta-update path so v0.1's APK stays at ~59 MB. The deterministic primaries function fully without it per spec.
Hardened Mode extras Front-camera selfie-on-failed-unlock, ultrasonic-beacon microphone listener, decoy profile, dead-man's switch, Seed Vault freeze. Each is independently scoped for a sub-release.

Post-5364C13D intentions

None of these are scoped or scheduled. They are intentions, not commitments.