Ubo-app

Latest version: v1.2.2

Safety actively analyzes 714772 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 19

1.2.2

- fix: temperature sensor is on 0x48, not 0x44

1.2.1

- fix: tenacity is now a production dependency
- chore: add pypi publish and automatic release github workflows

1.2.0

- chore: add `log_async_process` to log the output of an async processes in a notification if they don't run successfully
- refactor(core): housekeeping: rename `extra_information` to `qr_code_generation_instructions` in `ubo_input`, add `.tmpl` extension for extension files, use `textarea` for `LONG` input field type in web dashboard, rename `..._HOST` env variables to `..._ADDRESS`, use underscore thousand separators for big numbers in codebase
- feat(docker): support docker compositions and add a way to import `docker-compose.yml` files
- feat(docker): add instructions and icon for docker compositions
- refactor(core): rerender screen when rendering on the display is resumed like when returning from viewfinder to avoid artifacts
- refactor(docker): make composition menus responsive: showing spinner, etc
- fix: pass raw bytes to `DisplayRenderEvent` and `DisplayCompressedRenderEvent` to avoid encoding issues
- fix: add ".local" to hostname in users menus - closes 134
- fix: use stdout instead of stderr for reading rpi-connect process output - closes 174
- feat: hold update until the app creates a file signaling it is loaded - closes 177
- feat: setup a wifi hotspot for when the a web-ui input is demanded and the device is not connected to any network - closes 169
- feat: let the user upload directory content of the docker composition they are creating - closes 202
- feat: use `pod_id` as the ssid of the wifi hotspot
- feat: add dark mode for web-ui
- docs: update development documentation
- feat(web-ui): automatically run the wifi creation procedure when there is no ssid saved in the network manager and no default gateway is set - closes 214
- feat(web-ui): use captive portal in the hotspot started by web-ui - closes 211
- fix(core): an issue where a tuple of lists where passed as active_inputs instead of a list due to an unwanted comma - closes 212
- fix(core): high cpu usage due to the while loop going non-blocking when the ping raised an exception - closes 216
- feat(core): add a utility function to apply templates to filesystem based on a templates directory, while taking backups of the original files and another utility function to restore the backups
- fix(web-ui): run `iw wlan0 set power_save off` before running hotspot to avoid the soft block - closes 222
- refactor(ci): use new github runner arm images for building images
- feat(web-ui): add `ubo-redirect-server` service
- refactor(web-ui): add notifications for when starting/stopping the hotspot fails in the system manager
- refactor(web-ui): move starting/stopping of the required hotspot system services to the `ubo-hotspot` service (the more general version of the `ubo-redirect-server` service which runs the redirect server as its main process.)
- fix(core): uninstall RPi.GPIO after installing python packages in `install.sh` [related](https://github.com/adafruit/Adafruit_Blinka/issues/910) - closes #231
- fix(web-ui): avoid web-ui stop procedure being triggered when qr-code input is cancelled
- fix(system): run `time.sleep` for both branches of the ping loop (success and failure) to avoid high cpu usage of the system process
- fix(camera): avoid values read from qrcode being overridden by `None` values of alternative patterns - closes 230
- fix(wifi): wait a few seconds before creating the wifi connection if the provided input result has the input method `WEB_DASHBOARD` - closes 230
- fix(wifi): set `network_manager.wireless_enabled` for when hotspot is being turned off and also before creating a wifi connection and before connecting to a wifi network - closes 230
- fix(keypad,sensors): retry i2c initializations - closes 234
- fix(wifi): make `get_saved_wifi_ssids` return empty list in non-rpi environments

1.1.0

- chore: migrate from poetry to uv for the sake of improving performance and dealing with conflicting sub-dependencies
- feat(core): add colors to logs based on their level to make them more readable
- chore: use dynamic version field in `pyproject.toml` based on `hatch.build.hooks.vcs` and publish dev packages on pypi for all pushes to the main branch and all pull requests targeting the main branch
- chore: remove what has remained from poetry in the codebase
- refactor(core): avoid truncating or coloring logs in log files
- feat(web-ui): add web-ui service
- feat(web-ui): process input demands, dispatched on the bus
- feat(keypad): ability to use key-combinations, set key combinations for screenshot, snapshot and quit
- feat(web-ui): add `fields` in `InputDescription` with `InputFieldDescription` data structures to describe the fields of an input demand in detail
- fix(users): avoid setting user as sudoer when it performs a password reset
- feat(ip): use pythonping to perform a real ping test instead to determine the internet connection status instead of opening a socket
- feat(core): user can start/end recording actioning by hitting r, actions will be recorded in `recordings/` directory and the last recording can be replayed by hitting `ctrl+r` - closes 187
- feat(core): use new `SpinnerWidget` of ubo-gui to show unknown progress in notifications, and add `General` sub menu to `System` settings menu to host ubo-pod/ubo-app related settings, currently it has `Debug` toggle to control a debug feature of `HeadlessWidget` - closes 190
- feat(core): add recording and replaying indicators, avoid replaying while recording and vice versa, move keypad events to its own reducer as it has grown too big

1.0.0

- hotfix(users): do not mark the generated password as expired as it will cause boot failures as the os can't autologin into the ubo user when its password is expired
- hotfix(core): render blank screen on the display when `FinishEvent` is dispatched (makes sure display is clean after powering off)

0.17.1

- feat(display): add `DisplayCompressedRenderEvent` as a compressed version of `DisplayRenderEvent`
- feat(rpc): add reflection to rpc server, limited to root service, but good enough for health checking purposes
- refactor(rpc): preserve the order of fields of `oneof` declarations generated for `Union` types
- refactor(audio): convert `AudioPlayChimeEvent`s to `AudioPlayAudioEvent`s instead of directly playing the chime
- feat(rpc): add `UBO_GRPC_LISTEN_HOST` and `UBO_GRPC_LISTEN_PORT` environment variables
- fix(docker): make sure the `image_menu` view - used nested in an autorun - is re-called when ip addresses are provided

Page 1 of 19

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.