v2.51.0
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
Dockerfileanddocker-compose.ymlfor Web UI, API, Canvas, Memory, Intelligence, Docs, and background services:- Reminders
- Follow-up
- Scheduled tasks
-
Bind-mounts your existing
data/,config/,logs/, andaudio/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-apijarvis-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.
- Compact operator context from
-
user_modelcache- Compiled profile card stored in SQLite.
./bin/reconcile-profilereports drift versus memories and lessons for human review.
-
Memory type filtering
-
remember()now stamps memories as:preferencefactartifacttransient
-
Auto-inject can exclude noisy memory types.
-
Added
./bin/backfill-memory-typesfor existing rows.
-
-
Memory sync health
./bin/check-memory-sync-health.pyreports cloud/local drift.sync-memory-db.pynow syncs theuser_modeltable.
Providers and Routing
-
OpenAI Responses API
- Optional
/v1/responsesrouting whenOPENAI_API_MODE=responses. - Adapter includes Chat Completions fallback.
- Hosted-tool gates.
- Safer tool-result previews for follow-ups.
- Optional
-
xAI
- Added
grok-build-0.1to the model catalog. - Improved SDK client-tool routing.
- Improved in-flight continuation behavior.
- OpenAI SDK bumped to 2.24.0.
- Added
-
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
stdoutandstderrin 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_remindernow handles year parsing more reliably.
-
Skips redundant native server-side tools when Web upload vision is already attached.
Fixes & Polish
-
Pinned FastAPI
<0.137for Docker/API metrics compatibility withprometheus-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
fpdf2dependency pin. -
Wake-word script import cleanup.
-
Removed unused imports across services.
Docs & README
-
Full docs audit refresh, passes 1–4.
-
Archived stale planning docs.
-
Split Docker user guide and planning docs:
-
Updated:
- Config examples
- Provider docs
- Web UI layout docs
- Install guide
-
Added watchdog cron note for Docker users.
-
Updated README banner.
-
Refreshed Web UI screenshots.
Upgrade Notes
Native Installs
Native workflow is unchanged:
git pull
source ~/jarvis-venv/bin/activate # or your JARVIS_VENV
./bin/start --stop && ./bin/startOptional after pull:
./bin/backfill-memory-types cloud # and/or local
./bin/check-memory-sync-health.py cloudTrying 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 -dOptional extras:
docker compose --profile extras up -dSee:
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 --forcePowerShell-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=responsesandOPENAI_RESPONSES_TOOLS=trueare OpenAI-only settings.JARVIS_DOCKER_API_AUTHbelongs in the root.envfile for Docker API auth.
Links
- Full changelog:
[docs/README.md](https://github.com/bigsk1/jarvis-voice/docs/README.md)— see the Change Log section. - Previous release:
v2.50.1