Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
replay
command
Command replay runs a captured frame stream (JSONL) through the recorder offline and prints the drives it produces — a hand-debugging companion to the replay-harness unit tests.
|
Command replay runs a captured frame stream (JSONL) through the recorder offline and prints the drives it produces — a hand-debugging companion to the replay-harness unit tests. |
|
rivolt
command
Command rivolt is the single-binary server for the Rivolt Rivian companion.
|
Command rivolt is the single-binary server for the Rivolt Rivian companion. |
|
sampletruck
command
Command sampletruck writes the generated sample-truck corpus (the demo's truck) as replay-format JSONL, one frame per line, and prints a summary to stderr.
|
Command sampletruck writes the generated sample-truck corpus (the demo's truck) as replay-format JSONL, one frame per line, and prints a summary to stderr. |
|
internal
|
|
|
adminaudit
Package adminaudit records admin actions: who did what to whom, when and from where.
|
Package adminaudit records admin actions: who did what to whom, when and from where. |
|
adminhealth
Package adminhealth builds the read-only "is everything OK?" summary for the admin home: firing alerts (Alertmanager), the kill switch, Rivian call health over the last 24 h, streaming vs leased vehicles, disk, backup age and version.
|
Package adminhealth builds the read-only "is everything OK?" summary for the admin home: firing alerts (Alertmanager), the kill switch, Rivian call health over the last 24 h, streaming vs leased vehicles, disk, backup age and version. |
|
adminonly
Package adminonly is the startup contract of the admin deployment (RIVOLT_ADMIN_ONLY=true, admin.rivolt.dev): the same image as the public site, serving only the admin surface behind Cloudflare Access, and running no background work.
|
Package adminonly is the startup contract of the admin deployment (RIVOLT_ADMIN_ONLY=true, admin.rivolt.dev): the same image as the public site, serving only the admin surface behind Cloudflare Access, and running no background work. |
|
ai
Package ai hosts the hot-swappable LLM provider adapters (OpenAI, Anthropic, Google Gemini) used across Rivolt: weekly digest, trip planning, charging strategy, and anomaly explanations.
|
Package ai hosts the hot-swappable LLM provider adapters (OpenAI, Anthropic, Google Gemini) used across Rivolt: weekly digest, trip planning, charging strategy, and anomaly explanations. |
|
aibudget
Package aibudget enforces a per-user daily cap on LLM-backed calls (trip advice, drive efficiency).
|
Package aibudget enforces a per-user daily cap on LLM-backed calls (trip advice, drive efficiency). |
|
analytics
Package analytics hosts local, deterministic analyses over the user's driving and charging history.
|
Package analytics hosts local, deterministic analyses over the user's driving and charging history. |
|
api
Package api wires the HTTP surface for Rivolt.
|
Package api wires the HTTP surface for Rivolt. |
|
appsettings
Package appsettings is the install-wide key/value store backing the AI provider configuration (and any future install-scoped setting).
|
Package appsettings is the install-wide key/value store backing the AI provider configuration (and any future install-scoped setting). |
|
auth
Package auth owns Rivolt's session-level authentication: the /api/auth/* endpoints, the cookie format, and the middleware that resolves an authenticated user into request context.
|
Package auth owns Rivolt's session-level authentication: the /api/auth/* endpoints, the cookie format, and the middleware that resolves an authenticated user into request context. |
|
cfaccess
Package cfaccess verifies the Cloudflare Access JWT that fronts the admin deployment (RIVOLT_ADMIN_ONLY).
|
Package cfaccess verifies the Cloudflare Access JWT that fronts the admin deployment (RIVOLT_ADMIN_ONLY). |
|
chargers
Package chargers serves the chargers.pmtiles archive from the rivolt API: the entire ~10 MB file is fetched once at startup (or first request), parsed in-memory, and queries against it run fully server-side.
|
Package chargers serves the chargers.pmtiles archive from the rivolt API: the entire ~10 MB file is fetched once at startup (or first request), parsed in-memory, and queries against it run fully server-side. |
|
charges
Package charges persists derived charge sessions.
|
Package charges persists derived charge sessions. |
|
clientip
Package clientip decides which address a request really came from.
|
Package clientip decides which address a request really came from. |
|
config
Package config holds runtime configuration for rivolt.
|
Package config holds runtime configuration for rivolt. |
|
crypto
Package crypto is Rivolt's in-process key-wrapping layer.
|
Package crypto is Rivolt's in-process key-wrapping layer. |
|
db
Package db owns the Rivolt Postgres connection pool, the shared migration runner, and a handful of identity helpers used by every store.
|
Package db owns the Rivolt Postgres connection pool, the shared migration runner, and a handful of identity helpers used by every store. |
|
dcfcrates
Package dcfcrates owns the DCFC network table used by trip planning.
|
Package dcfcrates owns the DCFC network table used by trip planning. |
|
demo
Package demo seeds and identifies the public read-only demo account (B7).
|
Package demo seeds and identifies the public read-only demo account (B7). |
|
drain
Package drain computes the fleet's parked-drain metrics from the persisted vehicle_state history and exposes them to Prometheus (D1, the instrument for the battery-drain experiment's Gate A).
|
Package drain computes the fleet's parked-drain metrics from the persisted vehicle_state history and exposes them to Prometheus (D1, the instrument for the battery-drain experiment's Gate A). |
|
drives
Package drives persists derived drive sessions.
|
Package drives persists derived drive sessions. |
|
electrafi
Package electrafi imports TeslaFi / ElectraFi polling-dump CSV files into Rivolt's drives and charges stores.
|
Package electrafi imports TeslaFi / ElectraFi polling-dump CSV files into Rivolt's drives and charges stores. |
|
elevation
Package elevation looks up altitude (meters above sea level) for arbitrary lat/lon coordinates against the Mapzen Terrarium DEM (https://github.com/tilezen/joerd/blob/master/docs/formats.md#terrarium).
|
Package elevation looks up altitude (meters above sea level) for arbitrary lat/lon coordinates against the Mapzen Terrarium DEM (https://github.com/tilezen/joerd/blob/master/docs/formats.md#terrarium). |
|
email
Package email sends transactional mail via the Resend HTTP API.
|
Package email sends transactional mail via the Resend HTTP API. |
|
flags
Package flags owns the DB-backed operational flag table (migration 0003_flags.sql).
|
Package flags owns the DB-backed operational flag table (migration 0003_flags.sql). |
|
geocoding
Package geocoding wraps Open-Meteo's free geocoding endpoint (https://geocoding-api.open-meteo.com/v1/search) for forward- geocoding text input → lat/lon.
|
Package geocoding wraps Open-Meteo's free geocoding endpoint (https://geocoding-api.open-meteo.com/v1/search) for forward- geocoding text input → lat/lon. |
|
hydra
Package hydra is a thin admin-API client for Ory Hydra.
|
Package hydra is a thin admin-API client for Ory Hydra. |
|
identity
Package identity holds the two install-wide switches that decide how much an email address is trusted when it identifies an account.
|
Package identity holds the two install-wide switches that decide how much an email address is trusted when it identifies an account. |
|
idp
Package idp defines the UserProvider interface — the single contract between Rivolt's API layer and whichever identity backend is deployed.
|
Package idp defines the UserProvider interface — the single contract between Rivolt's API layer and whichever identity backend is deployed. |
|
insights
Package insights computes read-only breakdowns of the user's own recorded data.
|
Package insights computes read-only breakdowns of the user's own recorded data. |
|
kratos
Package kratos provides admin-side provisioning of Ory Kratos identities via the Kratos admin API.
|
Package kratos provides admin-side provisioning of Ory Kratos identities via the Kratos admin API. |
|
leases
Package leases coordinates per-vehicle ownership across multiple rivolt pods so each vehicle is subscribed by exactly one process.
|
Package leases coordinates per-vehicle ownership across multiple rivolt pods so each vehicle is subscribed by exactly one process. |
|
ledger
Package ledger builds the server-side money statement (the Money tab and, eventually, every cost/energy total in the SPA) from recorded charges and drives.
|
Package ledger builds the server-side money statement (the Money tab and, eventually, every cost/energy total in the SPA) from recorded charges and drives. |
|
logging
Package logging provides a context-aware slog handler and helpers for stamping per-request fields (request_id, user_id, vehicle_id, trace_id) onto every log line emitted while serving a request, without requiring callers to thread the logger through.
|
Package logging provides a context-aware slog handler and helpers for stamping per-request fields (request_id, user_id, vehicle_id, trace_id) onto every log line emitted while serving a request, without requiring callers to thread the logger through. |
|
maps
Package maps wires same-origin reverse-proxies that let the SPA reach self-hosted map services (Valhalla for routing + map matching, an nginx-served PMTiles bundle for vector basemaps) through the existing rivolt origin and session cookie.
|
Package maps wires same-origin reverse-proxies that let the SPA reach self-hosted map services (Valhalla for routing + map matching, an nginx-served PMTiles bundle for vector basemaps) through the existing rivolt origin and session cookie. |
|
metrics
Package metrics owns the application's Prometheus instrumentation.
|
Package metrics owns the application's Prometheus instrumentation. |
|
oidc
Package oidc adds an OIDC sign-in path alongside the static operator credential and the trusted-proxy header in internal/auth.
|
Package oidc adds an OIDC sign-in path alongside the static operator credential and the trusted-proxy header in internal/auth. |
|
onboardmail
Package onboardmail sends the welcome email and the setup reminders: at most three emails per user ever (one welcome, two reminders), only to a verified address, only until the truck is connected and sending data, and never after the user opted out.
|
Package onboardmail sends the welcome email and the setup reminders: at most three emails per user ever (one welcome, two reminders), only to a verified address, only until the truck is connected and sending data, and never after the user opted out. |
|
otadetails
Package otadetails keeps each vehicle's OTA release details (current and available software version, release-notes link) fresh from Rivian's getOTAUpdateDetails: once a day per vehicle and when a monitor connects, never per request.
|
Package otadetails keeps each vehicle's OTA release details (current and available software version, release-notes link) fresh from Rivian's getOTAUpdateDetails: once a day per vehicle and when a monitor connects, never per request. |
|
packhealth
Package packhealth derives an "effective pack capacity" per qualifying charge session.
|
Package packhealth derives an "effective pack capacity" per qualifying charge session. |
|
push
Package push handles Web Push subscriptions and notification delivery.
|
Package push handles Web Push subscriptions and notification delivery. |
|
ratelimit
Package ratelimit implements the global upstream token bucket gating outbound calls to Rivian's GraphQL gateway.
|
Package ratelimit implements the global upstream token bucket gating outbound calls to Rivian's GraphQL gateway. |
|
recap
Package recap turns a finished drive into a short natural-language narration ("Trip recap") via the operator-configured LLM provider.
|
Package recap turns a finished drive into a short natural-language narration ("Trip recap") via the operator-configured LLM provider. |
|
receipts
Package receipts syncs what Rivian actually billed for each charging session (its Charging history) next to our own estimate.
|
Package receipts syncs what Rivian actually billed for each charging session (its Charging history) next to our own estimate. |
|
repair
Package repair holds one-off data repairs run from the rivolt CLI.
|
Package repair holds one-off data repairs run from the rivolt CLI. |
|
repair/phantom
Package phantom is the repair for phantom (stale-copy) live charges: rows the recorder fabricated from a replayed previous-session total, with no power and no SoC change behind them (architect's scratchpad/phantom-charges.md; devils-advocate's audit).
|
Package phantom is the repair for phantom (stale-copy) live charges: rows the recorder fabricated from a replayed previous-session total, with no power and no SoC change behind them (architect's scratchpad/phantom-charges.md; devils-advocate's audit). |
|
repair/r2
Package r2 rebuilds the drives and charges of a vehicle whose vehicleState gear was unusable (R2 before #214: the gear stayed at the last D/R for days, so drives never closed and no charge opened).
|
Package r2 rebuilds the drives and charges of a vehicle whose vehicleState gear was unusable (R2 before #214: the gear stayed at the last D/R for days, so drives never closed and no charge opened). |
|
retention
Package retention runs the daily sweeps that delete personal data once it has outlived its purpose: expired sessions (IP and User-Agent) and waitlist requests.
|
Package retention runs the daily sweeps that delete personal data once it has outlived its purpose: expired sessions (IP and User-Agent) and waitlist requests. |
|
rivian
Package rivian is Rivolt's adapter to the unofficial Rivian owner-app GraphQL API.
|
Package rivian is Rivolt's adapter to the unofficial Rivian owner-app GraphQL API. |
|
samples
Package samples persists raw vehicle_state polling snapshots.
|
Package samples persists raw vehicle_state polling snapshots. |
|
secrets
Package secrets is the persistence layer on top of [`internal/crypto`](../crypto).
|
Package secrets is the persistence layer on top of [`internal/crypto`](../crypto). |
|
sessions
Package sessions is the source-of-truth store for authenticated user sessions.
|
Package sessions is the source-of-truth store for authenticated user sessions. |
|
settings
Package settings persists app-level configuration (AI provider keys, charging cost, Rivian session) in the shared Postgres database.
|
Package settings persists app-level configuration (AI provider keys, charging cost, Rivian session) in the shared Postgres database. |
|
signupgate
Package signupgate implements RIVOLT_SIGNUP_DISABLED: an install-wide switch that closes every path that can create a new account on its own (the /signup page and API, access requests, OIDC and Kratos first sign-in).
|
Package signupgate implements RIVOLT_SIGNUP_DISABLED: an install-wide switch that closes every path that can create a new account on its own (the /signup page and API, access requests, OIDC and Kratos first sign-in). |
|
signuprequests
Package signuprequests manages the pre-account waitlist: someone visits /signup without an invite, fills the "request access" form, and lands as a pending row that an admin later approves (minting a single-use magic-link signup token) or rejects.
|
Package signuprequests manages the pre-account waitlist: someone visits /signup without an invite, fills the "request access" form, and lands as a pending row that an admin later approves (minting a single-use magic-link signup token) or rejects. |
|
statement
Package statement builds and sends the monthly statement email (scratchpad/statement-email-spec.md): pure rendering from the ledger's own Monthly, the signed unsubscribe token, the preference and send-state store, and the idempotent hourly job.
|
Package statement builds and sends the monthly statement email (scratchpad/statement-email-spec.md): pure rendering from the ledger's own Monthly, the signed unsubscribe token, the preference and send-state store, and the idempotent hourly job. |
|
tracing
Package tracing wires the OpenTelemetry trace SDK with an OTLP/HTTP exporter pointed at Grafana Tempo.
|
Package tracing wires the OpenTelemetry trace SDK with an OTLP/HTTP exporter pointed at Grafana Tempo. |
|
tripadvice
Package tripadvice wraps the operator-configured AI provider to generate plain-language observations about a Rivian trip plan: charging stop summary, arrival SoC commentary, adapter warnings, and drive-mode suggestions when the plan looks sub-optimal.
|
Package tripadvice wraps the operator-configured AI provider to generate plain-language observations about a Rivian trip plan: charging stop summary, arrival SoC commentary, adapter warnings, and drive-mode suggestions when the plan looks sub-optimal. |
|
tripmultiday
Package tripmultiday orchestrates a multi-day trip plan over Rivian's planTripWithMultiStopV2.
|
Package tripmultiday orchestrates a multi-day trip plan over Rivian's planTripWithMultiStopV2. |
|
tripprofile
Package tripprofile derives an energy-consumption multiplier from a user's editable VehicleProfile (wheel size, tire type, roof / rear accessories, default cargo).
|
Package tripprofile derives an energy-consumption multiplier from a user's editable VehicleProfile (wheel size, tire type, roof / rear accessories, default cargo). |
|
trips
Package trips persists per-user named trip templates for the planner.
|
Package trips persists per-user named trip templates for the planner. |
|
tripweather
Package tripweather corrects a Rivian trip plan's per-waypoint SoC curve for weather conditions Rivian's planner doesn't see.
|
Package tripweather corrects a Rivian trip plan's per-waypoint SoC curve for weather conditions Rivian's planner doesn't see. |
|
vehiclelease
Package vehiclelease holds a vehicle's lease terms and computes where the driver stands against the mileage allowance.
|
Package vehiclelease holds a vehicle's lease terms and computes where the driver stands against the mileage allowance. |
|
weather
Package weather enriches a drive with the conditions at its start point and time.
|
Package weather enriches a drive with the conditions at its start point and time. |
|
web
Package web embeds the built Vite web app into the Go binary.
|
Package web embeds the built Vite web app into the Go binary. |
Click to show internal directories.
Click to hide internal directories.






