Commit Graph
105 Commits
Author SHA1 Message Date
Jon Saad-FalconandGitHub ebe35582e3 Merge pull request #87 from open-jarvis/fix/mkdocs-roadmap-nav
fix: make Roadmap a nav section with Roadmap + Contributing Guide
2026-03-16 20:44:12 -07:00
Jon Saad-FalconandClaude Opus 4.6 856d27621d fix: rename Development tab to Roadmap with Roadmap + Contributing Guide sub-pages
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 03:38:13 +00:00
Jon Saad-FalconandGitHub 6d8e3da6e6 Merge pull request #86 from open-jarvis/docs/contributor-community-infra
docs: contributor docs, community infra, and roadmap rewrite
2026-03-16 20:30:32 -07:00
Jon Saad-FalconandClaude Opus 4.6 29beeed32d docs: add contributor docs, community infrastructure, and roadmap rewrite
- Add root CONTRIBUTING.md with incentives (paper acknowledgment, Mac Mini
  giveaway), contribution tiers, PR process, and maintainership path
- Add CODE_OF_CONDUCT.md (Contributor Covenant v2.1)
- Add .pre-commit-config.yaml with ruff lint + format hooks
- Add GitHub issue templates (bug report, feature request, new eval dataset)
- Add PR template with test/lint/format checklist
- Rewrite docs roadmap with GitHub Projects structure, current focus areas,
  and collapsible version history
- Remove Development section from MkDocs nav; replace with top-level Roadmap tab
- Delete changelog, extending docs (consolidated into CONTRIBUTING.md)
- Delete root ROADMAP.md (content now lives in docs site)
- Add pre-commit to dev extras in pyproject.toml
- Add Roadmap link to README

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 03:24:26 +00:00
Jon Saad-FalconandGitHub 8d22ae953d Merge pull request #84 from open-jarvis/feature/personal-ai-parity
feat: personal AI parity — memory files, prompt caching, gateway daemon, and more
2026-03-16 17:46:43 -07:00
Tarun SureshandClaude Opus 4.6 181d9ac0eb fix: resolve ruff I001 import sorting and E501 line length in tests
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 00:13:49 +00:00
Jon Saad-FalconandGitHub f228b0f24f Merge pull request #79 from 70Midnite07/fix/memory-retrieval-and-agent-manager
Reviewed and tested: zero new test failures vs main, Rust tests all pass (7/7 including 2 new). Added debug logging for memory injection errors and cleaned up .gitignore.
2026-03-16 16:58:08 -07:00
Jon Saad-FalconandClaude Opus 4.6 c36730320c chore: remove contributor-specific gitignore entry and log memory injection errors
- Remove openjarvis-bugfix-spec-v2.md from .gitignore (not a general pattern)
- Replace bare `except: pass` with debug logging in routes.py memory injection

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:57:55 -07:00
Gabriel Bo 14733433b0 adding pagination and limiting to 50 per sign up on leaderboard 2026-03-16 15:58:39 -07:00
Tarun SureshandClaude Opus 4.6 130dd99387 feat: create default SOUL.md, MEMORY.md, USER.md on jarvis init
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:44:03 +00:00
Tarun SureshandClaude Opus 4.6 981f665913 feat: add Anthropic prompt cache breakpoint annotation
Add _annotate_anthropic_cache helper that annotates system messages
with cache_control for Anthropic prompt caching.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:42:54 +00:00
Tarun SureshandClaude Opus 4.6 c6cca77c12 feat: add jarvis gateway start/stop/status/logs CLI commands
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:41:43 +00:00
Tarun SureshandClaude Opus 4.6 5df8688627 feat: add GatewayDaemon, SessionExpiryHook, and service file generation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:40:07 +00:00
Tarun SureshandClaude Opus 4.6 1359c223ec feat: wire SystemPromptBuilder into BaseAgent._build_messages()
Add optional prompt_builder parameter to BaseAgent. When provided,
_build_messages() uses builder.build() output instead of raw system_prompt.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:37:41 +00:00
Tarun SureshandClaude Opus 4.6 0d5be075f6 feat: add AgentExecutor.run_ephemeral() for one-shot agent turns
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:02:28 +00:00
Tarun SureshandClaude Opus 4.6 6371e7521d feat: add warn-before-block escalation to LoopGuard
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:01:13 +00:00
Tarun SureshandClaude Opus 4.6 4cc16972ec feat: add credential stripping, tool output wrapping, and severity policy
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:57:47 +00:00
Tarun SureshandClaude Opus 4.6 c1e01b1e8b feat: add SkillManageTool for agent-authored procedural memory
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:56:11 +00:00
Tarun SureshandClaude Opus 4.6 153435edb6 feat: add pluggable context compaction strategies via CompressionRegistry
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:53:47 +00:00
Jon Saad-FalconandGitHub 59b5295b20 Update ROADMAP.md 2026-03-16 10:51:36 -07:00
Tarun SureshandClaude Opus 4.6 978749e9f8 feat: add SystemPromptBuilder with frozen prefix and char limits
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:50:36 +00:00
Tarun SureshandClaude Opus 4.6 7abd65da26 feat: add MemoryManageTool and UserProfileManageTool for persistent personalization
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:45:55 +00:00
Micah 47a37fcca3 fix: wire memory backend into server and agent executor
The web UI chat endpoint and managed agent executor both skipped
  memory context injection entirely:

  - serve.py never created a memory backend
  - app.py received config but never stored it on app.state
  - executor.py never queried the FTS5 document store

  Now all three entry points (CLI, server, agents) inject retrieved
  context from the indexed knowledge base.
