v0.4.0
What's New
Setup Wizard Improvements
- Unique app names — generates
tescmd-<hex>names to prevent collisions on the Tesla Developer Portal - Phase reorder — keys → registration → OAuth → enrollment for a smoother flow
- Key mismatch warning — detects when remote public key differs from local key before Phase 2
- Auto-save credentials —
.envwritten automatically; removed the save prompt --forceflag — regenerates app name and re-runs all setup phases
Gateway & Dispatcher Fixes
- Concurrent recv prevention —
connect()cancels any existing receive loop before starting a new one, fixing aConcurrencyErrorrace condition system.runbot compat — accepts bothmethodandcommandkeys; normalizes list-typed values from gateway bots
Auth & Deploy
- In-process KeyServer — ephemeral HTTP server for Tailscale Funnel during setup
- Atomic Tailscale serve + Funnel — single CLI command instead of separate calls
- CLI/HTTP isolation — moved
httpx.get()out of CLI module into deploy layer - Proper
stop_funnel()cleanup — uses the TailscaleManager abstraction instead of low-level_run()
Documentation
- README rewrite — concise, scannable marketing copy (503 → 210 lines)
- Screenshots — TUI dashboard, navigation waypoints, MCP integration
Full Changelog: https://github.com/Oceanswave/tescmd/blob/main/CHANGELOG.md