Skip to content

v2.51.0

Choose a tag to compare

@bigsk1 bigsk1 released this 22 Jun 11:02
· 19 commits to main since this release

Highlights

Experimental Docker Web Stack

Run Jarvis Web UIs and services in Docker on your own machine — local build only, no published image.

  • Added root Dockerfile and docker-compose.yml for Web UI, API, Canvas, Memory, Intelligence, Docs, and background services:

    • Reminders
    • Follow-up
    • Scheduled tasks
  • Bind-mounts your existing data/, config/, logs/, and audio/ directories.

    • Existing databases are reused.
    • Databases are not wiped on container recreate.
  • Hybrid use: run Web UIs in Docker while keeping wake word, CLI, and host-only tools native when desired.

  • Added tracked tool profile: skills/profiles/docker.json

    • Disables container-incompatible tools such as Spotify OAuth, SSH, host shell, OpenCode, and similar host-only tools.
  • Added internal container routing:

    • jarvis-api
    • jarvis-canvas
    • Docker-network service routing
  • Added optional API auth.

  • Added restart: unless-stopped.

  • Added crash-safe init locking.

  • Separated Docker-managed background services from the native cron watchdog.

  • Added Docker guides for Linux, macOS, and Windows using Docker Desktop:

  • Added opt-in MCP support through the Docker socket:

    • docker-compose.mcp.yml
    • Linux trusted-host setups only.

Memory, Profile, and Learning

  • Cross-turn correction learning

    • USER_CORRECTION_LEARNING_MODE=shadow|apply
    • Links turn-2 corrections to prior experiences.
    • Topic-pivot guard avoids false positives on new questions.
  • Profile Card

    • Compact operator context from jarvis-intel/user_profile.md.
    • Injected at router and synthesis boundaries.
    • Does not pollute Tool RAG.
  • user_model cache

    • Compiled profile card stored in SQLite.
    • ./bin/reconcile-profile reports drift versus memories and lessons for human review.
  • Memory type filtering

    • remember() now stamps memories as:

      • preference
      • fact
      • artifact
      • transient
    • Auto-inject can exclude noisy memory types.

    • Added ./bin/backfill-memory-types for existing rows.

  • Memory sync health

    • ./bin/check-memory-sync-health.py reports cloud/local drift.
    • sync-memory-db.py now syncs the user_model table.

Providers and Routing

  • OpenAI Responses API

    • Optional /v1/responses routing when OPENAI_API_MODE=responses.
    • Adapter includes Chat Completions fallback.
    • Hosted-tool gates.
    • Safer tool-result previews for follow-ups.
  • xAI

    • Added grok-build-0.1 to the model catalog.
    • Improved SDK client-tool routing.
    • Improved in-flight continuation behavior.
    • OpenAI SDK bumped to 2.24.0.
  • Anthropic

    • Added Claude Opus 4.8 to the model catalog.
  • Gemini video

    • Fixed 16:9 aspect ratio mapping.
  • Crypto charts

    • Improved Web UI and Canvas rendering for price charts.

Voice, Web UI, and Reliability

  • Fixed wake-word to Q&A handoff.

  • Fixed dashboard launch timing.

  • Orchestrator subprocess cancel path now drains stdout and stderr in a background thread.

    • Reduces hung tool calls on timeout or cancel.
  • Shared Web UI auth across Docker services:

    • Memory
    • Intelligence
    • Docs
  • Intelligence schema initializer now runs when required tables are missing.

    • Improves fresh install behavior.
  • Reminders

    • create_reminder now handles year parsing more reliably.
  • Skips redundant native server-side tools when Web upload vision is already attached.

Fixes & Polish

  • Pinned FastAPI <0.137 for Docker/API metrics compatibility with prometheus-fastapi-instrumentator.

  • Docker init improvements:

    • Profile content hash in sync marker.
    • flock-based init lock.
    • Separate logs/docker/ PID files.
    • Watchdog skips when Docker Compose is running.
  • Corrected unavailable fpdf2 dependency pin.

  • Wake-word script import cleanup.

  • Removed unused imports across services.

Docs & README

Upgrade Notes

Native Installs

Native workflow is unchanged:

git pull
source ~/jarvis-venv/bin/activate   # or your JARVIS_VENV
./bin/start --stop && ./bin/start

Optional after pull:

./bin/backfill-memory-types cloud    # and/or local
./bin/check-memory-sync-health.py cloud

Trying Docker

Docker support is experimental.

cp docker.env.example .env
cp config/cloud.env.example config/cloud.env
cp config/local.env.example config/local.env

docker compose build
docker compose up -d

Optional extras:

docker compose --profile extras up -d

See:

Do not run the native watchdog cron while Docker manages background services.

Local Mode in Docker

If the Web UI loops on tool_search after switching to local mode, run:

docker compose exec jarvis-api python bin/sync-tools.py local --force

PowerShell-friendly notes are available here:

New Optional Environment Variables

Review these new optional settings:

USER_CORRECTION_LEARNING_MODE=shadow|apply
AUTO_MEMORY_TYPE_FILTER_ENABLED=true
OPENAI_API_MODE=responses
OPENAI_RESPONSES_TOOLS=true
JARVIS_DOCKER_API_AUTH=

Notes:

  • OPENAI_API_MODE=responses and OPENAI_RESPONSES_TOOLS=true are OpenAI-only settings.
  • JARVIS_DOCKER_API_AUTH belongs in the root .env file for Docker API auth.

Links