Skip to content

Releases

2026.11.1

Choose a tag to compare

@github-actions github-actions released this 09 Nov 07:42
8e2d2f8

A quick patch for 2026.11.0. If your vehicle suddenly showed the generic fallback car after upgrading, your artwork was never lost. It was just being blocked from displaying, and this release brings it back.

Fixes

  • Vehicle artwork: The new app content security policy in 2026.11.0 blocked the in-memory images Riviamigo uses to show your cached Rivian artwork, so every vehicle dropped to the packaged fallback. Images are allowed again, and your existing cache shows up with no repair or re-download needed.
  • Fallback recovery: If an artwork image fails to load once, the vehicle can now switch back to the real artwork instead of staying on the fallback until you reload the page.
  • Fallback position: When the packaged fallback is shown for a real vehicle, it is now centred between the lock markers the same way it is for demo vehicles, instead of sitting off to the left.
  • Artwork refresh safety: Refreshing vehicle artwork from Rivian keeps your existing cached images if the new download fails, rather than replacing them with the fallback.
  • Vehicle overview layout: The vehicle overview widget now sizes itself from its own width. Between roughly 640px and 1280px the vehicle image and the stats panel are no longer cut off, and a compact three-column layout keeps everything visible.

Full Changelog: 2026.11.0...2026.11.1

2026.11.0: R2 telemetry, metrics stability, and UI polish

Choose a tag to compare

@github-actions github-actions released this 09 Nov 06:36
dd3b436

Thank you to everyone who keeps sending reports, captures, and PRs. Your R2 telemetry has made this release possible, and it is a big step forward for how Riviamigo handles R2 data.

A special thanks to @d2000enator, who made their first contribution with two fixes: #77 stops the ingestion capture export from panicking after repeated end-of-file polls, and #79 sends non-root Nginx startup errors to stderr so they show up in your container logs. Welcome, and thank you!

R2 and Parallax telemetry

  • Trips now use the R2 GNSS speed and gear signals, and unknown values are skipped instead of being treated as real readings. A missing GNSS speed reads as stopped, and GPS time is picked by proximity.
  • Tire, preconditioning, window, and temperature data are richer.
  • Navigation positions are captured, and charging power is gated on charging status.
  • A silent Parallax subscription is detected and restarted, and state snapshots are re-learned afterwards. Parked re-sends back off, and snapshots no longer land in history.

New features

  • Opt-in GitHub release checks, plus the running release shown on Settings.
  • Resource limits for live and heavy connections.
  • Rivian-style frunk and liftgate icons on the overview vehicle widget, and colour swatches in chart tooltips so each value matches its series.

Fixes and maintenance

  • Fixed a panic that could happen after a metrics batch completed, by fusing the response stream.
  • Restore compatibility ignores the transient backfill index in the schema contract.
  • Cleared the Rust 1.97 clippy lints that were blocking backend checks.

Full Changelog: 2026.10.1...2026.11.0

2026.10.1: Quick trip and migration fixes

Choose a tag to compare

@github-actions github-actions released this 01 Oct 06:29
d93c157

Well, I immediately caught another thing that needed fixing, so here's a quick follow-up!

Fixes

  • Trip battery levels: Trip persistence now fills in missing start and end state-of-charge values from the latest persisted telemetry reading. This preserves battery data for short trips and across API restarts, giving more complete energy and efficiency estimates.
  • Startup migration logging: Startup logs now list pending migrations, report progress every 15 seconds, and record how long migrations take.

Full Changelog: 2026.10.0...2026.10.1

2026.10.0: R2 closures, trips, and ingestion capture

Choose a tag to compare

@github-actions github-actions released this 01 Oct 05:35
af8003e

Thank you to everyone who has been sending feedback, PRs, and issues, especially the R2 owners. You've found real gaps for R2 vehicles, and also surfaced some problems in how I mapped closures and handle ingestion in general. This release is largely your work!

