* services: increase logMessage queue size
logMessage and errorLogMessage defaulted to SMALL (250KB) after
bcdeec3133, but logmessaged allows messages up to 2MB. The msgq
assert requires 3 messages to fit in the queue, so any log message
over ~83KB crashes logmessaged. This happens on dirty devices when
updated logs the full git diff output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* use BIG queue size to fully cover 2MB cap
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* 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
* replay: add dragging gesture support
* update dragging to support distance and duration; update mici script to go through settings
* refactor
* fix and add network
* add more
* interact device
* fix
* match statements
* more
* improve
* simplify script
* add keyboard test
* format
* simplify
* improve
* comment
* improve
* clarify
* clean
* simplify
* simplify
* move
* improve
* more delay
* simplify keyboard test
* simplify
* comment
* add onroad alert tests to mici
* scroll less
* test offroad alerts
* remove space
* scroll faster
* more toggle tests
* back to home
* test settings onroad
* fix pairing qr code
* add replay progress bar
* add replay progress bar
* simplify
* correct comment
* remove _
* we don't need this
* change click
* add return types
* fast typing
* use frames instead
* use frames instead
* update
* disable in CI
* +1
* fix script
* refactor how mici replay script cases are built
* refactor
* refactor: rename helper function for exploring settings in build_mici_script
* remove onroad settings check
* refactor
* simplify
* refactor: use explore_setting in more places to reduce duplication
* add type
* refactor: simplify explore_cases function by removing swipe_wait parameter
* add case to open wifi selection
* refactor: enhance run_actions to support after_each callback for interaction tests; rename explore_cases to scroll_through_cases
* add review training guide
* update comment
* comments
* comment
* fix swipe back
* scroll: use iOS-style weighted velocity averaging for fling
Weight older velocity samples more heavily on finger release to produce
more consistent fling velocities. The last touch samples before lift are
noisy (finger decelerating, rotating, jittering), so we trust the earlier
steadier samples more: 60% oldest, 35% middle, 5% newest.
Reverse-engineered from iOS UIScrollView by the Flutter team.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Update system/ui/lib/application.py
* Apply suggestions from code review
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* modeld: quiet do_chunk output during scons build
SCons default-prints Python function actions with all their args.
The do_chunk function has 1259 tinygrad source files as deps, causing
a wall of text during builds. Wrap in SAction with a short strfunction.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* split compile and chunk into separate Commands
cleaner fix: do_chunk only depends on the pkl, not tinygrad files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* actually epic
* use child
* inside label
* revert other stuff
* no reset_shimmer: bool
* try 2 char
* not worth dynamic chunking
* bring back
* rm
* no emoji support on shimmer
* fix pairing qr code
* test pair device
* merge and pick from explore-more
* key
* fast click
* again
* add branch selection test
* click uninstall
* test prime states
* view regulatory
* test expand calibration desc
* override interactive timeout
* reorder
* remove todo
* update
* clarify
* test reset calibration
* update
* add calibration params test
* comments
* reorganize
* clarify
* add click through training guide
* this wasn't atomic!
* start mici
* always require internet to download installer
* this made it never use cached fetch!
* this skipped installer when it wrote it raced trying to run
* entirely remove
* clean up mici
* fix tici setup
* inline
* works
* more explicit pass texture like everything else, esp since sizes are not all same
* fix some confirmation dialog images
* fix image sizes
* do bigbutton
* fix
* static
* try this
* clean up and use it
* clean up
* simpler
* do this later
* do onboarding & reset
* do setup
* temp
* Revert "temp"
This reverts commit 22fbbf5c813b4915e784b9ee235ed3bde2229048.
* simpler again
* missing size
* fix
* Revert "fix"
This reverts commit 53c4e29e614181029dc8e9a2baea7694957dc8fb.
* nl
* Smooth
* Min lat accel range
* Make the moving average masked
* Bring back the range
* Update test
* Smooth desired signal too
* Diff
* Gaussian
* Fix fmt
* Remove newline
_shake_start defaults to None, but `None or 0.0` treated it as
time zero, so any button rendered within 0.5s of window creation
would play the shake animation.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* try this
* try this
* fix
* delay hide on wifi/internet
* 0.5
* fix flash on forgetting
* also reset
* fix
* todo
* dupl
* wifi after
* bring back cmts
* fix spotty internet check while downloading!
* cmt
* cmt
* todo
* resort
* more delay
* redundtant
* nl
* scroll over for wifi (waiting) OR internet (continue)
* fix scroll
* fix scroll
* show_event fully manages its scroll over, not some weiird delay mixed with other triggers via fake rising edge
* instant if not popping
* cmt
* better update flow
* clean up
* clean up
* cmt
* clean up
* todo
* failed scroller
* fix for setup
* show wrong url
* setup failed is red not orange
* clean up and fix all flashing in setup
* new updater zipapp
* fix deadlock from agnos.py throwing timeout errors, never hitting failed screen! + try catch the whole process for errors while starting process
* add todo
* set core affinity like setup in updater
* fix import
* rezip
The Python file downloader was making a separate HTTP Range request per
1MB chunk via URLFile.read(), causing massive latency overhead. Use a
single streaming GET request instead, matching the old C++ behavior.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* pressed state for larger sliders
* wifibutton
* fix
* clean up
* some work
* don't nee this now
* stash
* more
* new pressed bigcircle
* black
* interp
* just check position
* clean up and fix slider reset
* fix custom
* no speed
* stash
* even chatter couldn't figure this one out
* makes sense to combine together, less split mentality
* clean that up
* fix lag
* match ui.py prio to eliminate lag on wifiui show event. separately, why is this slow?
* night mode
* delay scroll over
* fix auto scrolling
* stash
* waiting looks disabled
* clean up and don't reset sliders until user goes back
* rm
* fix
* add termsheader back
* fix callbacks
* ctrl alt l
* fix text spacing
* clean up
* stash
* fix style
* i want to go back
* guard on exit
* kinda useless stuff
* Revert "kinda useless stuff"
This reverts commit a4acbac31523408f358c5f68262cb630aa13ad8e.
* Revert "guard on exit"
This reverts commit 63ccfbf64edfbe1a144a441681f5ec78d8021ff7.
* wide
* setup pressed!
* grow animation
* 10s after initial
* slow fast
* start onboarding (terms)
* rm duplicate page
* add qr code
* final grey
* fix visual lag on first start
* clean up dead code
* dont exit from cancel
* revert grey
* clean up, REVIEW ME
* Revert "clean up, REVIEW ME"
This reverts commit c66fa60947c5f922520e7cf58c630b4bbe2d0177.
* reboot slider
* kb fix
* Revert "kb fix"
This reverts commit 883039448e6c37ae1d25d4f75ada6e96b6736358.
* ./ goes to letters
* Revert "./ goes to letters"
This reverts commit 0d97442427edb1a000638863a3f2181204ddc160.
* clean up
* some more clean up
* more
* clean up
* rename block
* reset pending scroll so it can't use stale data in rare sequence
* remove unused assets
* clean up imports
* fix updater
* clean up
* fix double reboot
* demo time - reset to setup on reboot
* let manager restart
* Revert "demo time - reset to setup on reboot"
This reverts commit 9468657e8438a1ce8fcb5266403b7bb3539f131f.
* url... and no grow animation on start button
* one next button
* grow instead of shake wifi button
* 36 pt font size in setup
* touch up onboarding a lil
* Revert "rm cpp bz2 (#37332)"
This reverts commit f4a36f7f74.
* more onboarding and clean up
* clean up
* wow what an amazing future clean up
* back to software select
* fix
* copy
* fix dm confirmation dialog not disabling widget underneath, all fixed with real nav stack in here
* uploading
* lint
* add review terms to device w/ close button
* todo
* remove old Terms vertical scrolling classes
* use new Scroller!
* installer
* tweak to match figma exactly
* revert
* fixup updater
* demo day
* demo day v2
* ... for percent while finishing setup
* demo day v3
* demo day v4
* remove ...
* demo day v6 -- "why does it do that!!"
* demo day v7 -- no flash
* hmm
* demo day v7
* prebuilt
* revert demo day
* scroll after pop animation
* back -> retry
* stash fixes
* damn, need back_callback
* scroll over immediately if already in network setup
* tweaks
* going down is confusing
* more
* Revert "more"
This reverts commit 29ce75b1f81eb40e7527a71d27842d9a66802206.
* Revert "going down is confusing"
This reverts commit 0cd2ae30d4135db1ccba6478429b45e886714e9c.
* dupl
* nl
* sort functions
* more clean up from merge
* move
* more
* dismiss to download (hack)
* Revert "dismiss to download (hack)"
This reverts commit 53c45ed1f63db1f0cebbce0dfab1777c8658f505.
* onboarding work
* set brightness and timeout in root onboarding only
* clean up
* type
* keep 5m for settings preview
* switch back to letters on . or /
* reset first step scroller
* custom software warning goes down network comes up and back cb fix
* clean up
* smaller qr
* ReviewTermsPage just for device as NavWidget
* clean up
* installer: stay on 100%
* reset has internet while in wifiui
* try this
* try this
* see what error we get exactly
see what error we get exactly
* not final solution but see how good
* rm
* copy changes
* reset on disconnect
* for separate pr
* Revert "reset on disconnect"
This reverts commit 552372fa4d497ba7d9de7f2edb730ee63798ffa4.
* revert this, too buggy
* fix for updater
* sort
* fix test
* minor cleanup
* more leaks than this rn
* onboarding clean up
* clean up application
* click delay to small button
* clean up
* reset more state
* fix training guide not cleaning up driverview
* Revert "fix training guide not cleaning up driverview"
This reverts commit cac7c5f436056cc9e747f80905d390790fb83c22.
* simpler fix :(
* nice catch, if you go back to terms it will reset 300s timeout and brightness
* duplicate show
* unused
* vendor libyuv from dependencies
* relock libyuv to latest vendor branch
* install cmake in macOS setup when missing
* lock
* unused?
* rm that
* no yuv for the larch
* pressable
* slow
* fast and looks great
* 0.075
* clean up
* fix missing
* clean up
* mici setup use nav stack!
* remove flat state!
* todo
* clean up
* clean up ordering
* clean up
* reset progress on show, dont mutate nav stack from thread
* reset text on show too
* rename
* clean up
* jenkins: move panda tests before camera tests
* force this time
* Revert "force this time"
This reverts commit 53508225d39d63b97ff7ecc3a0181a27b5948d1b.
* i like this better
* clean up
* debug
* fix able to click navwidgets that are closing (tested at rc 10)
* add dismiss guards
* fix keyboard so it unselects
* pairing: use dismiss
* main todo
* rm pop_widgets_to!
* reset dismiss state on show event
* debug pop animation bugs
* Revert "debug pop animation bugs"
This reverts commit 9239f2e12cf79b1f75d15d39262fdd15ff5a5200.
* revert
* cmt
* type
* clean up
* now do the todo
* treat using widgets, not idxs, as a separate clean up for later
* actually if not navwidget this is buggy
* fix
* short
* simpler
* clean up
* more
* great clean ups
* better name
* remove useless _can_swipe_away
* reorder
* rename
* state machine is nice but might be too much
* Revert "state machine is nice but might be too much"
This reverts commit f8952969243a2eac3ed5f84793ba7b0c0cdf24bf.
* got a better name out of it though
* clean up
* clean up
* rm!
* rm
* and this
* and
* clean up
* stash
* widgets animate out
* Revert "stash"
This reverts commit eac3493509cff6f2c64111d803c7fef21a1aa2dd.
* abstract
* works also
* works also
* support pop_widget
* only animate top
* callback in request pop
* tune it
* fix
* fix
* try this
* Revert "try this"
This reverts commit 191373a1b35917ee3a361afe73b16eeb60d0a20e.
* debug
* debug
* clean up
* simple test
* clean up
* clean up
* clean up
* clean up
* clean up
* clean up
* clkean up
* re sort
* fine
* yes
* add back bz2 support with vendored bzip2
Reverts f4a36f7f7 ("rm cpp bz2") to restore bzip2 decompression
support in replay/cabana tools, and replaces the system libbz2-dev
with a vendored bzip2 package from commaai/dependencies.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* relock bzip2 from releases branch
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* test wifi state machine
* clean up and another few tests
* no unittest :((
* clean up
* clean up
* try to repro on device
* try to repro on device
* nice, the flicker is covered by test_user_initiated_skips_dbus_lookup!
* add todo soon to be all fixed
* documentaiton
* test the thread races too
* _fire -> fire
* duplication
* new state
* fix some tests
* format
* combine similar tests
* use process_callbacks
* clean up
* collapse two tests
* rm nl
* previous messy test
* delete old
* asked another to ask questions
* should fail
* this works but i think i know a better way
* something like this
* hmm
* this works
* rm useless test
* good stash
* Revert "good stash"
This reverts commit c2dddf0810286cb56e2418dd6f7085c2239e5109.
* replace python3-dev apt install with vendored package
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* keep for agnos
* cleaner
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* Reapply "feat(lpa): `at` client + list profiles (#37271)" (#37322)
This reverts commit ddf8abc14a.
* lpa: fall back to ModemManager D-Bus when serial port unavailable
On older devices, ModemManager still claims /dev/ttyUSB2, so the
direct serial open fails. Try serial first; if it can't be acquired,
transparently route AT commands through MM's D-Bus Command() interface.
Co-authored-by: Cursor <cursoragent@cursor.com>
* lpa: add serial/dbus transport labels to debug logs
Co-authored-by: Cursor <cursoragent@cursor.com>
* no
* lint
* here
* const
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
* disable forget for tethering
* nets
* put in wifiman
* batch
* Revert "batch"
This reverts commit 9af20c1c7513c22bf9283b2f02514373fa981f50.
* clean up
* more
* more
* use vendored eigen from dependencies repo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* lock
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* use vendored zeromq from dependencies repo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* lock
* rm more crap
* use vendored git-lfs from dependencies repo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* from releases
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* rm extra LLVM install on macOS
* update that
* rm brew cache
* no cache
* Revert "no cache"
This reverts commit a3f8eff234935d4bb27d4bd785ad8a710496a159.
* use vendored zeromq from dependencies repo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* lock
* rm more crap
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* start
* start
* lil more
* add forget
* fix forget button scrolling
* push right a bit
* fix forget press
* add divider
* fix scroll panel
* better forget and overriding
* revert this
* check icon
* cursor merge conflict fix
* fix rounding and forget btn placement
* scroll indicator
* 65%
* calibrate
* try loading animation
* push to device
* top right
* bottom right
* no red
* top left
* bottom left
* down 2px
* WHY DOES NETWORK MANAGER KEEP CRASHING AHHH
* reduce round trip calls in update_networks
* clean up and combine getallaccesspoint and activeaccesspoint
* cmt
* animate big button over smoothly. super hacky, need to clean up
* animate
* remove old widgets and images
* remove status label, tune loading animation opac back
* connecting is a little buggy still
* add back missing network and don't pop
* some fixes
* "clean up"
* fix lag in animation
* fix adding saved connection to start
* remove saved network to start, divider
* animate up, over, and down
* revert for now
* remove fancy complex animation for now, sorry nick
* remove divider + clean up
* more clean up
* more clean up
* fix forget button press
* cmt
* tweak loading animation behavior
* new lock fix wifi
* rm old lock
* great catch by opus
* clean up
* debug
* fix touch events that are down -> up in one frame (why it only bugged on mici)
* clean up
* eager forgetting
* this SHOULD be full eager forget, more than i thought
* fix wifi slash positioning
* move forgotten networks after saved networks
* temp keep
* test on device
* fix
* see 65
* 5 best
* fix double render double brightness
* can click bottom right now
* disable touch while animating
* fix animation
* can scroll while animating, not tap
* not great yet
* clean up
* didn't work
* always update networks after activation
* stash
* move to update_state
* debug
* debug
* temp
* fix ip and metered flickering when updating at high freq (or rare race condition)
* fix
* if you give it less than 8 chars it never clears connecting
* lock no int
* better wrong password handling
* shake when wrong password
* nm set connecting when it connects on its own
* loading bottom right
* sort connecting first
* sort by unquantized to put strongest first
* clean up
* clean up nm
* clean up nm
* shorter
* fix crash
* 0.5s
* debug
* revert and try something else
* stash
* no
* rev
* use signals
* more
* not wrong password if ever connected after wrong
* similar to gnome shell, don't save connection that never successfully activated.
we do this by creating temporary memory connection with persist: volatile that deletes itself if failed, and then only write to disk when activated
* clean up
* cover all states
* clear if connecting too
* remove pritn
* might need this for CoxWifi
* whoops
* save last pass
* Revert "whoops"
This reverts commit 83a133955246ce32dcf119ededd8b01b3162a866.
* Revert "might need this for CoxWifi"
This reverts commit cddb8b35be152ed154462b188283f9d5a844583d.
* this may be less noisy for low strength networks, but less accurate as previous was reflecting nm state better
* Revert "this may be less noisy for low strength networks, but less accurate as previous was reflecting nm state better"
This reverts commit 740286c846556f32125a96bfe6ecf128300af0d8.
* race condition with volotile not removing conn fast enough/update networks not firing fast enough
* Revert "save last pass"
This reverts commit 7249a58a18b11487fd0370cee36e40a17f7ac521.
* revert some wifiman stuff to master
* not needed
* rm active ap
* remove old dead code
* do after
* always send forgotten callback so we can't be stuck in forgetting state forever
* reproduce race condition where connection removed signal takes a while to remove, then update networks keep is_saved true
* fix from merge
* nice, we can remove some eager code now for treating is_saved as not saved after forgot since it's live
* more
* rm
* simplify passed in callbacks
* clean up
* need this one check back for wrong password to hide forget for a split second
* opus says this is simpler 🤔
* Revert "opus says this is simpler 🤔"
This reverts commit 71472e5b383d7f2083d95ba1188070f41ae14775.
* another attempt
* Revert "another attempt"
This reverts commit 31f30babe656f9cad24399bc2196bb6e7ab79bbd.
* fix from merge
* some lcean up
* fix
* fixes to make work with new animation
* clean up
* this works too
* simplify loading animation behavior for now, revert wifi scan time
* clean up
* temporary fix
* stash
* Revert "stash"
This reverts commit 7471dbdc452807b33b4868a98dd8565681b2e44d.
* stash
* Revert "stash"
This reverts commit e0e5e6e861734320ce5dea5626086784577cb334.
* this check was because is_connected could have been stale from Network as the source
* nm can show connected/connecting to network with 0 aps for a while if strength is low, move out of range under those states
* stash
* Revert "stash"
This reverts commit 5ec3b454d54392523947f6477f551657d3863a6d.
* todo
* todo
* order
* don't need temporary fix anymore
* cmt
* order
* unused i
* stash
* test seemed to work
* simplify
* clean up
* move under
* Revert "move under"
This reverts commit ce940cffb32378cbe5a69edaf6fc9d9cec202e54.
* back
* fix
* already 90% of the way there and not 144 lines
* nice
* lift properly
* lift, wait, move, wait, drop!
* some clean up
* epic, he ran a simulation to turn opacity filter into pixels
* scroll independant move animation without layout!
* move into function
* clean up
* rm
* overlay behind moving item
* Revert "overlay behind moving item"
This reverts commit 598e22363eb66af6496fe5f1eea8e643d4c2adbb.
* simpler overlay under lifted item
* support multiple animations at once
* Revert "support multiple animations at once"
This reverts commit 3ce6c8281053ee4831ceb88cacf66c343fc7d7ff.
* clean up
* cmt
* clean up
* kinda works
* Revert "kinda works"
This reverts commit ff050c6afc058788b3189a0acc202ada17353504.
* clean up
clean up
* clear overlay
* diff report
* don't break more
* split nav widget out
* clean up
* clean up
* fix
* work
* small enough to not be function
* nah we want intflag
* clean up
* always runs
* more clean up
* prep for scroller
* opacity for settings
* clean up layout
* set enabled
* rm
* initial
* start to support nav stack in settings panels + fix some navwidget bugs
* add deprecation warning and move more to new nav stack
* fix overriding NavWidget enabled and do developer panel
* fix interactive timeout and do main
* more device, not done yet
* minor network fixes
* dcam dialog
* start onboarding
* fix onboarding
* do mici setup
* remove now useless CUSTOM_SOFTWARE
* support big ui with old modal overlay
* reset can be old modal overlay, but updater needs new since it uses wifiui
* flip name truthiness to inspire excitement
* all *should* work, but will do pass later
* clean up main
* clean up settiings
* clean up dialog and developer
* cleanup mici setup some
* rm one more
* fix keyboard
* revert
* might as well but clarify
* fix networkinfopage buttons
* lint
* nice clean up from cursor
* animate background fade with position
* fix device overlays
* cursor fix pt1
cursor fix pt2
* rm print
* capital
* temp fix from cursor for onboarding not freeing space after reviewing training guide
* fix home screen scroller snap not resetting
* stash
* nice gradient on top
* 40
* 20
* no gradient
* return unused returns and always show regulatory btn
* nice!
* clean up
* new_modal is always true!
* more clean up
* clean up
* big only renders top 1
* fixup setup and updater
* stash
* Revert "stash"
This reverts commit 3cfb226ccb51869ed1f7d630b5fdd6725ad094d5.
* fix mici keys coming in from top
* clean up
* fix mici dialogs like tici, pop first incase call back pushes
* clever way but not not
* Revert "clever way but not not"
This reverts commit f69d106df61262f049df20cc1a9064ca1e6feeb7.
* more setup
* mici keyboard: fix not disabling below
* cmt
* fix wifi callbacks not running in rare case
* clean up network
* clean up network
* clean up dialog
* pairing
* rm
* todo
* fix replay
* they push themselkves!
* clean up ui_state
* clean up application
* clean up
* stash
* Revert "stash"
This reverts commit 07d3f5f26c99ef891086b6fe03095d53a62b8631.
* typing
* lint
* Chunk tinygrad pkl below GitHub max size
* pull that out
* rm glob
* make work
* Single name def
* unused comment
* more cleanups
* revert that
* 10MB overhead
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* feat(lpa): implement list_profiles in TiciLPA
Add AT command serial interface, TLV parsing, and ES10x transport
to support listing eSIM profiles (SGP.22 v2.3). TiciLPA is a
singleton that maintains a persistent connection to the modem.
* feat(lpa): close TiciLPA serial connection on exit
Register atexit cleanup so the logical channel and serial port are
released when the process exits, even on crashes or early exits.
* feat(lpa): close stale logical channels on init to prevent timeouts
* trying to brick it
* Revert "trying to brick it"
This reverts commit 46a0467314479c92d2cf331280521a1263f6cc43.
* feat(lpa): remove ensure_capabilities check on init
Target devices are known to support the required AT commands,
so skip the capability probes and stale channel cleanup to
speed up initialization.
* feat(lpa): enable debug logging via DEBUG=1 env variable
* muuuch better
* revert
* cleanup
* constant
* initial
* start to support nav stack in settings panels + fix some navwidget bugs
* add deprecation warning and move more to new nav stack
* fix overriding NavWidget enabled and do developer panel
* fix interactive timeout and do main
* more device, not done yet
* minor network fixes
* dcam dialog
* start onboarding
* fix onboarding
* do mici setup
* remove now useless CUSTOM_SOFTWARE
* support big ui with old modal overlay
* reset can be old modal overlay, but updater needs new since it uses wifiui
* flip name truthiness to inspire excitement
* all *should* work, but will do pass later
* clean up main
* clean up settiings
* clean up dialog and developer
* cleanup mici setup some
* rm one more
* fix keyboard
* revert
* might as well but clarify
* fix networkinfopage buttons
* lint
* nice clean up from cursor
* animate background fade with position
* fix device overlays
* cursor fix pt1
cursor fix pt2
* rm print
* capital
* temp fix from cursor for onboarding not freeing space after reviewing training guide
* fix home screen scroller snap not resetting
* stash
* nice gradient on top
* 40
* 20
* no gradient
* return unused returns and always show regulatory btn
* nice!
* revert selfdrive/ui
* let's do tici first
* bring back ui
* not sure why __del__, SetupWidget was never deleted?
* device "done"
* network "done!!"
* toggles "done"
* software "done"
* developer "done"
* fix onboarding
* use new modal for debug windows
* and aug
* setup "done"
* clean up
* updater "done"
* reset "done"
* pop first before callbacks in case callbacks push
* fix cmt
* not needed
* remove two commented functions for mici
* clean up application
* typing
* static
* not sure what this means
* fix big
* more static
* actually great catch
* fix cmt
* fix
* meh
* unclaud test is best
* yess
* try
* works!
* remove dict handling
* clean up
* more clean up
* remove trash
* fixup
* fix up onboarding again
* fix drivercameradialog
* don't show test window
* more widgets
* fix all
* Revert "fix all"
This reverts commit 42d3537c9314af382961a16443a63faed202b157.
* move and whitelist
* clean up
* more test + ignore
* to fix
* temp
* Revert "temp"
This reverts commit 215ecbb8a8fc0e6826d45b2c0d57999c7a19a400.
* temp
* rev
* reproduce race condition where connection removed signal takes a while to remove, then update networks keep is_saved true
* fix
* Revert "reproduce race condition where connection removed signal takes a while to remove, then update networks keep is_saved true"
This reverts commit cf7044ee955777db16434ab81c520bbe798c9164.
* not anymore
* more clear
* safe guards
nl
* signal driven wifi state
* copy exactly
* copy signal handler
* remove is_connected
* Revert "remove is_connected"
This reverts commit f2246a70f4a29e9f3405947ca43d9404578c9d2d.
* do 3 network
* missing reason
* do wifiui
* clean up mici updater
* rest
* or not connecting
* clean up is_connected
* clean up wifiui
* match wifiui state more exactly in network panel for wifi button
* update active connection info after activation (used to do in _update_networks)
* clean up prints
* more
* rm
* not needed
* clean up state machine a bit
* more
* more
* indent
* final clean up
* debug
* debug
* wait for ip?
* more
* revert
* just to see
* ensure we emit activated even if we fail to get conn path from dbus
* hmm
* fine
* back
* back
* Revert "back"
This reverts commit 6464abe243c2a3bbf62b8f9a109b72ec3ddb3817.
* debug flickering on forget then connect to another. commit before this is good
* fix rare flicker when forgetting network and immediately connecting to
another
* clean up
* clean up router stuff now
* ugh wtf
* stash -- wtf
* Revert "stash -- wtf"
This reverts commit 756a92a9c0530a16917303424e26447f258f17e4.
* Revert "fix rare flicker when forgetting network and immediately connecting to"
This reverts commit 90c5fc14551726765ab2524e7866ee8b3c5dee7c.
* remove debug
* fix
* add issues
* add flow
* match previous behavior
* it doesn't fix the flikcer
* more atomic
* Revert "more atomic"
This reverts commit ead87c5a7a4030719b64138c12b9154ec82e73d9.
* last test!
last test!
* really the race is here?
* atomic wifi_state replace
* not slow
* clean up
* WifiManager: fix all networks showing as connected when no active connection
When there's no active WiFi connection, _get_active_wifi_connection()
returns None. This caused `self._connections.get(ssid) == None` to be
True for all unsaved networks, marking them all as connected.
Co-authored-by: Cursor <cursoragent@cursor.com>
* ltl
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
* ui: add edge shadow effect to horizontal scrollers in settings
Adds a black gradient falloff shadow (20x240, 100%→0% opacity) on the
left and right edges of horizontal Scroller panels. Enabled via an
opt-in `edge_shadows` parameter on Scroller for easy per-screen control.
Enabled on: settings menu, toggles, network, device, developer.
Not enabled on: home screen carousel, vertical scrollers, setup screens.
Co-authored-by: Cursor <cursoragent@cursor.com>
* ui: reduce edge shadow opacity to 80%
Co-authored-by: Cursor <cursoragent@cursor.com>
* what on earth is this
* some lines are ok
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* refactor: improve video synchronization logic in HTML report generation
* feat: include description of which video is longer in report; refactor stuff and add types
* refactor: simplify HTML report generation and remove extra formatting
* reduce diff
* fix video name
* reduce diff
* reduce diff
* fix
* parentheses
* fix I guess
* Remove gcc@13 installation from mac_setup.sh
Removed installation of gcc@13 from mac_setup.sh.
* no cache
* Revert "no cache"
This reverts commit fc27f7dc9e6dab4b61703433130531f12dbe334b.
Widen the hint label rect so it doesn't reserve right-side space for the
hidden backspace button, preventing unnecessary text eliding. Also show
the blinking cursor over the hint and add trailing ellipsis to hint
strings for consistency.
Co-authored-by: Cursor <cursoragent@cursor.com>
* debug why so slow
* forget after
* i'm not sure why this is a thing
* better forget connecting reset
* ????
* has lag
* fix
* clean up
* should be fine
* add networks to end, remove bad scroller restore logic that sometimes starts in the middle
* works
* almost
* wifi slash
* clean up
* clean up
* opactiy
* more clean up
* more clean up
* set enabled and network missing on regain network
* cmt
* Revert "Revert tgwarp again (#37161)"
This reverts commit 45099e7fcd.
* Weird uv sizes
* Fix interleaving
* Fix on CPU
* make CPU safe
* Prevent corruption without clone
* Claude knows speeed
* fix interleaving
* less kernels
* blob caching
* This is still slightly faster
* Comment for blob cache
* like c++ wifiman
* rename to scan
* can do this
can do this
* Revert "can do this"
This reverts commit 295f7f49d448c6aacdde2ef810904df86357840b.
* kinda useless now
* clean up
* fix recent connect regression from connection not being known yet
* always update connections in background, keep track via signals only. no getallconnections each time one is added/deleted. matches c++
* works
* clean up
* clean up
* clean up
* new/removed conns signal
* clean up
* only get connections when adding/removing not every refresh
* add debug
* block
* Revert "block"
This reverts commit 30bbffca8d2db21c53d7a3601ae46bf05e2a7cd5.
* rm debug
* block on any new message, faster conn rem/add reaction
* better names
* correct from bottom alignment
* temp
* fix scale animation w/ btn_y
* home settings are always 64
* cleanup
* some clean up
* make 23 const
* rev
* more
The pinned SHA was v6.0.4, which is incompatible with actions/checkout@v6
and causes a "Duplicate header: Authorization" 400 error during git
remote operations. See peter-evans/create-pull-request#4272.
v3 renamed inputs from kebab-case to snake_case (repo-token -> repo_token,
pr-message -> pr_message). The old names were silently ignored, causing
"Input required and not supplied: issue_message" errors.
Hi! The point of this pr is to make the model run easier to read. On the latest tinygrad numpy().flatten() empirically does the same thing as the internal contiguous().realize().uop.base.buffer.numpy(). numpy() is also documented (docstrings), which can assist new contributors in learning what each potential execution does. Torq_boi or yassine, I know you want proof in the code base, so here it is. As of tinygrad commit 2f55005:
in tinygrad_repo/tinygrad/tensor.py
Lines 316-318 (def _buffer): ensure the tenso is contiguous() and realized() before accessing the raw buffer.
Line 378 (def numpy): Wraps the buffer access and adds a reshape to match the tensor shape.
self._buffer() is what executes contiguous().realize() and returns the buffer object.
Calling numpy() on that buffer object returns a 1D array (defined in tinygrad/device.py:193 via np.frombuffer).
The reshape(self.shape) at the end of Tensor.numpy() then adds dimensions to that 1D array. The added .flatten() removes those dimensions, flattening it back to a 1D array. Effectively the same as what is currently done, but less complex.
* Revert "revert tg calib and opencl cleanup (#37113)"
This reverts commit 51312afd3d.
* power draw is a lil higher
* just don't miss a cycle
* fix warp targets
* fix tinygrad dep
* Revert "Remove all the OpenCL (#37105)"
This reverts commit d5cbb89d84.
* Revert "rm common/mat.h"
This reverts commit 4ce701150a.
* Revert "Calibrate in tg (#36621)"
This reverts commit 593c3a0c8e.
* adjust overlay sizes and wrap metadata text for mici
* comment
* adjust overlay rendering to dynamically calculate line height for wrapped metadata text
* render time first so we can use width in margin calculation
* update comment (to retry failed CI actually)
* increase metadata size on mici
* BigButton: remove unused scrolling
* start
* debug
* stash
* actually removing the hardcoded size for multioption fixes it
* back
* cursor does sub label
* clean up
* more
* more
* try this for now
* nick suggest
* clean up
* more
* more
* always check, no flickering from has inter -> waiting -> has inter from the reset
* 1s interval. i see read timeouts at 0.5s sometimes
* clean up
* cursor
* Revert "cursor"
This reverts commit 13ec6312aa7f71b58771f8789456e97c4481856a.
* clean up
* fix non-determinism in selfservice model build
also trim down model compile dependencies to the minimum required
* Apply suggestions from code review
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Give this a try
* can codex debug?
* simpler
* Revert "simpler"
This reverts commit 572335008c1c719aa985d14bd740253ff94b94a9.
* better
* cleanup
* try again
* tie
* try this
* try this
* do tests fail without this?
* doesn't seem needed
* unused
* don't need duplicate
* passes CI?
* try this
* try this
* try this
* I don't understand this, so back to before
* keep that alignment
* set uv_height
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Remove cython for transformations
* Add new test
* Switch back to program to fix mac builds
* Convert to Python instead
* Fix failing builds
* lint
* Implement conversion in pure python/numpy
* Add more tests
* Fix bugs in tests
* tools: add LRU for log cache
* lil more
* cleanup:
* less syscall
* manifest
* cleanup
* cleanup
* lil more
* cleanup
* lil more
* simpler
* lil more
* call
* break
* print
* fix
* rm
* debug
* fix
* yeah ideally wifiui has no clue about this
* clean up
* clean up
* clean up
* only need this
* cu
* rm
* fix
* rm confirm mode
* kinda works
* how
* disabled
* do this
* do this
* wait
* here
* something
* fade in
* 4s
* clean up
* copy
* help
* 30deg center
* stuff
* reset_interactive_timeout
* rm
* simple
* simple
* copy
* 1.5x
* smooth opacity
* power off slider
* fix
* new icons and gradient and rounded
* final check
* fix
* how the hell did this work
* clean up
* clean up
* flip
* cmt
* uh yeah
* remove this
* revert this
* lint
* 45
* clean up
* fix
* no show time
* question
* rm
* no use
* ()
* lint
* call
* test_onroad: absolute memory usage test
* show msgq size
* reduce a little
* bump msgq
* Revert "bump msgq"
This reverts commit 683d0ae9fc754f7b72e2bc4b256e9a3b0a60a127.
* stay
* whoops
* whoops
* fix
* fix div by z
* we can implement layout to fix flashing
* Revert "we can implement layout to fix flashing"
This reverts commit 7278a1e2a6117aec775ef4fabee2fd68b3d064f3.
* random
* clean up
* wtf
* rev
* smooth
* we can implement layout to fix flashing
* snap looks so much better
* fix
* rev
* better name
* cmt
* less random
* even less random
* simpler
* cmt
* clean up
* clean up
* clean up
* Brand Extra Gears Dict added. Gear data removed from CarSpecificEvents Update method, data now held in global variable.
* Added elif for Ford and Nissan events creation. BRAND_EXTRA_GEARS now extracted from CarSpecificEvents
* Amended Chrysler and Toyota create_common_events calls.
* format
* can do this!
* consis
* whoops
* type
---------
Co-authored-by: RJ <ryan@DESKTOP-4S0L5O5.localdomain>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* video diff
* format
* duplicate
* try
* WINDOWED
* ?
* correct res
* Revert "correct res"
This reverts commit f90991192fce93a31d1b581a4f0ff93a7a972337.
* save to report/
* add duplicate
* work?
* fix
* more
* more
* and this
* ffmpeg
* branch
* uncmt
* test preview
* Revert "uncmt"
This reverts commit b02404dbbe515fd861717f831c7bb0243442ddbc.
* create openpilot_master_ui_mici_raylib
* ahh
* push to master
* copy and always run
* test
* does cmt break it?
* who did this
* fix?
* fix that
* hmm
* hmm
* ah this was moving it, and then the job below didn't run on master
* google ai overview lied to me
* use markdown to start
* need to add to one branch
* ????
* oof
* no
* this work?
* test
* try this
* clean up master branch name
* more cleanup
more cleanup
* don't fail for no diff!
don't fail for no diff!
* back
* add to cmt
* test it
* should work
* fix that
* back
* clean up
* clean up
* save to report
* pull_request_target
* sort
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Add Ukrainian lang
* update_translations.py
* Add Ukrainian strings
* Small patch to display translated update states
* Revert "Small patch to display translated update states"
This reverts commit b0545f4e109f451a21e4e5884259dbb881d7a58e.
* Revert "update_translations.py"
This reverts commit 79eea20c33f1b1d542b62a782ab1b67bc9277026.
* fix so these meaningless edits
* ui: add real-time video recording functionality with ffmpeg support
* fix: record at consistent frame rate
* add spaces
* fix type
* refactor: RECORD_FRAMES variable and related logic
* fix: remove unnecessary texture check
* support missing output extension
* add wait for close with timeout
* fix: ensure RECORD_OUTPUT has the correct file extension
* flush on close and terminate if times out closing
* ffmpeg hide banner
* reduce ffmpeg spam
* refactor: streamline ffmpeg arguments for video encoding
* refactor: move size arg to variable and add yub420p conversion for native support
* use render_width and render_height for size
* fix: ensure even dimensions for video encoding when recording
* rm itertools
* simple
* cleanup
* docs
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* almost
* works!
* clean up
* fix
* trash
* Revert "trash"
This reverts commit 951d63382810d444fe08103f406a8c490cfcbe25.
* fix some bugs and use
* clean up
* clean up
* fix clipping
* clean up
* fix
* fix arc artifacts
* works but how
* also this
* Revert "also this"
This reverts commit e8d5ed9af15568dcb178dd6da7a14d2c6191010e.
* clean up
* nl
* clean up
* more
* print
* print
* intern
* start
* move
* common caching
* use constant for slep
* works
* add gating back
* clean up
* more
* match cache logic
* hate this circular
* not needed since sync
* no need for lock?
* even qt had something like _load_initial_state for tests, keep
* clean up
* clean up
* clean up
* loading json as string works, else it will fail to parse json, catch that and log, and next api call will overwrite
* move over firehose
* clean up
* fix test
* no
* flip
* more
* match qt
* consistent
* clean up
* cmt
* fix test!
* checkpoint
* door states, notes
* updates
* not worth it yet
* wordsmith
* more
* more reverse engineering script content
* Revise stationary ignition-only test steps
Updated the steps for stationary ignition-only tests to include closing the driver's door and fastening the seatbelt before pressing the accelerator and brake pedals.
* fix numbering
* add rest of langs
* unifont
* all langs are supported
* add japanese translations
* fix strip!
* add language name chars
* use unifont in lang selection
* add korean
* test all langs
* doesn't work
* unifont font fallback for multilang
* add ar translations
* fix labels not updating until scrolling
* t chinese
* more chn
* we already default
* wrap
* update
* fix thai
* fix missing chinese langs and all are supported!
* clean up
* update
* ??? mypy r u ok ???
* fix default option font weight
* it's adversarial
* try 2
* just do this
* kinda works but doesn' tmatch
* fine
* qt is banned word
* test
* fix test
* add elide support to Label
* fixup
* Revert "add elide support to Label"
This reverts commit 28c3e0e7457345083d93f7b6a909a4103bd50d55.
* Reapply "add elide support to Label"
This reverts commit 92c2d6694146f164f30060d7621e19006e2fe2df.
* todo
* elide button value properly + debug/stash
* clean up
* clean up
* yep looks good
* clean up
* eval visible once
* no s
* don't need
* can do this
* but this also works
* clip to parent rect
* fixes and multilang
* clean up
* set target branch
* whops
* fix multilang dialog height
* split to file
* stash
* Revert "stash"
This reverts commit deb4239fe69f0260420fad03f2350e622e31542f.
* add updater
* add files
* stuff
* try
rev
* stash
* works!
* works!
* this should be the flow?
* cursor wrapping -- it missed entire sections, changed formatting, and didn't use trn properly!!!!!!!!!!!!!!!!!
* update translations
* learned my lesson
* this should be the one thing it's good at
* update trans
* onroad wrap
* spanish
* rename
* clean up
* load all
* Revert "load all"
This reverts commit 6f2a45861c914ffb9d40a5edd15751afd798d614.
* jp translations
* try jp
* Revert "try jp"
This reverts commit d0524b10110104baafcdc1ec385c3d57bc5ef901.
* remove languages we can't add rn
* tr
* pt and fr
* ai cannot be trusted
* ai cannot be trusted
* missing trans
* add fonts
* Revert "remove languages we can't add rn"
This reverts commit 73dc75fae2b9e347d867b6636dab6e2b5fe59da7.
* painfully slow to startup
* only load what we need
* Reapply "remove languages we can't add rn"
This reverts commit 52cb48f3b838520a421f9b90e5ea4409c27d4bd0.
* add system
* that's sick that this just works (dynamic)
* fix description falling back to first str + support callable titles in list items
* device is now live!
* make firehose live
* developer
* network live
* software live
* and that
* toggles live
* regen
* start to clean up gpt
* revert op sans
* bruh
* update translations
* rm old script
* add noops for descriptions to fix translating away from non-english after startup
* missing de
* do filtering in multilang.py
* clean up
clean up
* codespell: ignore po
* fix update
* should not depend
* more live
* sidebar and offroad alert panel live
* fix issues with offroad alerts
* fix firehose live
* fix weird tr("") behavior
* sh key live bugfix
* setup.py live
* update
* update
* no fuzzy matching -- breaks dynamic translations
* rm this
* fix calib desc live trans
* change onroad
* rm dfonts
* clean up device
* missing live
* update
* op lint
* not true
* add to gitignore
* speed up startup by reducing chars by ~half
* fix scons
* fix crash going from qt
* preserve original lang
* cancel kb live translate
* no preserve
* fix lint
* fix multilang dialog height
* split to file
* stash
* Revert "stash"
This reverts commit deb4239fe69f0260420fad03f2350e622e31542f.
* add updater
* add files
* stuff
* try
rev
* stash
* works!
* works!
* this should be the flow?
* cursor wrapping -- it missed entire sections, changed formatting, and didn't use trn properly!!!!!!!!!!!!!!!!!
* update translations
* learned my lesson
* this should be the one thing it's good at
* update trans
* onroad wrap
* spanish
* rename
* clean up
* load all
* Revert "load all"
This reverts commit 6f2a45861c914ffb9d40a5edd15751afd798d614.
* jp translations
* try jp
* Revert "try jp"
This reverts commit d0524b10110104baafcdc1ec385c3d57bc5ef901.
* remove languages we can't add rn
* tr
* pt and fr
* ai cannot be trusted
* ai cannot be trusted
* missing trans
* add fonts
* Revert "remove languages we can't add rn"
This reverts commit 73dc75fae2b9e347d867b6636dab6e2b5fe59da7.
* painfully slow to startup
* only load what we need
* Reapply "remove languages we can't add rn"
This reverts commit 52cb48f3b838520a421f9b90e5ea4409c27d4bd0.
* stash!
* rm
* Revert "stash!"
This reverts commit 31d7c361079a8e57039a0117c81d59bf84f191c7.
* revert this
* revert that
* make this dynamic!
* device
* revert
* firehose
* stuff
* revert application
* back
* full revert
* clean up
* network
* more system
* fix dat
* fixy
* torque gains not car specific
* remove opendbc interfaces longitudinal control kf field assignment that makes hitl test fail
* typo
* another typo
* bump
* bump openbc
* update ref
---------
Co-authored-by: felsager <d.felsager@gmail.com>
* hmm can do yeidl approach
* clean up
* clean up
* flip
* and add paired + prime
* sort and add update params
* try
* all should have branch name
* test
* clean up
* add offroad alert to update screen
* remove msaa artifacting by heavily reducing segments and match radius
* always draw set speed with '-' like qt
* clean up
* match qt behavior for rivian
* scroll up on hide
* switch to show
* dismiss descriptions too!
* all is show
* all is show
* clean up
* visible items helper
* Revert "visible items helper"
This reverts commit e64f05b69155483aa0f3d74bd511f5d7c1ecfb79.
* reset
* this is all cursor
* also cursor
* inline reset calib
* calib desc
* way better
* huh
* clean up
* rcvr
* stash changes to change params
* Revert "stash changes to change params"
This reverts commit ee998f04c4235ed20493b83e35c9f28e182d89b0.
* here's everything
* just the dev part
* same for exp mode!
* use rich
* fix br not working in p
* html height needs to be different than content/text rect
* fix confirmation
* fix
* fix 2.5s lag
* clean up
* use correct param
* add offroad and engaged callback too
* nl
* lint
* first pass by cursor
* fix
* tell it what's good
* stash
* desc
* clean up junk
* alpha long can't use onroad cycle again due to faults
* lint
* fix kb
* start on exp mode
* more
* fmt
* rm
* 2nd try
* almost there
* clean up
* and this
* fmt
* more
* exp is colored when active
* move out, and rm redudnant self.state
* revert html changes for now
* fix untagged text inheriting previous tag
* why would this be unknown
* here too
* update live with car
* clean up + refresh toggles on showEvent + catch from cursor about setting desc if no carparams
* not sure why
* fix disengaged re-enabling locked toggles
* made LiveStreamVideoStreamTrack use system time to calculate pts
* fixes as requested
* Align panda submodule with master (panda@615009c)
* made loggerd accept a run time env variable to pick stream bitrate
* added /notify endpoint to send json to all session's data channel
* fixed static analysis error
* adapted webrtc stream test to new pts calculation method
* fixed static erro
* fixed wrong indent
* fixed import order
* delete accidental newline
* remove excess spaces
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* remove excess spaces
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* changed exeption handling based on review
* fixed typo on exception handling
---------
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* actually works
* fix shader grad
* switch
* our own triangulate
* this is amazing
* ok 100 is too much for 3x. 10?
* fix colors
* review intern chad
* fmt
* rm for the line count
* bye
* rm
* see the diff
* start to revert nulleffect
* fix
* fix
* always feather
* aliasing doesn't seem necessary
* aliasing doesn't seem necessary
* fix lane lines disappearing halfway up due to buggy deduping -- very simple triangulation function takes ~same CPU time + same GPU utilization on PC (nvidia-smi)
* remove old
* even simpler triangulate
* this is useless
* more revert
* split color out again
* clean up ai bs
* back to original names
* more clean up
* stop it
* this limiting logic split out feels more even // less super dense
* typing
* clean up a little
* move to get grad color
* RM
* flip
* document
* clean up
* clean up
* clean
* clean up
* not a "state"
* clean up
* that did nothing
* cmt
* debug
* hacks everywhere but kind of works
* by font
* fix sidebar
* stash
* test update
* just use a const
* just use a const
* better
* clean up
* fix label
* simplify
* gpt5 is yet again garbage
* rm that
* clean up
* rm
* blank
* clean up
* I really don't like this but shrug
* fix
* fix experimental text
* come on
* try
* better
* better
* multiple places!
* debug
* works
* temp
* whoops
* wonder if this wortks
* ah need this!
* wtf is this when deleted?
* another day no modal show event
* clean
* fix
* ugh
* need this
* stash
* ok chatter is useful for once
* draw text outside tags
* hmm
* undo that shit
* i don't like this chatgpt
* Revert "i don't like this chatgpt"
This reverts commit 5b511911d81242457bfb5fc808a9b9f35fe9f7a2.
* more robust parsing (works with missing tags, markdown.py actually had bug) + add indent level
* the html looks weird but is correct - the old parser didn't handle it
* clean up
* some
* move out
* clean up
* oh this was wrong
* draft
* rm that
* fix
* fix indentation for new driving model
* clean up
* some clean up
* more clean up
* more clean up
* and this
* cmt
* ok this is egregious mypy
* this wasn't used
* override text size and color
* render untagged text as paragraph
* and indent
* cache expensive height calc
* fmt
* fix that
* unclear if this is even needed
* and that
* huh
* debug
* Revert "debug"
This reverts commit 7d446d2a37a96e6bd1001c566d4f8e8f417f8fb7.
* relock after inplace metadrive update
* Revert "relock after inplace metadrive update"
This reverts commit 18193ffe34b66085e18605e6c9289ddcd658844d.
* just the hash
* proces in AN and WM
* clean
* ban api
* fix
* fiix
* fix pairing dialog
* cleanup
* fix multi action button hard to click
* fix
* fix right margin of multi action
* clean up
* Dockerfile.openpilot_base use UV_PROJECT_ENVIRONMENT
* Revert "Dockerfile.openpilot_base use UV_PROJECT_ENVIRONMENT"
This reverts commit 3725e54ce0727077ca4347d24ca38e25d5864d47.
* Reapply "Dockerfile.openpilot_base use UV_PROJECT_ENVIRONMENT"
This reverts commit 11b04f57acb9c81fcc5a22a6a6d78d666c59ca6c.
* use uv run to pick up correct ppath
* auto attempt
* gpt5
* Revert "gpt5"
This reverts commit 556d6d9ee4d53aca0f4612023db6cfb2bed7ce29.
* clean up
* fixes
* use raylib
* fixes
* debug
* test update
* more
* rm
* add value to button like qt
* bump
* bump
* fixes
* bump
* fix
* bump
* clean up
* time ago like qt
rm
* bump
* clean up
* updated can fail to respond on boot leading to stuck state
* fix color
fix
* bump
* bump
* add back
* test update
* no unknown just ''
* ffix
* vibing can be good
* and listview
* rm that
* html render
* text.py
* ssh keys
* updater w/ Auto
* wow gpt5 actually is better
* well this is better
* huh wifi still doesn't work
* lfg
* lint
* manager waits for exit
* wait a minute this changes nothing
* this will work
* whoops
* clean up html
* actually useless
* clean up option
* typing
* bump
* rm that
* almost
* yess
* some work
* more
* todo
* okay viber is good once in a while
* temp
* chadder can't do this
* revert
* this was broken anyway
* fixes
* mouse wheel scroll
* some clean up
* kinda works
* way better
* can tap to stop
* more clean up
* more clean up
* revert last mouse
* fix
* debug only
* no print
* ahh setup.py fps doesn't affect DEFAULT_FPS ofc
* rest
* fix text
* fix touch valid for network
* fix regulatory
* debug slow loading
* easy gather step coords
* gotcha
* and fix
* dm option
* fix final
* fixes
* progress bar!
* "vibe coding is great"
* wtf gpt5
* jfc
* hand crafted >> vibe
* it's slow so only load images if we're doing any kind of training
* tf
* format
* clean up
* clean up
* no float
* cmt
* more clean up
* clean up
* eww
* rm
* no debug
* match y
* clean that up
* here too
* windows
* add raylib ui test
* match qt
* exe
* vibing is epic
* this is epic
* format
* add more settings
* fix to actually use raylib
* add kb
* global
* pair
* rm cmts
* show event
* this is so stupid
clean up
* clean up
* rename dir
* clean up
* no more vibe
* rm
* ugh it's always slightly different for no reason
* nvm region is actually broken
* 1l
* show for unknown
* use Button to make clicking work
* close on pair
* close on pair
* make widget!
* dynamic pairing btn
* whyyy
* clean up
* can do this
* this button is also hard to tap
* get vibing
* simplify
* vibing is bad
* simplify
* fix that
* now update
* clean up
* last two
* cell is UpdateUnsaved so we don't need to disable
* we only need actions
* we only need actions
* sort
* stuff
* dont deactivate
* clean up
* clean up
* more
* ipv4 fwd
* warns
* fixz
* rm
* clean up
* one return point
* format
* top
* it's all common
* never getting fixed
* it's just tici
* reorders
* qcom2 -> tici
* Revert "qcom2 -> tici"
This reverts commit f4d849b2952cb0e662975805db6a1d32511ed392.
* Reapply "qcom2 -> tici"
This reverts commit 58b193cb8de872830f8a7821a339edca14e4a337.
* is tici
* lil more
* Revert "is tici"
This reverts commit a169be18d3fdcb3ef8317a63a89d8becadabfad8.
* Revert "Reapply "qcom2 -> tici""
This reverts commit 26f9c0e7d068fc8a1a5f07383b3616e619cd4e8c.
* qcom2 -> __tici__
* lil more
* mv lenv
* clean that up
* lil more]
* fix
* lil more
* match style
* all this was not naught
* cool can do this
* fix toggle callback - also not for naught
* always process callbacks
* toggle stuff
* cleaner
* tethering password
* clean up
* todos for later
* this is fineee
* add metered options
* wifi metered button
* add hidden network buutton and fix instant modal to modal
* damped filter
* Revert "damped filter"
This reverts commit f9f98d5d708fb15cf1ebef4bdace577f0e347658.
* fix metered toggle when disconnected
* fix tethering enabled
* ohh
* fix keyboard title
* disable edit button temp
* move here
* proper disable
* clean up
* more
* move for loop into enqueue function
* flippy
* got more :(
* todo
* clean up
* mypy
* rename
* todo
* rename
* again
* again
* format
* Update Python packages
* not available anymore
* also this
* also this
* maybe?
* version
* try
* Revert "version"
This reverts commit 9ac4401b9ca59677b82736faff8baf66861df5f2.
* revert
* cffi
* issue
* comment
---------
Co-authored-by: Vehicle Researcher <user@comma.ai>
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
console.log(`Removed '${process.env.TRUST_FORK_PR_LABEL}' label from PR #${prNumber} as it received new commits`);
// Add a comment to the PR
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: `The \`${process.env.TRUST_FORK_PR_LABEL}\` label has been automatically removed because new commits were pushed to this PR. This PR will need to be re-reviewed before the label can be applied again.`
<td>{% if jobs[key]["failures"]|length > 0 %}<details>{% for failure in jobs[key]["failures"] %}<a href="{{ failure['link'] }}">Log for run #{{ failure['run_number'] }}</a><br>{% endfor %}</details>{% else %}{% endif %}</td>
stale-pr-message:'This PR has had no activity for ${{ env.DAYS_BEFORE_PR_STALE }} days. It will be automatically closed in ${{ env.DAYS_BEFORE_PR_CLOSE }} days if there is no activity.'
close-pr-message:'This PR has been automatically closed due to inactivity. Feel free to re-open once activity resumes.'
stale-pr-label:stale
delete-branch:${{ github.event.pull_request.head.repo.full_name == 'sunnypilot/sunnypilot' }}# only delete branches on the main repo
delete-branch:${{ github.event.pull_request.head.repo.full_name == 'commaai/openpilot' }}# only delete branches on the main repo
exempt-pr-labels:"ignore stale,needs testing"# if wip or it needs testing from the community, don't mark as stale
# We do a bit of a hack here to avoid canceling the publishing job if a new commit comes in while we're publishing by adding the sha to the group name.
# This means that if multiple commits come in while we're publishing, they will be queued up and publish one after the other.
# Otherwise, if a job is waiting to be published due to environment wait time, it would be canceled by a new commit and restart the wait time.
if ! git ls-remote --heads origin ${{ inputs.target_branch || env.DEFAULT_TARGET_BRANCH }} | grep -q "${{ inputs.target_branch || env.DEFAULT_TARGET_BRANCH }}"; then
echo "Target branch ${{ inputs.target_branch || env.DEFAULT_TARGET_BRANCH }} does not exist, creating it from ${{ inputs.source_branch || env.DEFAULT_SOURCE_BRANCH }}"
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to view and modify the Software, subject to the following conditions:
1.**Permission Required**: Permission Required for Commercial, For-Profit, or Closed Source Use: Use of the Software, in whole or in part, for any commercial purposes, for-profit projects, or in closed source projects requires explicit written permission from the original author(s).
2.**Redistribution**: Any redistribution of the Software, modified or unmodified, must retain this license notice and the following acknowledgment:
"This software is licensed under a custom license requiring permission for use."
3.**Visibility**: Any project that uses the Software must visibly mention the following acknowledgment:
"This project uses software from Haibin Wen and SUNNYPILOT LLC and is licensed under a custom license requiring permission for use."
4.**No Warranty**: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Contact sunnypilot Support <support@sunnypilot.ai> for permission requests.
[sunnypilot](https://github.com/sunnyhaibin/sunnypilot) is a fork of comma.ai's openpilot, an open source driver assistance system. sunnypilot offers the user a unique driving experience for over 300+ supported car makes and models with modified behaviors of driving assist engagements. sunnypilot complies with comma.ai's safety rules as accurately as possible.
<h1>openpilot</h1>
## 💭 Join our Community Forum
Join the official sunnypilot community forum to stay up to date with all the latest features and be a part of shaping the future of sunnypilot!
* https://community.sunnypilot.ai/
<p>
<b>openpilot is an operating system for robotics.</b>
<br>
Currently, it upgrades the driver assistance system in 300+ supported cars.
</p>
## Documentation
https://docs.sunnypilot.ai/ is your one stop shop for everything from features to installation to FAQ about the sunnypilot
<a href="https://comma.ai/shop">Try it on a comma four</a>
</h3>
## 🚘 Running on a dedicated device in a car
* A supported device to run this software
* a [comma three](https://comma.ai/shop/products/three) or a [C3X](https://comma.ai/shop/comma-3x)
* This software
* One of [the 325+ supported cars](https://github.com/sunnypilot/sunnypilot/blob/master/docs/CARS.md). We support Honda, Toyota, Hyundai, Nissan, Kia, Chrysler, Lexus, Acura, Audi, VW, Ford, and more. If your car is not supported but has adaptive cruise control and lane-keeping assist, it's likely able to run sunnypilot.
* A [car harness](https://comma.ai/shop/products/car-harness) to connect to your car
Please refer to [Recommended Branches](#recommended-branches) to find your preferred/supported branch. This guide will assume you want to install the latest `staging` branch.
</div>
### If you want to use our newest branches (our rewrite)
> [!TIP]
>You can see the rewrite state on our [rewrite project board](https://github.com/orgs/sunnypilot/projects/2), and to install the new branches, you can use the following links
<table>
<tr>
<td><a href="https://youtu.be/NmBfgOanCyk" title="Video By Greer Viau"><img src="https://github.com/commaai/openpilot/assets/8762862/2f7112ae-f748-4f39-b617-fabd689c3772"></a></td>
<td><a href="https://youtu.be/VHKyqZ7t8Gw" title="Video By Logan LeGrand"><img src="https://github.com/commaai/openpilot/assets/8762862/92351544-2833-40d7-9e0b-7ef7ae37ec4c"></a></td>
<td><a href="https://youtu.be/SUIZYzxtMQs" title="A drive to Taco Bell"><img src="https://github.com/commaai/openpilot/assets/8762862/05ceefc5-2628-439c-a9b2-89ce77dc6f63"></a></td>
</tr>
</table>
* sunnypilot not installed or you installed a version before 0.8.17?
1. [Factory reset/uninstall](https://github.com/commaai/openpilot/wiki/FAQ#how-can-i-reset-the-device) the previous software if you have another software/fork installed.
2. After factory reset/uninstall and upon reboot, select `Custom Software` when given the option.
3. Input the installation URL per [Recommended Branches](#recommended-branches). Example: ```https://staging.sunnypilot.ai```.
4. Complete the rest of the installation following the onscreen instructions.
* sunnypilot already installed and you installed a version after 0.8.17?
1. On the comma three/3X, go to `Settings` ▶️ `Software`.
2. At the `Download` option, press `CHECK`. This will fetch the list of latest branches from sunnypilot.
3. At the `Target Branch` option, press `SELECT` to open the Target Branch selector.
4. Scroll to select the desired branch per Recommended Branches (see below). Example: `staging`
1.**Supported Device:** a comma four, available at [comma.ai/shop/comma-four](https://www.comma.ai/shop/comma-four).
2.**Software:** The setup procedure for the comma four allows users to enter a URL for custom software. Use the URL `openpilot.comma.ai` to install the release version.
3.**Supported Car:** Ensure that you have one of [the 275+ supported cars](docs/CARS.md).
4.**Car Harness:** You will also need a [car harness](https://comma.ai/shop/car-harness) to connect your comma four to your car.
> [!TIP]
> You can use sunnypilot/targetbranch as an install URL. Example: 'sunnypilot/staging'.
We have detailed instructions for [how to install the harness and device in a car](https://comma.ai/setup). Note that it's possible to run openpilot on [other hardware](https://blog.comma.ai/self-driving-car-for-free/), although it's not plug-and-play.
> [!NOTE]
> Do you require further assistance with software installation? Join the [sunnypilot community forum](https://community.sunnypilot.ai/new-topic?category=general/qa) and create a topic in the General/Q&A Category channel.
### Branches
Running `master` and other branches directly is supported, but it's recommended to run one of the following prebuilt branches:
| `release-mici` | `release-tizi` | openpilot.comma.ai | This is openpilot's release branch. |
| `release-mici-staging` | `release-tizi-staging` | openpilot-test.comma.ai | This is the staging branch for releases. Use it to get new releases slightly early. |
| `nightly` | `nightly` | openpilot-nightly.comma.ai | This is the bleeding edge development branch. Do not expect this to be stable. |
| `nightly-dev` | `nightly-dev` | installer.comma.ai/commaai/nightly-dev | Same as nightly, but includes experimental development features for some cars. |
To start developing openpilot
------
openpilot is developed by [comma](https://comma.ai/) and by users like you. We welcome both pull requests and issues on [GitHub](http://github.com/commaai/openpilot).
* Join the [community Discord](https://discord.comma.ai)
* Check out [the contributing docs](docs/CONTRIBUTING.md)
* Check out the [openpilot tools](tools/)
* Code documentation lives at https://docs.comma.ai
* Information about running openpilot lives on the [community wiki](https://github.com/commaai/openpilot/wiki)
Want to get paid to work on openpilot? [comma is hiring](https://comma.ai/jobs#open-positions) and offers lots of [bounties](https://comma.ai/bounties) for external contributors.
Safety and Testing
----
* openpilot observes [ISO26262](https://en.wikipedia.org/wiki/ISO_26262) guidelines, see [SAFETY.md](docs/SAFETY.md) for more details.
* openpilot has software-in-the-loop [tests](.github/workflows/tests.yaml) that run on every commit.
* The code enforcing the safety model lives in panda and is written in C, see [code rigor](https://github.com/commaai/panda#code-rigor) for more details.
* panda has software-in-the-loop [safety tests](https://github.com/commaai/panda/tree/master/tests/safety).
* Internally, we have a hardware-in-the-loop Jenkins test suite that builds and unit tests the various processes.
* panda has additional hardware-in-the-loop [tests](https://github.com/commaai/panda/blob/master/Jenkinsfile).
* We run the latest openpilot in a testing closet containing 10 comma devices continuously replaying routes.
<details>
<summary>MIT Licensed</summary>
<summary>Older legacy branches</summary>
openpilot is released under the MIT license. Some parts of the software are released under other licenses as specified.
### If you want to use our older legacy branches (*not recommended*)
> [**IMPORTANT**]
> It is recommended to [re-flash AGNOS](https://flash.comma.ai/) if you intend to downgrade from the new branches.
> You can still restore the latest sunnylink backup made on the old branches.
Any user of this software shall indemnify and hold harmless Comma.ai, Inc. and its directors, officers, employees, agents, stockholders, affiliates, subcontractors and customers from and against all allegations, claims, actions, suits, demands, damages, liabilities, obligations, losses, settlements, judgments, costs and expenses (including without limitation attorneys’ fees and costs) which arise out of, relate to or result from any use of this software by user.
**THIS IS ALPHA QUALITY SOFTWARE FOR RESEARCH PURPOSES ONLY. THIS IS NOT A PRODUCT.
YOU ARE RESPONSIBLE FOR COMPLYING WITH LOCAL LAWS AND REGULATIONS.
NO WARRANTY EXPRESSED OR IMPLIED.**
</details>
<details>
<summary>User Data and comma Account</summary>
## 🎆 Pull Requests
We welcome both pull requests and issues on GitHub. Bug fixes are encouraged.
By default, openpilot uploads the driving data to our servers. You can also access your data through [comma connect](https://connect.comma.ai/). We use your data to train better models and improve openpilot for everyone.
Pull requests should be against the most current `master` branch.
openpilot is open source software: the user is free to disable data collection if they wish to do so.
## 📊 User Data
By default, sunnypilot uploads the driving data to comma servers. You can also access your data through [comma connect](https://connect.comma.ai/).
sunnypilot is open source software. The user is free to disable data collection if they wish to do so.
sunnypilot logs the road-facing camera, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
openpilot logs the road-facing cameras, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
The driver-facing camera and microphone are only logged if you explicitly opt-in in settings.
By using this software, you understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma for the use of this data.
## Licensing
sunnypilot is released under the [MIT License](LICENSE). This repository includes original work as well as significant portions of code derived from [openpilot by comma.ai](https://github.com/commaai/openpilot), which is also released under the MIT license with additional disclaimers.
The original openpilot license notice, including comma.ai’s indemnification and alpha software disclaimer, is reproduced below as required:
> openpilot is released under the MIT license. Some parts of the software are released under other licenses as specified.
>
> Any user of this software shall indemnify and hold harmless Comma.ai, Inc. and its directors, officers, employees, agents, stockholders, affiliates, subcontractors and customers from and against all allegations, claims, actions, suits, demands, damages, liabilities, obligations, losses, settlements, judgments, costs and expenses (including without limitation attorneys’ fees and costs) which arise out of, relate to or result from any use of this software by user.
>
> **THIS IS ALPHA QUALITY SOFTWARE FOR RESEARCH PURPOSES ONLY. THIS IS NOT A PRODUCT.
> YOU ARE RESPONSIBLE FOR COMPLYING WITH LOCAL LAWS AND REGULATIONS.
> NO WARRANTY EXPRESSED OR IMPLIED.**
For full license terms, please see the [`LICENSE`](LICENSE) file.
## 💰 Support sunnypilot
If you find any of the features useful, consider becoming a [sponsor on GitHub](https://github.com/sponsors/sunnyhaibin) to support future feature development and improvements.
By becoming a sponsor, you will gain access to exclusive content, early access to new features, and the opportunity to directly influence the project's development.
<img src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" alt="PayPal this" title="PayPal - The safer, easier way to pay online!" border="0" />
</a>
<br></br>
Your continuous love and support are greatly appreciated! Enjoy 🥰
<span>-</span> Jason, Founder of sunnypilot
By using openpilot, you agree to [our Privacy Policy](https://comma.ai/privacy). You understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma for the use of this data.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.