URSA-OSCAR 1.1.2 — Settings polish + README AI value-prop
URSA-OSCAR 1.1.2
Settings polish ahead of the community launch.
Fixed in 1.1.2
-
Test connection button reflects the saved config, not in-flight edits (
frontend/src/pages/SettingsAi.tsx). The button used to enable the moment the operator typed an API key, but the/ai/testendpoint probes the persisted config. The disagreement produced a confusing 400 ("no provider configured") when the operator clicked Test before clicking Save. Five disabled states now, each with a tooltip that names the missing piece: no provider saved, selected provider not saved, no key saved, in-flight edits diverge from saved state, or ready to fire. Local LLM presets withsupports_local_routing=trueskip the key requirement (most local servers accept empty auth). -
Gemini provider preset refreshed (
backend/src/ursa_oscar/ai_proxy/providers/presets.py). The default model list shipped withgemini-2.0-flash-expandgemini-1.5-pro(both deprecated by Google as of May 2026) andgemini-1.5-flash(on the deprecation track). Replaced withgemini-3.5-flash. The freeform model field still accepts any model string for operators who want a specific snapshot. Also rolled OpenRouter's stalegoogle/gemini-2.0-flashdefault togoogle/gemini-3.5-flash.
README addition
The README now includes a section on the AI value proposition: the MCP-exposed-data-plus-specialized-AI-conversation pattern that motivated URSA in the first place, and the in-app AI assistant as the fallback path for deployments that can't expose a public MCP endpoint. The reusable architectural pattern is linked to the new template repo at https://github.com/burrellka/mcp-server-template.
No data migrations
No env-var changes. Same /data volume layout. Upgrade is docker compose pull && docker compose up -d --force-recreate.
Architecturally locked in 1.0 (carried into 1.1.x)
- Single-tenant. One operator, one instance.
- Self-hosted. No cloud sync, no SaaS option.
- Password authentication only. No SSO / OAuth providers for operator login.
- No email password recovery. Recovery is filesystem-level (delete
auth.json, re-bootstrap). - Statistical method declaration in every analytical response.
- Sample-size discipline as refusals, not warnings (
INSUFFICIENT_DATAreturns when below the floor).
Docker images
All four images are available at brain40/ursa-oscar-*:1.1.2 + :latest:
brain40/ursa-oscar-api:1.1.2brain40/ursa-oscar-mcp:1.1.2brain40/ursa-oscar-web:1.1.2brain40/ursa-oscar-watcher:1.1.2
Upgrade
Operators on 1.0.x, 1.1.0, or 1.1.1: bump the four image tags to 1.1.2 and docker compose up -d --force-recreate. No data migrations.
Test coverage
- Backend: 350+ tests pass (including 50/50 AI proxy)
- MCP: 40+ tests pass
- Watcher: 25+ tests pass
- Frontend:
tsc -b && vite buildclean
License
GNU GPL-3.0-or-later, preserving OSCAR's license terms.
Attribution
Built in the spirit and license terms of the OSCAR project. URSA-OSCAR is independent of OSCAR (different codebase, different deployment model) but downstream of OSCAR's file-format work.