2026-03-16 00:42:32 -07:00
Micah 3ab601c717 Fix additional memory retrieval issues beyond PR #74
- Add porter stemming to FTS5 tokenizer (tokenize='porter unicode61')
  so plurals like 'medications' match 'Medication'
- Strip punctuation from FTS5 queries so question marks don't break MATCH
- Expand tilde (~) in db_path before opening SQLite connection
- Remove 'id' from FTS5 columns (UUIDs shouldn't be full-text indexed)
- Add memory context injection to server chat_completions route
  (routes.py had no memory integration - UI chat was never grounded)
- Fix agent name-to-ID resolution in agent_cmd.py (foreign key error)
- Align Python SQLiteMemory schema with Rust backend
2026-03-15 22:58:38 -07:00
Jon Saad-FalconandGitHub 4f87d3d07a Merge pull request #76 from xbsheng/fix/ssrf-check
fix: add SSRF check in WebSearchTool to prevent unsafe URL access
2026-03-15 21:25:23 -07:00
Jon Saad-Falcon 2a13505a1c fix: sort imports and mock SSRF check in web_search tests
Sort the check_ssrf import alphabetically to fix ruff I001. Mock the
SSRF check in URL-fetching tests since it requires the Rust backend
which isn't available in CI. Add a dedicated test verifying SSRF
rejection.
2026-03-15 21:18:46 -07:00
Jon Saad-FalconandGitHub 7be35021b7 Merge pull request #77 from open-jarvis/docs/roadmap-and-claude-md
docs: add project roadmap
2026-03-15 21:04:57 -07:00
Jon Saad-FalconandClaude Opus 4.6 1e9e8716cc docs: add project roadmap with five development workstreams
Public-facing roadmap organized into five independent workstreams:
1. Continuous Operators & Agents — hardening long-horizon autonomy
2. Mobile & Messaging Clients — iMessage, WhatsApp, Slack, SMS
3. Secure Cloud Collaboration — Minions-style hybrid inference, TEE
4. Tutorials & Documentation — filling gaps in continuous agents, tools, LM eval
5. Hardware Breadth — Intel Arc, Jetson Orin, Qualcomm, AMD Ryzen AI, RPi

Each item tagged with maturity level (Ready/Design Needed/Research-Stage)
and time horizon (near/mid/long-term) to guide contributors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 21:02:44 -07:00
xbsheng 9c3803828b fix: add SSRF check in WebSearchTool to prevent unsafe URL access 2026-03-16 10:41:02 +08:00
Jon Saad-FalconandGitHub 56583e819b Merge pull request #75 from open-jarvis/fix/desktop-macos-dmg-bundling
fix: pin macOS desktop build to macos-14 to fix DMG bundling
2026-03-15 18:38:12 -07:00
Jon Saad-FalconandClaude Opus 4.6 54a99692ba fix: pin macOS desktop build to macos-14 to fix DMG bundling
macos-latest now resolves to macOS 15 (Sequoia), which removed the
SetFile command from Xcode Command Line Tools. Tauri's bundle_dmg.sh
relies on SetFile to set custom icon attributes on the DMG volume,
causing the Desktop Build & Release workflow to fail on the macOS
runner.

Pin to macos-14 (Apple Silicon M1, Sonoma) which still includes
SetFile and supports universal binary builds.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 17:19:40 -07:00
cc1e14f1c3 fix: engine discovery fallback, FTS5 case/scoring, init engine picker, Windows support (#74)
- Engine discovery (#73): get_engine() now falls back to any healthy
  engine when the explicitly-requested key fails, instead of returning
  None. Fixes LM Studio (and other non-default engines) not being found
  when deploying agents.

- FTS5 case sensitivity & scoring (#67): Add explicit unicode61 tokenizer
  to the FTS5 virtual table for case-insensitive search. Replace ambiguous
  `rank` column with explicit `bm25()` call with column weights (id=0,
  content=1, source=0.5) to produce correct positive scores. Includes
  auto-migration for existing databases.

- Interactive engine selection (#72): `jarvis init` now detects running
  engines and presents an interactive picker. Also accepts `--engine`
  flag to skip the prompt. Engine choice flows through to config
  generation.

- Windows desktop support (#68): Add RAM detection via wmic, Windows
  binary paths (LOCALAPPDATA, ProgramFiles, cargo), port cleanup via
  netstat+taskkill, and USERPROFILE fallback for HOME env var.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 16:23:39 -07:00
afa50b0ff7 fix: parse tool_call arguments as dicts for OpenAI-compatible engines (#69)
messages_to_dicts() serializes tool_call arguments as JSON strings,
but OpenAI-compatible servers (vLLM, SGLang, llama.cpp, etc.) expect
them as JSON objects. This caused 400 Bad Request errors on every
multi-turn tool-calling conversation, breaking GAIA, DeepPlanning,
and LifelongAgent benchmarks for all local models.

The fix adds _fix_tool_call_arguments() to _OpenAICompatibleEngine
which json.loads() any string-typed arguments back to dicts before
sending. Applied to both generate() and stream() methods. This is
the same fix as commit 45c0e44 (Ollama), now applied to all
OpenAI-compatible engines.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 12:12:20 -07:00
Jon Saad-FalconandGitHub 51a2b4cceb feat: operatives tab improvements — 9 UX/functionality fixes (#63) 2026-03-14 21:31:38 -07:00
Jon Saad-FalconandGitHub 61d523a270 Merge pull request #65 from PatrickFFung/main
Running `uv run jarvis start` failed
2026-03-14 21:25:05 -07:00
Jon Saad-FalconandClaude Opus 4.6 5dc64872fd chore: remove superpowers plan/spec artifacts from repo
These are working files that should not be tracked per CLAUDE.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 04:23:38 +00:00
Jon Saad-FalconandClaude Opus 4.6 9083e8c2a8 fix: wrap Info icon in span for title tooltip (TS2322)
lucide-react SVG components don't accept `title` prop directly.
Wrap in a <span> element instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 04:15:14 +00:00
Jon Saad-FalconandClaude Opus 4.6 bc2742d97b fix(agents): crash fix, UX polish for Agents tab
1. Fix "Run Now" crash: handle list-type tools config in
   SystemBuilder._resolve_tools (was calling .split on a list)
2. Recover button: add toast feedback on success/failure
3. Schedule help: add Info icon tooltip explaining Manual/Cron/Interval
4. Interval picker: replace raw text input with h/m/s numeric spinners
5. Budget: add helper text clarifying cloud-only spend
6. Learning technique: add memory extraction strategy dropdown
7. Error logs: show error messages in trace entries, catch Run Now errors
8. handleRun: catch initial API errors instead of silently swallowing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 03:54:06 +00:00
Patrick Fung bb3053efca Add __main__.py entry point to enable CLI execution via python -m openjarvis.cli.
Previously, running `uv run jarvis start` would fail to start the process with error:
"No module named openjarvis.cli.__main__; 'openjarvis.cli' is a package and cannot be
directly executed" because the CLI package lacked an entry point.

Signed-off-by: Patrick Fung <patrick_fung@foxmail.com>
2026-03-15 10:31:13 +08:00
Jon Saad-FalconandGitHub 5f0a151be1 Merge pull request #62 from open-jarvis/fix/ui-dashboard-polish-2
fix(ui): center input, 2x3 energy grid, unify token counts
2026-03-14 18:05:07 -07:00
Jon Saad-FalconandClaude Opus 4.6 abd36af6b5 fix(ui): center input text, 2x3 energy grid, remove duplicate savings, unify token counts
- Center "Message OpenJarvis..." placeholder vertically in input area
- Restructure Energy Monitoring to 2x3 grid: promote thermal status and tokens processed to stat cards
- Add truncate to stat card values to prevent overflow
- Remove "Server-reported savings" section from Cost Comparison (redundant)
- Move asterisk disclaimer directly below divider
- Unify token counts: Energy Monitoring now uses savings store (same source as Cost Comparison)
- Round values to 1 decimal (except energy/token at 3 decimals and integer fields)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 00:59:39 +00:00
Jon Saad-FalconandGitHub 95281f9d0b Merge pull request #61 from open-jarvis/fix/ui-aesthetic-polish
fix(ui): polish chat and dashboard aesthetics
2026-03-14 17:23:48 -07:00
Jon Saad-FalconandClaude Opus 4.6 2cf67ac551 fix(ui): polish chat and dashboard aesthetics
- Change initial stream phase from "Connecting..." to "Generating..."
- Left-align "Loading model..." text in sidebar model badge
- Fix token count not updating by preferring client-side savings data
- Rename "Tokens" to "Output Tokens" in system panel
- Show input/output tokens in XRay footer with dash separators
- Fix EnergyDashboard to use shared API helpers (getBase) instead of raw env var

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 00:18:45 +00:00
Jon Saad-FalconandGitHub 4557fe2930 feat(security): wire guardrails into all entry points (#60) 2026-03-14 16:33:50 -07:00
Jon Saad-Falcon f458e19301 feat: instruction + model in agent wizard, error toasts, auto-run interval agents 2026-03-14 16:28:15 -07:00
Jon Saad-Falcon f54084e954 feat: wire AgentScheduler into server, register agents on create 2026-03-14 16:28:15 -07:00
Jon Saad-Falcon ba8b994ba8 feat: CLI version check against GitHub releases (daily, cached) 2026-03-14 16:28:15 -07:00
Jon Saad-Falcon 78ffebd5a3 feat: desktop auto-update — download in background, toast to restart 2026-03-14 16:28:15 -07:00
Jon Saad-Falcon cb3d571efe fix: write error to summary_memory on tick failure, inject standing instruction 2026-03-14 16:28:15 -07:00
Jon Saad-Falcon cbd59b1258 docs: add agent UX, auto-update, CLI version check spec and plan 2026-03-14 16:28:15 -07:00