Adds transcribeAudio() and fetchSpeechHealth() to the API client,
and the useSpeech React hook for managing mic recording lifecycle.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- .github/workflows/frontend.yml: type-check + build on push/PR
- ErrorBoundary component wraps App with catch + retry UI
- API client reads VITE_API_URL env var for non-same-origin deploys
- vite-env.d.ts declares ImportMetaEnv type
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rewrite .github/workflows/desktop.yml: 2-job pipeline (validate + build-and-release)
with rolling desktop-latest pre-release on push to main and stable desktop-v* releases
- Add UpdateChecker component: checks for updates on startup + every 30 min,
background download with progress bar, one-click relaunch
- Configure Tauri updater: endpoints pointing to desktop-latest release, pubkey placeholder
- Add tauri-plugin-process for relaunch support (Cargo.toml, lib.rs, package.json)
- Add macOS Entitlements.plist for notarization (network + file access, no sandbox)
- Add scripts/bump-desktop-version.sh for atomic version bumps across 3 config files
- Add desktop/README.md with dev setup, auto-update architecture, signing docs
- Update .gitignore for desktop/node_modules, dist, target
- Configure macOS minimumSystemVersion, Windows timestampUrl
- Include all Phase 14-21 work: agent hardening, RBAC, taint tracking, workflows,
skills, knowledge graph, sessions, A2A, MCP templates, WASM sandbox, TUI dashboard,
production tools, CLI expansion, API expansion, learning productionization,
Tauri desktop app, and 10 new channels
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add URL detection, normalization, and direct fetching to web_search tool
(handles standalone URLs, embedded URLs, arxiv PDF→abs conversion)
- Add URL pre-expansion in OpenHands agent to bypass tool loop for URL queries
- Add input truncation (_truncate_if_needed) to prevent context window overflow
- Fix stream_bridge ToolResult field access (content/latency_seconds vs output/latency_ms)
- Add XML tool call format parser alongside Action:/Action Input: format
- Reduce default max_turns from 10→3 to cap worst-case response time
- Add empty response fallback text in frontend useChat hook
- Add channels system, security module, and model catalog updates
- Add 30+ new tests for URL fetching, truncation, and agent behavior
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add React/TypeScript Chat UI frontend with sidebar, conversation management,
model selector, streaming indicator, and savings panel
- Wire up TelemetryStore in `jarvis serve` so TELEMETRY_RECORD events are
persisted to SQLite (matching the pattern from `jarvis ask`)
- Switch agents (orchestrator, react, openhands, openclaw_plugin) and the
direct route handler to use `instrumented_generate()` so token counts are
recorded and the /v1/savings endpoint returns real data
- Restyle savings panel model display with bordered card boxes (green accent
for local, orange for cloud) instead of plain text rows
- Add SGLang engine backend, dashboard routes, savings computation, and
agent-stream bridge for SSE streaming
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>