Skip to content

Tera Pilot v2.3.6

Choose a tag to compare

@ilyaosovskoi ilyaosovskoi released this 23 Aug 09:39
· 23 commits to main since this release

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 with tera-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 past expires_at, empty keys) — see LICENSING.md.

Landing page

  • index.html refreshed for the current feature set: 17 providers (incl. the keyless local OpenAI-compatible endpoint), OS-level sandbox, SSRF-hardened web_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 done event now reports the real provider/model and runtime-accumulated token usage even when auto-routing is disabled — the eval harness no longer records None/0.
  • save_settings drops unknown provider ids (a stray providers.undefined from the UI can no longer corrupt the persisted config or warn on every startup).
  • Chat-mode done event 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 (RLock instead of Lock) — the TUI /notify command 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).