A special thanks to @leetosc, who ran Riviamigo against a real R2 and sent back #70 (decoding R2 closure frames, with an observed position map from actuating each closure) and #71 (detecting trips from sparse power and odometer data, and fixing remaining range that showed about 62% of the real value). Thank you also to @murphysprings for #65, which kicked off the R2 telemetry work and led to the ingestion fixes, and for the fresh-install report in #61, fixed in 2026.09.1. Please keep them coming.

R2 closures and status

  • R2 doors, frunk, liftgate, windows, and locks now decode from Parallax frames. Unmapped or unexpected entries are skipped and noted instead of dropping the whole frame.
  • The charge port now reads from closure position 10, and defrost status 4 is treated as off, both matched against R1S captures.
  • Closures show live opening and closing motion.
  • R1T tailgate and side-bin mapping follows the closure frame layout. Side bins and the tonneau are R1T features and are shown only for the R1T. R1T owners: the tailgate and left/right side-bin order are not yet confirmed against an R1T capture, so please tell us if they look swapped.

Trips and charging

  • Trips on sparse R2 telemetry are detected from change-only power and odometer motion, start at the shift time and parked location, and use gear subscriptions for anchored starts.
  • Remaining range and efficiency are model-aware, so R2 range no longer reads as kilometres.
  • Parallax power frames no longer end an active charge.
  • Partial frames (door, window, or tire updates) no longer split the state timeline into short Unknown periods. Migration 0027 repairs the existing history once on upgrade.

Diagnostics and ingestion

  • Ingestion diagnostics are replaced with downloadable captures, which also record GraphQL polls.
  • Parallax resubscribes immediately when the connection TTL expires.
  • Vehicle ingestion signals are unified.

Fixes and maintenance

  • Target tire pressure defaults to 40 psi.
  • CI publishes the dev image alias from the manual candidate workflow.
  • Expanded R2 ingestion and extended telemetry documentation and runbooks.

Upgrading applies migrations 0025, 0026, and 0027 on startup; restore from backup to roll back.

Full Changelog: 2026.09.4...2026.10.0

2026.09.4: R2 Diagnostics and Maintenance Fixes

Choose a tag to compare

@github-actions github-actions released this 25 Sep 04:40
d02ee17

A quick minor maintenance release focused on R2 telemetry troubleshooting, clearer ingestion diagnostics, and a few targeted reliability fixes. With some dependency changes, the maps broke a bit, so I wanted to get this out quickly.

R2 telemetry and trips

Riviamigo now requests additional R2 Parallax readings for power, location, odometer, closures and locks, tire state, and cabin data when the vehicle and Rivian provide them. Fresh power and location updates are joined conservatively to detect trips from sparse signals. Estimated speed is used only for trip detection; stored source readings are not rewritten.

Troubleshooting

Owners and managers can enable Ingestion diagnostics from Settings → Raw data for a Rivian-linked, non-demo vehicle. The switch expires after one hour. API logs show field presence and sample age, decoder rejections, trip-detection inputs, and sampled warnings for full or closed worker handoffs. Events omit raw upstream payloads, credentials, network identifiers, and coordinates.

See the Extended Vehicle Telemetry guide and R2 ingestion diagnostics runbook.

Fixes and maintenance

  • Explicit sign-out no longer immediately restarts automatic SSO; manual SSO sign-in remains available.
  • Fixed the MapLibre worker asset path for production builds.
  • The migration standardizes existing R2S/R2-S labels as R2 while preserving vehicle IDs and history; legacy labels remain accepted as input.
  • Fixed generated R2 artwork labels and a strict backend lint issue.

Full Changelog: 2026.09.3...2026.09.4

2026.09.3: OpenID Connect Single Sign-On

Choose a tag to compare

@github-actions github-actions released this 24 Sep 22:42
d03d7b0

