Files
StarPilot/openpilot/starpilot/analytics
Zeph Leggett ca183df497 Jetlink API 3 adapter
StarPilotAdapter subclasses jetlink's Stock: StarPilot's param names, the
AOL engagement rule, the model root and a CatalogModelState history reset
that keeps its JIT buffers. jetlinkd runs jetlink's owner as it is, modeld
calls the hooks, and Galaxy and analytics read jetlink's runtime record in
place of JetlinkRuntime.

- no big-model slot or catalog keys: jetlink provisions its default model
- jetlink restores the owner's tuning itself; the port draw stays cut with
  a host plugged in
- the Jetson is asked to power off on DoShutdown only, capped at 30 s
2026-10-18 16:18:37 -05:00
..
2026-10-18 16:18:37 -05:00
2026-10-14 20:02:39 -05:00
2026-10-14 20:02:39 -05:00
2026-10-14 20:02:39 -05:00
2026-10-14 20:02:39 -05:00
2026-10-18 16:18:37 -05:00
2026-10-14 20:02:39 -05:00

Usage statistics

The manager worker reports to stats.firestar.link after a drive and once after startup with a valid clock. It starts requests only while offroad. Reporting failures do not affect manager process health or engagement.

Reports contain the branch and commit, device type, vehicle fingerprint, last verified running model, cumulative usage, regional location, and settings. They exclude VIN, recordings, passwords, pairing credentials, and exact GPS. Location lookup receives whole-degree coordinates and reports a nearby city center when available, otherwise the coarse coordinates.

Settings come from the existing typed UI owners. Ordinary Boolean, bounded numeric, and fixed-choice rows are collected automatically. Raw Params dumps, source documents, actions, free text, and user-defined sound-pack names are excluded. Each field records the saved value and its owner-defined default where available; it does not imply that the feature was actively controlling the car.

The Influx write API uses organization and bucket StarPilot with built-in client authentication. Operators can override it with STARPILOT_STATS_TOKEN or /data/starpilot/analytics/token (a regular file with mode 0600, owned by root or the manager user). STARPILOT_STATS_TOKEN_FILE selects another file. UsageStatsStatus records the local reporting state without secrets or response bodies. UsageStatsState retains counters and sanitized last-drive context.

Run the mocked network, privacy, owner, and lifecycle checks with:

./dev python -m pytest -q openpilot/starpilot/analytics/tests

These checks also run in ./test. No test sends statistics to production.