Skip to content

MIRA v0.321.3 — public beta

Pre-release
Pre-release

Choose a tag to compare

@tarekedOz tarekedOz released this 29 Jul 15:51

MIRA v0.321.3 — public beta

MIRA is a self-hostable AI assistant that runs as a single binary. Published by Vexillon under AGPL-3.0-or-later.

Public beta. Supersedes v0.318.7. This release rolls up a security- and reliability-hardening series (v0.319.0 → v0.321.3). No breaking changes — safe to upgrade in place. A few new opt-in settings are noted below.

Account & access security

  • Single sign-on now requires a verified email. MIRA no longer links or provisions an account from an SSO/OIDC login whose provider hasn't confirmed the email address, closing an account-takeover path. If you deliberately trust a provider that doesn't assert verification, there's a new per-provider opt-in, auth.oidc.providers[].trust_unverified_email (default off).
  • "Sign out everywhere" is now immediate. Revoking a user's access takes effect at once for every active session and token, instead of waiting for short-lived tokens to expire.
  • Tool endpoints enforce your role's permissions. Running a tool over the API (/api/tools/run) and scheduled automations now honor the caller's capability allowlist, so a restricted user can't reach a tool their role forbids. Several admin-only operations (model listing, MCP runtime install, operator config fetch) are now properly gated, and per-route upload size limits were added.
  • Server-side protection against request forgery (SSRF). User- or admin-supplied URLs for calendar (CalDAV) sync, health webhooks, and provider fetches are validated and won't follow redirects into loopback or cloud-metadata addresses. Self-hosted services on your LAN stay reachable.
  • Authenticated-sender allowlist for email. A new per-account option, require_authenticated_allowlist (default off), only grants allowlist trust to a sender whose message actually passed SPF/DKIM/DMARC — so a forged From: can't impersonate an allowlisted address.
  • The first-run admin password is written to the console only, never to the log file. And a member's "don't record this" request is now honored server-side across memory and the wiki.

Companion safety

  • Urgent alerts are never masked by milder ones. Distress de-duplication is now severity-aware: an acute alert is always delivered even if a lower-severity alert went out recently. Very short messages (e.g. "help") are no longer dropped by length filtering.
  • Check-in tracking is more accurate. A genuine inbound message on any channel resets the missed-check-in counter, escalation still fires under small thresholds, and a web check-in only counts as received once delivery is actually confirmed (an active push subscription).
  • Safety-path failures are visible. If a distress alert fails to send, or the distress classifier is unavailable, it now shows up as a health-page degradation with a toast — not a silent audit-log entry.

Reliability

  • Releases are gated on the full test suite in CI.
  • Config saves are atomic (temp file + fsync + rename + backup), so an interrupted or racing save can't truncate your live config.
  • Interval schedules no longer drift — repeat runs stay on a fixed grid anchored to the schedule's creation time.
  • Automation chain-guarding was made simpler and fully tested, and build warnings were cleaned up.

Install

# Linux / macOS
curl -fsSL https://get.vexillon.ai/install.sh | sh
# Windows
irm https://get.vexillon.ai/install.ps1 | iex

Targets

  • x86_64-unknown-linux-gnu
  • aarch64-unknown-linux-gnu
  • x86_64-apple-darwin
  • aarch64-apple-darwin
  • x86_64-pc-windows-msvc

Verify

All artifacts are signed with minisign. Verify the checksum file, then the archive checksums:

minisign -Vm SHA256SUMS -P RWQX8PcjZB3S8i1V9AkZgUKoIy+eZWRzaEHKvBW9U/mkMP9Vp0B8xOaO
sha256sum -c SHA256SUMS

Trusted comment on a valid signature reads: signed by vexillon.ai — MIRA 0.321.3