Tera Pilot v2.3.6
v2.3.6 — Offline license issuance, landing redesign, reporting fixes
Seller-side offline licensing
- New
tera-pilot license gen-keypair --out <dir>+tera-pilot license issue --private-key <key.pem> --customer <id> [--tier pro] [--expires ISO] [--features a,b,c]— issue Ed25519-signed Pro license keys entirely offline: the private key never leaves the seller's machine, no network call, zero telemetry. Customers verify withtera-pilot license activate <key>against the embedded public key — no license server, no phone-home. licensing.issue_license()/load_private_key()helpers with early validation (rejects pastexpires_at, empty keys) — seeLICENSING.md.
Landing page
index.htmlrefreshed for the current feature set: 17 providers (incl. the keylesslocalOpenAI-compatible endpoint), OS-level sandbox, SSRF-hardenedweb_fetch, offline licensing, security metrics (210 security/sandbox tests, 58 eval tasks, 5 fixed offensive findings).- New visual system: glassmorphism cards with orbiting gradient borders + hover shine, film grain, floating particles and mouse parallax background, nav scrollspy with animated underlines, terminal 3D tilt, staggered hero entrances — everything disabled under
prefers-reduced-motion.
Reporting & API fixes
- The agent SSE
doneevent now reports the real provider/model and runtime-accumulated token usage even when auto-routing is disabled — the eval harness no longer recordsNone/0. save_settingsdrops unknown provider ids (a strayproviders.undefinedfrom the UI can no longer corrupt the persisted config or warn on every startup).- Chat-mode
doneevent reports an honest cancel state — a stopped generation no longer looks like a normal completion.
Web UI / TUI reliability
- Web UI works when served over LAN (
--host 0.0.0.0): the frontend now uses the page's own origin as the API base instead of its own loopback, so remote browsers in demo mode survive. - Notifier
status()no longer self-deadlocks (RLockinstead ofLock) — the TUI/notifycommand can't freeze the UI anymore. - TUI: provider switch now also configures the model; QuickSettings "Advanced…" hands off to the full model palette; duplicate agent-error rendering suppressed.
Tests
- New coverage: seller-side license issuance (CLI +
licensing), extended API endpoints, TUI integration/widgets, npm version marker. - Full suite: 664 passed, 20 skipped (684 total).
Version 2.3.6 is in sync everywhere (npm, pip, Web UI, TUI, auto-updater, tests).