Add 9 capabilities to match IPW pipeline: Eval Pipeline: - AgenticRunner for multi-turn agent execution with per-turn trace decomposition - QueryTrace/TurnTrace data model for agentic workload telemetry - EventRecorder for thread-safe agent event collection - TerminalBenchTaskEnv for Docker-based task execution - Cost computation via engine/cloud.py PRICING table - Rich export: JSONL, HF Arrow, summary JSON, artifacts manifest - CLI: --agentic, --concurrency, --query-timeout flags Telemetry: - TelemetrySession with background-sampling ring buffer (Python fallback) - Phase metrics: prefill/decode energy split at TTFT boundary - ITL percentile tracking (p50/p90/p95/p99) - FLOPs estimation and MFU computation - EnergyMonitor.snapshot() method Rust Performance Layer: - Ring buffer with binary search O(log n) window queries - Trapezoidal energy integration - Phase metrics, ITL stats, FLOPs estimation in Rust - PyO3 bindings for all new telemetry modules (50 Rust tests) Savings Meter & Benchmarks: - Use-case benchmark datasets (coding, email, research, knowledge, morning brief) - Savings dashboard component with cost comparison visualization - Cloud cost calculator and comparison server routes - Use-case eval configs for multiple agent/engine combinations Tests: 80 new tests (3779 total pass, 37 skipped, 0 failures) Lint: ruff check src/ tests/ — all checks passed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
OpenJarvis Desktop
Tauri 2.0 native desktop application for OpenJarvis with auto-updates, energy monitoring, trace debugging, and learning visualization.
Development Setup
# Prerequisites: Node.js 22+, Rust stable, system deps (see below)
cd desktop
npm install
cargo tauri dev # Hot-reload development mode
cargo tauri build # Production build
Linux System Dependencies
sudo apt-get install -y \
libwebkit2gtk-4.1-dev libgtk-3-dev libappindicator3-dev \
librsvg2-dev patchelf libxdo-dev
Auto-Update Architecture
Every push to main (touching desktop/ or the workflow) triggers a CI pipeline that:
- Validates TypeScript + Rust (
validatejob) - Builds for Linux, macOS (ARM + Intel), and Windows (
build-and-releasejob) - Creates/updates a
desktop-latestpre-release on GitHub Releases - Uploads platform installers and a signed
latest.jsonmanifest
The desktop app checks latest.json on startup and every 30 minutes. When a newer version is found, it shows a banner prompting the user to download and relaunch.
Push to main -> CI builds -> desktop-latest release -> latest.json
|
Desktop app checks periodically <-------------------------+
-> "Update available" banner
-> Download in background
-> "Relaunch now" prompt
Releases
Rolling (Nightly)
Automatic on every push to main. Users on the desktop app receive updates seamlessly.
Stable (Versioned)
# Bump version in all 3 config files
./scripts/bump-desktop-version.sh 1.0.1
# Commit and tag
git add desktop/package.json desktop/src-tauri/tauri.conf.json desktop/src-tauri/Cargo.toml
git commit -m "chore(desktop): bump version to 1.0.1"
git tag desktop-v1.0.1
git push origin main --tags
CI creates a versioned GitHub Release (e.g., desktop-v1.0.1) with full installers.
Code Signing
Update Signing (Required for Auto-Updates)
Generate a key pair for signing update manifests:
cargo tauri signer generate -w ~/.tauri/openjarvis.key
Set the public key in src-tauri/tauri.conf.json under plugins.updater.pubkey, then add these GitHub Secrets:
| Secret | Description |
|---|---|
TAURI_SIGNING_PRIVATE_KEY |
Contents of the .key file |
TAURI_SIGNING_PRIVATE_KEY_PASSWORD |
Password used during generation |
macOS Notarization (Optional)
| Secret | Description |
|---|---|
APPLE_CERTIFICATE |
Base64-encoded .p12 certificate |
APPLE_CERTIFICATE_PASSWORD |
Certificate password |
APPLE_SIGNING_IDENTITY |
e.g., Developer ID Application: Name (TEAMID) |
APPLE_ID |
Apple ID email |
APPLE_PASSWORD |
App-specific password |
APPLE_TEAM_ID |
10-character team ID |
Windows Authenticode (Optional)
| Secret | Description |
|---|---|
WINDOWS_CERTIFICATE |
Base64-encoded .pfx certificate |
WINDOWS_CERTIFICATE_PASSWORD |
Certificate password |
All signing is optional — unsigned builds work without any secrets configured.
Dashboard Panels
- Energy — Real-time power monitoring (recharts)
- Traces — Timeline inspection with step-type color coding
- Learning — Policy visualization (GRPO/bandit stats)
- Memory — Search and stats for memory backends
- Admin — Health checks, agent management, server control