Commit Graph

11424 Commits

Author SHA1 Message Date
Jason Wen 2316b1142c Revert "POP model (#37727)"
This reverts commit 12f1be19cc.
2026-05-05 22:02:50 -04:00
Nayan 3e44c90c68 [MICI] ui: align upstream changes with sunnypilot settings buttons (#1782)
* align with upstream

* lint

---------

Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
2026-05-03 15:29:19 -04:00
Jason Wen 2d35bd895f sunnylink: SDUI (#1780)
* 1

* fix

* uh

* more

* for now

* v2

* update

* more subs

* readme

* vehicle

* cycle init

* options

* new

* combine

* new

* dynamic unit

* default

* move it

* syncing more

* more

* boom shakalaka

* rearrange

* partial availability

* move

* more

* more

* hide

* move

* revert

* more

* new

* set

* sync

* dynamic

* slightly more

* update

* update

* less

* in another pr

* more

* move and fix

* device type

* order

* order

* order

* fixes

* ew

* Revert "fixes"

This reverts commit 53a2adb45a.

* sunnylink: bundle-first capabilities + protocol_version

Bundle-first brand resolution, fix steer_control_type to use
CP.steerControlType (physical) not lateralTuning.which() (tuning class),
add Subaru/Hyundai opaque per-platform flags from CarPlatformBundle, and
embed PROTOCOL_VERSION in the capabilities payload.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* sunnylink: tighten settings_ui gates against Raylib parity

Brand gates on MadsMainCruiseAllowed/MadsUnifiedEngagementMode (rivian +
tesla-no-bus); convert enablement->visibility on items Raylib hides
(DisableUpdates, EnableGithubRunner, EnableCopyparty, QuickBootToggle,
HyundaiLongitudinalTuning, LaneTurnValue, LagdToggleDelay); drop spurious
offroad_only on DynamicExperimentalControl + DisengageOnAccelerator and
SpeedLimit policy/offset over-gates; replace offroad_only with not_engaged
on AlphaLongitudinalEnabled/Toyota long toggles; extend release-branch
NOTs with is_sp_release; add Test Maneuvers section with attestation,
move LongitudinalManeuverMode in alongside new LateralManeuverMode.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* sunnylink: extend settings_ui validator for new fields

Add SchemaItem fields title_param_suffix (object form), needs_onroad_cycle,
blocked, requires_attestation; add option-level enablement to SchemaOption;
add visibility/enablement/attestation_required to PanelSection; add
not_engaged Rule type; replace vehicle_settings inline shape with
VehicleBrandSettings def (title/description/items).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* sunnylink: inject torque tune options from versions JSON

Read latcontrol_torque_versions.json at schema generation time and
override TorqueControlTune options so adding a version to the JSON
flows to the dashboard without editing settings_ui.json by hand.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* sunnylink: per-bug regression tests for settings_ui parity

Cover the audit findings end-to-end: MADS brand gates, Test Maneuvers
section + attestation, validator accepts the JSON, dynamic torque
options match the versions JSON, SP dev items gate on is_sp_release as
well as is_release, spurious offroad_only dropped from
DisengageOnAccelerator and DynamicExperimentalControl, and offroad_only
replaced with not_engaged on AlphaLongitudinalEnabled and the Toyota
long toggles. Validator test skips when jsonschema is unavailable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* sunnylink: protocol_version sentinel + opaque-flag tests

Pin PROTOCOL_VERSION to KNOWN_PROTOCOL_VERSIONS so a bump shows up in
review, and assert subaru_has_sng / hyundai_alpha_long_available are
declared with safe False defaults.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* schema: convert ShowAdvancedControls visibility to enablement

Items previously hidden when ShowAdvancedControls is off now render
as disabled with an ADVANCED tooltip. Same treatment for dependency-
based hides (LagdToggleDelay, LaneTurnValue) so users see what's
available and why it's locked. CameraOffset gets the Advanced gate it
was missing.

Affected: DisableUpdates, EnableGithubRunner, EnableCopyparty,
QuickBootToggle, LaneTurnValue, LagdToggleDelay, CameraOffset, and the
test_maneuvers section.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* sunnylink: route resume_queued to athena direct

Backend is retiring the CloudFront proxy on stg.api.sunnypilot.ai that
currently forwards ws|settings|navigation to athena.sunnylink.ai. Once
retired, /ws/{id}/resume_queued only resolves via athena.sunnylink.ai.

SunnylinkApi.resume_queued now temporarily swaps self.api_host to
ATHENA_HOST while re-entering api_get (preserves the SunnylinkEnabled
gate and existing JWT/UA header handling). Other device calls
(device/{id}/roles, device/{id}/users, v2/pilotauth/, backups) continue
to hit the sunnylink main API host unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* legacy code

* no

* new

* tests

* lint

* fix

* too verbose

* sunnylink: per-page YAML authoring for settings_ui + named rule macros

Replace hand-edited 2200-line settings_ui.json with a per-page YAML source
tree under settings_ui_src/, plus named rule fragments (`$ref` macros) so
the same condition isn't repeated verbatim across items.

Authoring surface (settings_ui_src/):
  pages/<page>.yaml   one file per panel; sections/items/sub_panels inline
  pages/vehicle.yaml  per-brand settings (kind: vehicle -> vehicle_settings)
  _macros.yaml        named rule fragments referenced via {$ref: "#/macros/<name>"}
  _schemas/*.json     JSON Schemas for IDE autocomplete + CI validation

Pages today: steering, cruise, display, visuals, toggles, device, software,
developer, models, vehicle (10).

Tools:
  compile_settings_ui.py  read src tree, resolve $refs, emit settings_ui.json
                          (--check mode for CI to fail on hand-edits)
  extract_settings_ui.py  one-shot: settings_ui.json -> per-page YAML
  apply_macros.py         one-shot: substitute matching rule blocks with $ref

Rule-block dedup wins (top duplicates collapsed to single macros):
  offroad (9x), longitudinal (4x), longitudinal_and_icbm (5x),
  hide_on_mici (4x), advanced_only (3x), mads_full_platforms (4x ~30-line
  nested any/all/not -> 1 macro + 4x one-line $ref).

Validator drift fixes:
  - Accept not_engaged rule type (already in schema.json + used by
    AlphaLongitudinalEnabled, ToyotaEnforceStockLongitudinal,
    ToyotaStopAndGoHack, LateralManeuverMode, LongitudinalManeuverMode).
  - Enforce {title, description, items} shape on every vehicle brand
    instead of allowing bare-list variants.

Wire format unchanged: compiled settings_ui.json structurally identical to
the prior hand-edited file, so the device generator (generate_settings_schema.py),
SettingsCapabilities, and frontend renderer all keep working without changes.

Tests: 16 new compiler tests (roundtrip, $ref semantics, depth/cycle limits,
page-tree integrity, vehicle kind routing). Existing 42 regression tests in
test_settings_changes.py and test_settings_schema.py remain green.

README rewritten for the new flow:
  - Decision table for offroad_only / not_engaged / param / capability
  - Multi-condition composition examples (AND/OR/mixed/3-way/negation)
  - Full feature walkthrough (multi-toggle + sub_panel + new macro)
  - Workflows for changing rules, widget type, deprecating an item
  - All How-To examples migrated from JSON to YAML

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* sunnylink: add `details` field for popover/modal help text

Adds an optional `details` field on settings items, distinct from the inline
`description`. When present, the frontend renders an info ("i") button on the
row that opens a modal with this content. Either field may be present alone,
or both together; an item with only `details` and no `description` shows just
the title + info button (no inline body).

Migrates `AutoLaneChangeTimer` as the first user: the safety caveat
("Please use caution when using this feature. Only use the blinker when
traffic and road conditions permit.") moves out of the inline description
into `details`, leaving the description focused on what the timer actually
does.

Schema changes:
- settings_ui.schema.json: SchemaItem.details (string, optional)
- settings_ui_src/_schemas/page.schema.json: Item.details (mirror)
- compile_settings_ui.py / extract_settings_ui.py: ordered after description

Frontend support lands in sunnylink-frontend on the design-overhaul branch.
Old frontends ignore the unknown key.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* ui: refactor UIStateSP init to eliminate getattr and double update_params

- Remove update_params() and reset_onroad_sleep_timer() from UIStateSP.__init__;
  __init__ is now pure attr initialization with no I/O or side effects
- Add _sp_initialized flag to UIStateSP.update_params() to fire
  reset_onroad_sleep_timer() exactly once after first real param load,
  keeping the call in SP territory and out of stock _initialize()
- Replace getattr(self, 'has_longitudinal_control') / getattr(self, 'CP')
  in _enforce_constraints with direct attr access; safe because
  _enforce_constraints is only called from update_params(), which only
  runs after UIState._initialize() has set both attrs
- Rename _enforce_sp_constraints → _enforce_constraints

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix

* exec

* more exec

* humanize

* sync

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 13:18:15 -04:00
Jason Wen ddb9039493 torque: show static override values in Dev UI & gate useParams on custom torque tune (#1821)
torque: show static override values in Dev UI
2026-04-28 07:26:05 -04:00
Jason Wen 0b7df7df10 DM: wheel touch enforcement in MADS (#1820) 2026-04-28 01:29:54 -04:00
Jason Wen 10a33a4bf1 tg: reapply changes (#1817)
* Reapply "bump tg (#37700)"

This reverts commit 9022b4d322.

* fixup! Reapply "bump tg (#37700)"

* Revert "Revert "autodetect tg backend (#37778)""

This reverts commit b782958a

* Reapply "autodetect tg backend: use CPU:LLVM on Linux (#37785)"

This reverts commit 3fa6726f88.

* Reapply "Modeld: support uncompiled"

This reverts commit 8c240cc1a4.

* fixup! Reapply "bump tg (#37700)"

* fixup! Reapply "autodetect tg backend: use CPU:LLVM on Linux (#37785)"

* fixup! Revert "Revert "autodetect tg backend (#37778)""

* fixup! Reapply "autodetect tg backend: use CPU:LLVM on Linux (#37785)"

* fixup! Reapply "autodetect tg backend: use CPU:LLVM on Linux (#37785)"

* fixup! Revert "Revert "autodetect tg backend (#37778)""

* fixup! Reapply "bump tg (#37700)"

* fixup! Reapply "bump tg (#37700)"
2026-04-26 01:32:55 -04:00
Nayan 18406e77ee [MICI] ui: add sunnylink info & connectivity check (#1798)
* add info & connectivity check

* meh, no icon

* lint

* fix state

* good bot

---------

Co-authored-by: DevTekVE <devtekve@gmail.com>
2026-04-19 11:55:00 -04:00
Jason Wen df66604a45 Merge branch 'upstream/openpilot/master' into sync-20260417
# Conflicts:
#	docs/CARS.md
#	opendbc_repo
#	panda
#	system/updated/updated.py
#	tinygrad_repo
2026-04-17 02:36:53 -04:00
Shane Smiskol 63ab2fb1b3 four: calibrate DM orientation (#37149)
* calib face

* clean up

* fix double neg

* cmt

* local changes

* keep for dm preview for now

* comments

* comments

* Update selfdrive/ui/mici/onroad/driver_state.py

* Update selfdrive/ui/mici/onroad/driver_state.py
2026-04-15 10:15:32 -07:00
Daniel Koepping 1276452cfc add blocked-startup offroad label (#37833)
add blocked-startup offroad label
2026-04-15 00:15:57 -07:00
Daniel Koepping 8b2eac4d1f use warning as alert icon (#37832)
replace bell with warning icon
2026-04-15 00:09:59 -07:00
Daniel Koepping e78e6261ca Add touch zone for alerts (#37819)
* add touch zone for alerts

* adjust touch zone

* 200 px zones

* 50/30 split

* adjust zones
2026-04-14 23:19:40 -07:00
Nayan 61915eb914 [MICI] ui: always offroad (#1695)
* always offroad ui

* remove

* lint

* better

* fix sync issues

* fix sync issues

* update for upstream sync

* move it all to top settings panel

* not red

* no home screen, just buttons

---------

Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
2026-04-14 23:36:06 -04:00
Daniel Koepping d5f1d8c33a fix compare_logs crash on list field size changes (#37829)
fix crash on list-length changes
2026-04-14 20:18:31 -07:00
stef e16d422cf4 body quality of life (#37803)
* turn off ir leds on notCar

* reduce startup time on notCar

* fix: check notCar once after onroad is true

* save a disk read by using existing is_onroad
2026-04-14 19:13:57 -07:00
Jason Wen 3509fccec7 [TIZI/TICI] ui: remove per-frame param sync (#1802)
* [TIZI/TICI] ui: remove per-frame param sync

* fix: prevent params.put skip in OptionControlSP by deferring mutation to set_value

The idempotent guard added in the previous commit was being bypassed because
_handle_mouse_release mutated self.current_value before calling set_value(),
making the check always return early. Now we calculate the new value and pass
it to set_value, allowing the guard to work correctly and params to persist.
2026-04-14 21:44:39 -04:00
Adeeb Shihadeh f70a156c7e docs: fix invalid img tags in car docs (#37828) 2026-04-14 16:35:34 -07:00
Nayan c7efc009a4 [MICI] ui: models panel enhancements (#1705)
* model panel - give it some love

* fix sync issues

* update for upstream sync

* fix label

* not red

* fav models

* uhh, yeah

* handling for downloading state

---------

Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
2026-04-14 16:38:00 -04:00
Jason Wen c23f2dce2c MADS safety: enable heartbeat and lateral controls mismatch checks (#1801)
* init

* nah

* rename

* bump

* bump
2026-04-14 16:28:13 -04:00
Daniel Koepping 4a15bdcdae Add alerts pill (#37821)
* add notification pill

* add update

* comment

* lfs upload

* rename

* fix

* try widget

* white is banned!

* same for bell

* need everywhere?

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
2026-04-14 12:02:30 -07:00
Jason Wen 6979849305 Merge branch 'upstream/openpilot/master' into sync-20260414
# Conflicts:
#	system/hardware/hardwared.py
2026-04-14 12:22:13 -04:00
Harald Schäfer c91a0a83f6 Revert OP (#37812)
* Revert "OP model 7 (#37760)"

This reverts commit 052692b25d.

* Revert "OP model (#37740)"

This reverts commit cb32793300.

* dead

* parse_model_outputs: drop extra space
2026-04-12 23:47:43 -04:00
Jason Wen 9022b4d322 Revert "bump tg (#37700)"
This reverts commit 55c38857
2026-04-12 16:20:12 -04:00
Jason Wen b782958abd Revert "autodetect tg backend (#37778)"
This reverts commit 21538e5a09.
2026-04-12 16:20:03 -04:00
Jason Wen 3fa6726f88 Revert "autodetect tg backend: use CPU:LLVM on Linux (#37785)"
This reverts commit 09a55a7833.
2026-04-12 16:20:01 -04:00
Jason Wen 8c240cc1a4 Revert "Modeld: support uncompiled"
This reverts commit 0a58d8b761.
2026-04-12 16:19:59 -04:00
Jason Wen 9541692eb0 Merge branch 'upstream/openpilot/master' into sync-20260412
# Conflicts:
#	cereal/log.capnp
#	docs/CARS.md
#	opendbc_repo
#	panda
#	selfdrive/modeld/SConscript
#	selfdrive/monitoring/test_monitoring.py
#	selfdrive/ui/soundd.py
#	tinygrad_repo
#	uv.lock
2026-04-12 16:19:47 -04:00
Bruce Wayne 0a58d8b761 Modeld: support uncompiled 2026-04-10 19:28:41 -07:00
Jason Wen 9db432e8fb installer: update cached remote URL during fork installs (#37797) 2026-04-10 01:33:47 -07:00
Adeeb Shihadeh a89ed55b65 cereal: group inline deprecated fields (#37791) 2026-04-09 10:41:04 -07:00
Shane Smiskol 934fd5a5a8 soundd: ramp immediate alert volume (#37788)
* raise volume

* stuff

* fix

* 4s

* revert

* clean up

* lean up
2026-04-09 00:13:27 -07:00
Shane Smiskol b5576de97e soundd: update volume while playing alert (#37789)
lways
2026-04-08 23:56:24 -07:00
Harald Schäfer 09a55a7833 autodetect tg backend: use CPU:LLVM on Linux (#37785)
autodetect tg backend: use CPU:LLVM on Linux, CPU on Darwin
2026-04-08 16:16:39 -07:00
Adeeb Shihadeh 8b53f9158d Rename DM alerts to numbered stages (#37783)
* Rename DM alerts to numbered stages

* Handle renamed DM events in replay migration

* Remove replay migration test

* Skip unknown replay event names
2026-04-08 14:29:32 -07:00
Harald Schäfer 21538e5a09 autodetect tg backend (#37778)
* pick fastest

* save config

* fix

* Ignore generated tg_compiled_flags file

* helper

* cleaner

* whitespace not needed

* no shebang

* whitespace
2026-04-08 13:55:00 -07:00
Andi Radulescu 19d56f685b DM: auto reset audible alert coming to a stop (#37071)
* dm: suppress audible alert at standstill

* test: driver distracted then stops at standstill

* use recovery instead

* add back

* fix comment

---------

Co-authored-by: ZwX1616 <zwx1616@gmail.com>
2026-04-07 22:11:00 -07:00
Harald Schäfer 508863e5a8 Long policy: less creepy (#37755)
* fix

* better
2026-04-07 21:49:31 -07:00
Shane Smiskol b0b9079437 bump opendbc (#37775)
fix opendbc
2026-04-07 17:57:44 -07:00
Kacper Rączy 08401a96c2 modeld: frame delay (#37731)
* Frame delay

* Multiply

* If replay

* For long too

* DT_MDL / 2

* Shorten comment

* Just 50ms

* Remove REPLAY const
2026-04-06 21:15:38 +00:00
github-actions[bot] e541489b33 [bot] Update Python packages (#1793)
* Update Python packages

* need this

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
2026-04-05 21:04:24 -04:00
Harald Schäfer 052692b25d OP model 7 (#37760)
* a76ae294-e61a-43b8-b07e-c3496dbfc5ff/100

* recompile

* unused

* correct naming
2026-04-03 09:34:03 -07:00
Jason Wen b5d2026fc7 sunnypilot models: support for on-policy models 2026-04-02 21:14:39 -04:00
Jason Wen d398f9951e Merge branch 'upstream/openpilot/master' into sync-20260401
# Conflicts:
#	.github/workflows/auto_pr_review.yaml
#	.github/workflows/repo-maintenance.yaml
#	README.md
#	SConstruct
#	docs/CARS.md
#	opendbc_repo
#	panda
#	selfdrive/car/card.py
#	selfdrive/controls/controlsd.py
#	selfdrive/selfdrived/selfdrived.py
#	selfdrive/test/process_replay/migration.py
#	selfdrive/ui/translations/app_fr.po
Platform List: sync with latest
Sync: `commaai/panda:master` → `sunnypilot/panda:master`
2026-04-02 21:14:23 -04:00
Armand du Parc Locmaria 55c3885742 bump tg (#37700)
* bump tg

* bump tg

* assign

* bump

* cpu llvm

* frame buffer updated in place, no need to return

* don't bake in stale pointers

* fix update image output indices

* lint

* bump
2026-04-02 09:16:11 -07:00
Harald Schäfer cb32793300 OP model (#37740)
* Off policy model

* 2f70b996-c604-4a46-9ac9-13ce7534605b/100

* misc fixes

* 1cc1791b-4555-41ce-a5cb-ce046967075a/100

* fix model

* 6ab6fae5-fbbd-4ad0-928a-b33794f60dba/100

* recomp

* update models

* qxfinally correct

* b8b96ac6-7918-401a-a862-eaf1fdbba88d/100

* wrong plan

* wrong plan

* Vf9b3fb5f-4d0d-4dcb-bc3a-5e94d1fdcdaa/200

* bump dbc

* ready to merge

* rename to on-policy

* Just cleanup big models for now

---------

Co-authored-by: Kacper Rączy <gfw.kra@gmail.com>
2026-04-01 16:24:50 -07:00
ZwX1616 d8569b07eb DM: Lancia Delta HF Integrale model (#37696)
* 00c00ac7-7b6e-4546-b86f-7ddd5f0596b4

* mici cleanup

* update msg

* rename
2026-04-01 16:14:15 -07:00
ZwX1616 5dcaf3bef8 DM: fewer alerts during maneuvers (#37751)
* 2in1

* clip

* drop aodm lowspeed

* cleanup

* add lower bd

* that was random
2026-04-01 00:40:13 -07:00
Shane Smiskol bf43c7e8c7 fix scaled exclamation point 2026-03-31 18:22:56 -07:00
Jason Young 8badc7d813 controls: HKG angle control saturation from car port safety (#37746) 2026-03-29 00:20:35 -04:00
Daniel Koepping 6b94c47c6a Lateral maneuver report (#37562)
* lateral report

* mutually exclude buttons

* gating

* set maneuver

* add timer

* timer text

* fix plot

* use curvature

* more curves

* fix gating

* rm delay

* highway speed only

* msg

* add sine

* add step-down

* use relative

* text

* stabilize

* tuning

* windup

* text

* winddown

* no windup

* tuning

* more tuning

* more

* formatting

* test faster

* extend sine

* report crossings

* add readme

* clean report

* fix lint

* gating

* fix

* straighter

* compensate roll

* rm abs roll

* len

* Revert "rm abs roll"

This reverts commit a22d6bb136f90d2bf997e6b9aeee2f784398ef42.

* Revert "compensate roll"

This reverts commit dfda52119cc4a2e29ac2854b9154c08459086fea.

* print actuators

* show curve and roll

* tune roll

* text

* slower

* timer

* too much banked streets in US

* readme

* filter incomplete

* plot jerk

* plot angle jerk

* lil edits

* fix lint

* apply suggestions

* better table

* apply comments

* clean

* shane comments

* deflicker

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
2026-03-27 13:31:00 -07:00