mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-30 10:52:15 +00:00
- 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>
116 lines
6.9 KiB
Markdown
116 lines
6.9 KiB
Markdown
# OpenJarvis Roadmap Progress
|
|
|
|
Last updated: 2026-02-27
|
|
|
|
## Phase 17: Production Tool Parity
|
|
|
|
### Core Tools
|
|
- [x] `FileWriteTool` — `src/openjarvis/tools/file_write.py` + `tests/tools/test_file_write.py` (16 tests)
|
|
- [x] `ApplyPatchTool` — `src/openjarvis/tools/apply_patch.py` + `tests/tools/test_apply_patch.py` (13 tests)
|
|
- [x] `ShellExecTool` — `src/openjarvis/tools/shell_exec.py` + `tests/tools/test_shell_exec.py` (19 tests)
|
|
- [x] `GitTool` (4 ops) — `src/openjarvis/tools/git_tool.py` + `tests/tools/test_git_tool.py` (41 tests)
|
|
- [x] `HttpRequestTool` — `src/openjarvis/tools/http_request.py` + `tests/tools/test_http_request.py` (21 tests)
|
|
- [x] `DatabaseQueryTool` — `src/openjarvis/tools/db_query.py` + `tests/tools/test_db_query.py` (26 tests)
|
|
|
|
### Inter-Agent Tools
|
|
- [x] `AgentSpawnTool` — `src/openjarvis/tools/agent_tools.py` + `tests/tools/test_agent_tools.py`
|
|
- [x] `AgentSendTool` — (same file)
|
|
- [x] `AgentListTool` — (same file)
|
|
- [x] `AgentKillTool` — (same file, 22 tests total)
|
|
|
|
### Browser Automation
|
|
- [x] `BrowserNavigateTool` — `src/openjarvis/tools/browser.py` + `tests/tools/test_browser.py`
|
|
- [x] `BrowserClickTool` — (same file)
|
|
- [x] `BrowserTypeTool` — (same file)
|
|
- [x] `BrowserScreenshotTool` — (same file)
|
|
- [x] `BrowserExtractTool` — (same file, 71 tests total)
|
|
|
|
### Media Tools
|
|
- [x] `ImageGenerateTool` — `src/openjarvis/tools/image_tool.py` + `tests/tools/test_image_tool.py` (12 tests)
|
|
- [x] `AudioTranscribeTool` — `src/openjarvis/tools/audio_tool.py` + `tests/tools/test_audio_tool.py` (17 tests)
|
|
- [x] `PDFExtractTool` — `src/openjarvis/tools/pdf_tool.py` + `tests/tools/test_pdf_tool.py` (19 tests)
|
|
|
|
### Security Hardening
|
|
- [x] SSRF protection — `src/openjarvis/security/ssrf.py` + `tests/security/test_ssrf.py` (18 tests)
|
|
- [x] Subprocess sandbox — `src/openjarvis/security/subprocess_sandbox.py` + `tests/security/test_subprocess_sandbox.py` (11 tests)
|
|
- [x] Prompt injection scanner — `src/openjarvis/security/injection_scanner.py` + `tests/security/test_injection_scanner.py` (10 tests)
|
|
- [x] Rate limiting — `src/openjarvis/security/rate_limiter.py` + `tests/security/test_rate_limiter.py` (12 tests)
|
|
- [x] Security headers middleware — `src/openjarvis/server/middleware.py` + `tests/server/test_middleware.py` (4 tests)
|
|
|
|
### Config & Integration
|
|
- [x] New extras in `pyproject.toml`: `browser`, `media`, `pdf`, channel extras for Phase 21
|
|
- [x] `ToolsConfig.browser` section added to `config.py` (`BrowserConfig`: headless, timeout_ms, viewport)
|
|
- [x] `SecurityConfig.ssrf_protection`, `rate_limit_enabled`, `rate_limit_rpm`, `rate_limit_burst` fields
|
|
|
|
## Phase 18: CLI & API Expansion
|
|
|
|
### CLI Commands
|
|
- [x] `jarvis start/stop/restart/status` — `src/openjarvis/cli/daemon_cmd.py` + `tests/cli/test_daemon_cmd.py` (7 tests)
|
|
- [x] `jarvis chat` — `src/openjarvis/cli/chat_cmd.py` + `tests/cli/test_chat_cmd.py` (6 tests)
|
|
- [x] `jarvis agent` — `src/openjarvis/cli/agent_cmd.py` + `tests/cli/test_agent_cmd.py` (3 tests)
|
|
- [x] `jarvis workflow` — `src/openjarvis/cli/workflow_cmd.py` + `tests/cli/test_workflow_cmd.py` (4 tests)
|
|
- [x] `jarvis skill` — `src/openjarvis/cli/skill_cmd.py` + `tests/cli/test_skill_cmd.py` (4 tests)
|
|
- [x] `jarvis vault` — `src/openjarvis/cli/vault_cmd.py` + `tests/cli/test_vault_cmd.py` (6 tests)
|
|
- [x] `jarvis add` — `src/openjarvis/cli/add_cmd.py` + `tests/cli/test_add_cmd.py` (5 tests)
|
|
|
|
### API Endpoints
|
|
- [x] Agent API endpoints — `src/openjarvis/server/api_routes.py`
|
|
- [x] Workflow API endpoints — (same file)
|
|
- [x] Memory API endpoints — (same file)
|
|
- [x] Traces API endpoints — (same file)
|
|
- [x] Telemetry API endpoints — (same file)
|
|
- [x] Skills API endpoints — (same file)
|
|
- [x] Sessions API endpoints — (same file)
|
|
- [x] Budget API endpoints — (same file)
|
|
- [x] Prometheus metrics — (same file)
|
|
- [x] Security headers middleware wired into app — `src/openjarvis/server/app.py`
|
|
- [x] All routes tested — `tests/server/test_api_routes.py` (11 tests)
|
|
- [x] WebSocket streaming endpoint — `WS /v1/chat/stream` + `tests/server/test_websocket.py` (9 tests)
|
|
|
|
## Phase 19: Learning System Productionization
|
|
- [x] GRPO Router — `src/openjarvis/learning/grpo_policy.py` (replaced stub) + `tests/learning/test_grpo_policy.py` (13 tests)
|
|
- [x] Multi-Armed Bandit Router — `src/openjarvis/learning/bandit_router.py` + `tests/learning/test_bandit_router.py` (13 tests)
|
|
- [x] Closed-Loop Skill Discovery — `src/openjarvis/learning/skill_discovery.py` + `tests/learning/test_skill_discovery.py` (10 tests)
|
|
- [x] Auto-Apply ICL Updates — modified `src/openjarvis/learning/icl_updater.py` + `tests/learning/test_icl_updates.py` (13 tests)
|
|
- [x] Learning Dashboard API — `GET /v1/learning/stats`, `GET /v1/learning/policy` + `tests/learning/test_learning_api.py` (8 tests)
|
|
|
|
## Phase 20: Desktop App (Tauri 2.0)
|
|
- [x] Tauri scaffold in `desktop/` — `src-tauri/`, `package.json`, `vite.config.ts`, `tsconfig.json`
|
|
- [x] Tauri Rust backend — `src-tauri/src/lib.rs` with 11 commands (health, energy, telemetry, traces, learning, memory, agents, jarvis CLI)
|
|
- [x] Tauri plugins — notification, shell, global-shortcut, autostart, updater, single-instance
|
|
- [x] Energy dashboard — `src/components/EnergyDashboard.tsx` (recharts line chart, auto-refresh)
|
|
- [x] Trace debugger — `src/components/TraceDebugger.tsx` (dual-panel, color-coded step timeline)
|
|
- [x] Learning curve visualization — `src/components/LearningCurve.tsx` (GRPO/bandit/ICL stats)
|
|
- [x] Memory browser — `src/components/MemoryBrowser.tsx` (search + stats)
|
|
- [x] Admin panel — `src/components/AdminPanel.tsx` (health, agents, server control)
|
|
- [x] Build successful — `.deb`, `.rpm`, `.AppImage` bundles produced
|
|
- [x] CI workflow — `.github/workflows/desktop.yml` (Linux/macOS/Windows matrix)
|
|
|
|
## Phase 21: Channels
|
|
- [x] LINE — `src/openjarvis/channels/line_channel.py`
|
|
- [x] Viber — `src/openjarvis/channels/viber_channel.py`
|
|
- [x] Facebook Messenger — `src/openjarvis/channels/messenger_channel.py`
|
|
- [x] Reddit — `src/openjarvis/channels/reddit_channel.py`
|
|
- [x] Mastodon — `src/openjarvis/channels/mastodon_channel.py`
|
|
- [x] XMPP — `src/openjarvis/channels/xmpp_channel.py`
|
|
- [x] Rocket.Chat — `src/openjarvis/channels/rocketchat_channel.py`
|
|
- [x] Zulip — `src/openjarvis/channels/zulip_channel.py`
|
|
- [x] Twitch — `src/openjarvis/channels/twitch_channel.py`
|
|
- [x] Nostr — `src/openjarvis/channels/nostr_channel.py`
|
|
- [x] All channels tested — `tests/channels/test_channels_phase21.py` (103 tests)
|
|
|
|
## Test Summary
|
|
|
|
| Phase | New Tests | Cumulative |
|
|
|-------|-----------|------------|
|
|
| Pre-existing | ~2,447 | 2,447 |
|
|
| Phase 17 | ~300 | ~2,747 |
|
|
| Phase 18 | ~56 | ~2,803 |
|
|
| Phase 19 | ~49 | ~2,852 |
|
|
| Phase 21 | ~103 | ~2,923 |
|
|
| WebSocket + Learning API | ~17 | ~2,940 |
|
|
| **Verified total** | | **2,997 passed, 42 skipped** |
|
|
|
|
## CLAUDE.md
|
|
- [x] Updated with all new tools, CLI commands, API endpoints, channels, learning policies, desktop app, config fields, and phase table
|