The transcribe_audio command uses reqwest::multipart which requires
the "multipart" feature flag on the reqwest crate.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Proxies multipart audio upload and health check to the Python backend
for the desktop app's speech-to-text integration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Build tray programmatically via TrayIconBuilder with menu items.
Show/Hide toggles main window visibility. Remove declarative
trayIcon config to avoid conflict with programmatic setup.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Previous .ico only had 16x16. Windows needs multiple sizes for
taskbar, title bar, and explorer icon display.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New SettingsPanel component with API URL, refresh interval, and
theme toggle. Wired into App.tsx as sixth tab.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add createUpdaterArtifacts: true to bundle config, which tells
cargo tauri build to produce .sig files alongside installers
- Update pubkey to match regenerated key (now with password)
- Without createUpdaterArtifacts, no .sig or .tar.gz updater bundles
are produced, so latest.json was never generated
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Set updater pubkey from generated signing keypair
- Fix endpoint URL to use HazyResearch/OpenJarvis (not jonsf)
- TAURI_SIGNING_PRIVATE_KEY configured as GitHub Secret
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add icons/icon.ico generated from 256x256.png (required for Windows resource file)
- Add icon.ico to bundle.icon list in tauri.conf.json
- Set APPLE_SIGNING_IDENTITY to '-' when APPLE_CERTIFICATE is not configured,
skipping codesign instead of failing with keychain import error
- Remove macos-13 matrix entry (Intel runners sunset by GitHub)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The tauri-apps/tauri-action runs `npx tauri build` which requires
@tauri-apps/cli to be installed as an npm dependency. Without it,
npx fails with "could not determine executable to run".
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>