I’m excited to add OpenID Connect sign-in to Riviamigo. You can now let people sign in through an identity provider you already use, while keeping local password sign-in available during setup. I focused on a safe rollout and recovery path, including a way to test the provider before turning SSO on and a documented way to disable it if you need to recover access.

Features

OpenID Connect single sign-on

Riviamigo can now connect to an OpenID Connect provider for SSO. Super-users can configure and test the connection in Settings > Authentication, then choose how it works alongside password login.

The new controls let you:

  • Keep local password sign-in available alongside SSO, or disable it after you have tested SSO.
  • Choose whether verified provider emails can link to existing accounts and whether new accounts can sign up.
  • Limit access by email domain or a required provider claim.
  • Choose the SSO button label and optionally start SSO automatically from the login page.
  • Choose password, SSO, or both as the sign-in method for an invitation.

OIDC remains off by default, and the first owner is still created through the normal local setup flow. Client secrets are write-only and encrypted when stored. The OIDC setup and recovery guide walks through registering the exact callback and rolling out the provider safely.

Fixes

  • Recovered expired browser sessions before sending users to a protected page.
  • Prevented the browser from caching an outdated app shell after an update.
  • Kept the MapLibre worker on the correct app asset path so maps work in the packaged frontend.

Development, builds, and maintenance

  • Updated Rustls to address a security advisory, and documented a narrow, time-limited exception for the RSA dependency used for OIDC verification.
  • Updated the runtime PCRE2 package to the security-fixed Debian version flagged by the image scan.
  • Expanded frontend coverage for account management and OIDC failure paths, and fixed the Security workflow image scan.
  • Added OIDC setup, configuration, and recovery documentation for self-hosters.

2026.09.2: Overview Battery SoC Gradient Fix

Choose a tag to compare

@github-actions github-actions released this 18 Sep 03:44
1c29e0f

I broke the overview hero gradient and it bugged me enough to push a fix for it.

2026.09.01: Custom themes, OpenFreeMap, and clearer diagnostics

Choose a tag to compare

@github-actions github-actions released this 16 Sep 05:10
6b0e302

I’m pretty excited about this one! It introduces a much more flexible theming system, a new OpenFreeMap option, a refreshed RAD theme, and several improvements to maps, diagnostics, dashboards, and self-hosted configuration. I like the original scheme I came up with, but have really fallen in love with the RAD pallette so I decided to add it to give some flexibility.

Thank you to everyone who has shared feedback, reported issues, and helped shape these improvements. Themes are a large new surface, so I’d especially like to hear what works well, what feels confusing, and what you would like to customize next. Would love to have feedback on people's favorite theme now.

Features

Account themes and Theme Studio

Riviamigo now has a complete account-based theme system.

You can choose Classic, RAD, or one of your own custom themes from Settings > Appearance. Your selected theme and Light, Dark, or System preference are saved to your account and follow you across supported browsers and devices.

The new Theme Studio lets you:

  • Create private custom themes based on Classic or RAD.
  • Customize interface colors and chart palettes.
  • Preview changes inside Theme Studio or temporarily apply them across the entire app.
  • Review light and dark modes before saving.
  • Save immutable revisions so published changes remain predictable.
  • Publish a revision without automatically changing accounts that use an older revision.
  • Check critical text and surface contrast before publishing.

Custom themes inherit any values you do not override, so they can stay small and focused instead of redefining the entire interface.

Improved chart and widget colors

Charts and dashboard widgets can now use the active theme’s sixteen ordered data colors.

The chart color field includes theme-series swatches, semantic colors, and a custom color picker with Hex, RGB, HSL, and OKLCH inputs. Light and dark values can be linked or adjusted separately.

Sensor widgets, battery summaries, and other neutral data displays now use these data accents instead of relying on status colors that could incorrectly imply success or warning states.

RAD theme

RAD has received a full visual brighter palette, sixteen distinct chart colors, improved light-mode styling, and new vector artwork.

