Skip to content

URSA-OSCAR 1.1.2 — Settings polish + README AI value-prop

Choose a tag to compare

@burrellka burrellka released this 22 May 16:13
· 28 commits to main since this release

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/test endpoint 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 with supports_local_routing=true skip 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 with gemini-2.0-flash-exp and gemini-1.5-pro (both deprecated by Google as of May 2026) and gemini-1.5-flash (on the deprecation track). Replaced with gemini-3.5-flash. The freeform model field still accepts any model string for operators who want a specific snapshot. Also rolled OpenRouter's stale google/gemini-2.0-flash default to google/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_DATA returns 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.2
  • brain40/ursa-oscar-mcp:1.1.2
  • brain40/ursa-oscar-web:1.1.2
  • brain40/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 build clean

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.