v2.49.0
Jarvis v2.49.0
Release date: 2026-04-21
Previous version: v2.48.0
Highlights
v2.49.0 improves tool routing reliability, follow-up context, xAI native-search safety, intelligence auditability, dashboard performance, and Canvas links for headless/LAN setups.
What's New
Tool RAG: cleaner retrieval and better traces
- Tool RAG now embeds a compact current-request signal when possible instead of the whole routing prompt.
- Long learned-strategy, auto-memory, and recent-history blocks no longer dilute tool similarity as much.
TOOL_SIMILARITY_THRESHOLDis used for compact request paths.TOOL_SIMILARITY_THRESHOLD_FULLis used only for truefull_fallback.logs/tool-rag/now records final tools, schema char/token estimates, largest schema contributors, threshold, andsignal_source.
Follow-up extraction moved into a service
- Follow-up extraction was moved from
chat.pyintojarvis-web/server/services/followup_extractor.py. - Compatibility delegates remain in
chat.py. - Added compact follow-up context for
crawl_urlnested results. - Added compact URL history for MCP Brave web/news/local search results.
- Completion Guard now uses this richer follow-up/evidence path.
xAI native search guardrails
- Added optional xAI native/server-side tool budget controls:
XAI_SERVER_SIDE_MAX_TOOL_TURNS=5
XAI_SERVER_SIDE_MAX_SEARCHES_PER_REQUEST=10- These prevent native search/tool loops from multiplying across many Jarvis router turns.
- Native server-side tool usage is retained in metadata for audit/debugging.
Intelligence layer auditability
- Insights now keep stronger provenance:
- source experience ID
- source web conversation ID
- source query
- source tool sequence
- preferred tool sequence
- supporting tools
- reflection provider/model
- reflection token/cost metadata
- Evidence trails make it easier to audit where an insight came from.
- Multi-tool sequences are stored as advisory unless explicitly marked required.
- Secret-like values are redacted before intelligence storage/reflection.
Safer intelligence sync and maintenance
bin/sync-intelligence-db.pypreserves the new provenance/evidence fields.bin/run-intelligence-maintenance.py --dry-runpreviews decay changes before writing.- Jarvis Dashboard TUI exposes the dry-run maintenance option.
Intelligence Dashboard performance
- Experiences and Insights now load in 50-row pages with automatic infinite scroll.
- Sidebar counts/facets use lightweight summary endpoints.
- Sorting and filtering now happen server-side before pagination, so sorting covers the full dataset.
- Raw experience data still loads only when opening a detail modal.
Canvas LAN/public links
- Canvas now separates internal API URL from public clickable URL:
CANVAS_INTERNAL_URL="http://localhost:8890"
CANVAS_PUBLIC_URL="http://192.168.70.228:8890"- Canvas tool responses and memory entries use the public URL.
- Direct
/page_...links now work after auth and select the correct Canvas page. - This fixes headless Jarvis servers accessed from other LAN machines.
Auto-context cleanup
- Auto-context freshness checks now use shared
lib/time_utils.py. - Reduced noisy auto-context instructions that referenced unavailable tools.
Docs Updated
README.mddocs/README.mddocs/TOOL_CALLING_SYSTEM.mddocs/JARVIS_WEB_UI.mddocs/COMPLETION_GUARD.mddocs/INTELLIGENCE_LAYER.mddocs/XAI_PROVIDER.mddocs/CANVAS_SYSTEM.md
Verification
Key checks from this release work:
python -m pytest tests/test_intelligence_maintenance.py tests/test_intelligence_provenance.py tests/test_intelligence_server_side_tools.py
# 21 passed
python -m pytest tests/test_canvas_image_embed.py tests/test_canvas_sources_urls.py tests/test_canvas_direct_links.py
# 13 passed
node --check jarvis-intelligence/client/js/app.js
node --check jarvis-intelligence/client/js/api.js
git diff --checkUpgrade Notes
Optional settings worth reviewing:
TOOL_RAG_TRACE_ENABLED=true
TOOL_SIMILARITY_THRESHOLD=0.23
TOOL_SIMILARITY_THRESHOLD_FULL=0.40
# Optional hard budget for xAI native search/tool loops
# XAI_SERVER_SIDE_MAX_TOOL_TURNS=5
# XAI_SERVER_SIDE_MAX_SEARCHES_PER_REQUEST=10
# For headless/LAN Canvas deployments
CANVAS_INTERNAL_URL="http://localhost:8890"
CANVAS_PUBLIC_URL="http://your-jarvis-host-ip:8890"Restart the web, canvas, and intelligence services after pulling this release.