The updated logo, wordmark, icon, and favicon remain sharp at any size, while Classic keeps its existing visual identity.

OpenFreeMap basemaps

OpenFreeMap is now available as a built-in basemap provider and is automatically used when a CARTO Basemap key is not configured. Its super smooth and I think moving forward will be the default option, but Carto is still there if you prefer it.

Available styles include:

  • Follow appearance
  • Positron
  • Bright
  • Liberty
  • Dark
  • Fiord
  • 3D Liberty

Basemap preferences are saved to your account. Follow appearance automatically tracks the application theme, while selecting a named style keeps that map style pinned.

The 3D option adds a pitched, rotatable map view and returns to a flat camera when you switch back to another style.

Better map recovery

Trip routes now remain visible on a neutral background when map configuration or tile loading fails.

Riviamigo distinguishes between configuration failures and tile-resource failures, provides the appropriate retry action, and records safe browser diagnostics without exposing coordinates, credentials, or other sensitive data.

Clearer frontend diagnostics

The web application now emits structured, privacy-safe diagnostics to the browser console for unexpected API, query, and rendering failures.
This improves troubleshooting while keeping expected quiet failures quiet and excluding secrets, personal vehicle information, and raw request data.

Fixes

  • Fixed External Connections returning an error on fresh installations that do not yet have Rivian credentials.
  • Fixed flattened environment overrides so booleans, numbers, and other typed configuration values are parsed strictly through the complete configuration path.
  • Kept custom basemap bearer tokens scoped to their configured provider instead of allowing them to reach unrelated hosts.
  • Preserved first-party basemap resource URLs while styles are processed by MapLibre.
  • Hardened the basemap proxy’s validation, caching, resource rewriting, and recovery behavior.
  • Improved map fallback behavior when style documents, vector tiles, sprites, glyphs, or raster resources are unavailable.
  • Added separate retry handling for map configuration failures and tile-resource failures.
  • Fixed theme ownership and authorization edge cases found during release review.
  • Improved theme revision cleanup and account preference handling.
  • Improved chart color controls so automatic, theme-series, semantic, and custom selections remain visually and behaviorally consistent.
  • Improved color accessibility by showing swatches directly in color selection controls.
  • Preserved bundled chart rendering behavior while allowing supported theme colors to flow through charts.
  • Improved sensor widgets, overview cards, and battery phantom-drain summaries with consistent data accents.
  • Removed unused default chart identifiers and stale dashboard assignments.
  • Improved query and API error reporting so actionable failures include useful local diagnostics.
  • Improved vehicle-status error handling without turning expected unavailable states into noisy application errors.
  • Refined responsive appearance controls in the desktop navigation and mobile menu.
  • Improved sidebar, dialog, picker, status-bar, and theme-toggle behavior across light and dark themes.

Development, builds, and maintenance

  • Made full local CI an explicit opt-in while keeping normal hooks focused and lightweight.
  • Made candidate container builds manually controlled instead of triggering unnecessary builds during ordinary development.
  • Allowed production subset builds to carry the required patch metadata.
  • Updated architecture budgets to reflect the completed theme and diagnostics work.
  • Removed the unused graph exploration tool and its generated dependencies.
  • Expanded documentation for themes, OpenFreeMap, external connections, frontend diagnostics, development, branding, dashboards, and release images.

2026.09.00: Active charging session fix

Choose a tag to compare

@github-actions github-actions released this 01 Sep 18:05

I’m keeping this release small and focused. It fixes active charging sessions so an in-progress charge appears correctly throughout Riviamigo again.

that said, I’ve got some cool things coming with a new map provider option to replace carrto, and some RAD theming. It’ll be a week or two for those though (unless I unexpectedly get more time than I think).

Fixes

  • Fixed live charging-session materialization from telemetry frames.
  • Preserved active-session values across polling, parsing, API responses, dashboard tables, charts, and session detail views.
  • Added focused query and repair handling so incomplete or delayed charging data does not make an active session disappear.

2026.08.7: Chart editor, Vehicle Health, and release pipeline improvements

Choose a tag to compare

@github-actions github-actions released this 30 Aug 06:41
9bd9d2f

I’ve packed a lot into this release, with the first implementation of the chart editor, a few QoL Vehicle Health page additions, and several fixes around telemetry, charging sessions, restores, upgrades, and the release pipeline itself.

Features

Chart editor

This release includes the first implementation of Riviamigo’s chart editor.

You can now manage charts from Settings, create personal charts, customize bundled charts, choose searchable curves, adjust axes and display settings, assign charts to dashboards, and see changes in a live preview before saving.

Bundled charts continue to use their established production renderers, while custom charts use the new definition-driven renderer. This keeps the existing Riviamigo charts visually consistent while opening the door to more customization.

This is the first implementation, and I’d really like feedback. Let me know what works, what feels confusing or incomplete, what additions you would like to see, and any issues you run into.

Chart editor

Chart management

The new Charts section provides one place to search, create, edit, duplicate, import, export, enable, and assign charts across dashboards.

Chart management

Vehicle Health

I’ve reworked the Vehicle Health page to make telemetry and connection state much easier to understand.

It now includes compact connectivity details, Wi-Fi strength and throughput, cellular information, estimated efficiency, vehicle mass, cold-weather impact, signal freshness, and acquisition status. It also surfaces Parallax acquisition and charging-session repair state without overwhelming the main health summary.

Vehicle Health

Fixes

  • Removed the unintended tire-pressure chart from the bottom of the Trips page and cleared its default Trips assignment.
  • Preserved the expected renderer and appearance for every bundled chart after editing, saving, and reloading.
  • Fixed chart mutations that could become misaligned after saving or restoring a bundled chart.
  • Stabilized chart preview queries and improved the curve availability filter.
  • Preserved supported custom chart changes without routing bundled charts through the generic renderer.
  • Improved handling of sparse, empty, and all-null charging-session telemetry frames.
  • Added repair logic for charging sessions split by telemetry-proven restarts.
  • Protected retained charge payload references during cleanup and reconciliation.
  • Recovered installations with an empty legacy migration ledger.
  • Improved restore-agent failure reporting so the API receives useful failure diagnostics.
  • Fixed restores so persisted encryption and signing keys are available to the restore agent.
  • Improved runtime signaling between the restore agent and API container.
  • Added retry handling for database startup migrations in CI and restore compatibility checks.

Builds, CI, and releases

I’ve also overhauled how container images move through the build and release pipeline.

  • Pushes to dev and main now produce an AMD64 candidate tied to the exact source commit.
  • Preview and stable releases promote that already-built candidate instead of rebuilding the application at tag time.
  • Release smoke tests and populated-upgrade tests verify the promoted image digest before the GitHub release is created.
  • ARM64 candidate builds are now an explicit opt-in so ordinary release work is not held up by unnecessary emulated builds.
  • BuildKit cache storage moved to GHCR with bounded candidate and cache retention.
  • Rust container builds now use a container-specific release profile and native CPU parallelism.
  • A measured local AMD64 production build took 4 minutes 52 seconds cold, while an identical warm rebuild completed in 10 seconds.
  • The development upgrade harness is now host-agnostic while preserving its isolated restore and upgrade safety checks.
  • Local pre-commit and pre-push gates mirror the important CI, database, documentation, security, and release-workflow checks.

Deployment and documentation

  • Moved Parallax acquisition into the main API process while keeping canonical vehicle telemetry independent.
  • Added native multi-architecture release support and tightened production image pinning.
  • Added chart customization and compatibility documentation.
  • Updated the extended telemetry, backup and restore, deployment, dashboard, contributor, development harness, and release-image documentation.

The screenshots in this release use deterministic mock telemetry and contain no personal vehicle data.