Meticulous Image Build Changelog

stable
beta
factory
nightly
2026-08-27 00:40:02 - version: 2026M1389-stable
meticulous-machine updated
01a90777f2b9 → 1fcc68ea4d00
  • 1fcc68eMerge pull request #113 from MeticulousHome/fix/hawkbit_channel_revert_stable
  • ed63adahawkbit: stop reverting the first channel the user picks
backend updated
ba9905095741 → 6abfb46e4f80
  • 6abfb46Merge pull request #402 from MeticulousHome/feat/cancel_report_collection
  • 81efabbchore: log possible errors/warnings on the bug report generation workflow
  • 9edcd91chore: update log_redactor submodule ref
  • 64e1471feat(bug report): cancel report collection on client disconnect
  • 7434650Merge pull request #381 from MeticulousHome/feat/date_selector_bug_report
  • df83004chore: add debug log when requesting a bug report creation
  • b51556afeat(bug report): add delete method to /reports/draft/[^/]+ endpoint
  • 03a0c76Add issue time report collection
  • efe971bMerge pull request #385 from MeticulousHome/fix/tests
  • 295447cMerge pull request #384 from MeticulousHome/chore/sentry_alarm_warning
  • db55088fix(tests): unreasonably high logger redaction throughput
  • 8ed7216fix: log_redactor_tests fail the whole backend test
  • 24ba748fix(tests) mocks were messing up with data type and some values
  • 2a0b7d9chore(machine): reduce alarm sentry message level to warning
dial updated
c3de9fad7e3a → 08c9ba22c665
  • 08c9ba22chore(packages): sync npm turi/ package versions with cargo package version
  • 769b5928chore(version): bump required meticulous-home/espresso-api version to 0.11.5
  • 2d039849feat(bug report): abort in-flight report creation on cancel
  • f7ef125bchore(bug report): add labels to issue date selectors
  • ce2e896bfeat(bug report): use enhanced animations for waiting stages
  • 6104d63bfeat(bugreport): use new animations instead of simple spinners on the bug report screen
  • 0a19f1c1feat(bug report): add cancel report workflow and streamline submission
  • 0039d048chore(bug report ui): limit issue date selector
  • d1a52642chore(version): bump required meticulous-home/espresso-api version to 0.11.2
  • 238ae1acfix(bug report): do not allow issue date selection on the future
  • e05a409dchore(bug report): allow user time selection on 30 minute intervals
  • ff1e52a7chore(bug report): improve bug report screen error messages
  • f3c70d69chore(bugreport): improve bug report time/date selector ui
  • f6186388feat(bugreport): add issue time/date selector
  • 9f2767ecchore(bugreport): add error message on updatingreport failure
  • 33bb087fMerge pull request #569 from MeticulousHome/add-sentry-serial-tag
  • dba1e185Add machine serial to Sentry events
  • c9662ce5Merge pull request #559 from MeticulousHome/fix/shot-graph-colors-match-app
  • 1f706dc7fix(shot-graph): swap pressure and flow colors to match app and quick start guide
  • 506a0417Merge pull request #556 from MeticulousHome/wifi-menu-performance
  • 4533d3c9Merge pull request #557 from MeticulousHome/chore/caps_lock_indicator
  • f8ea4238chore(circlekeyboard): better capslock indicator
  • 80aead74Merge pull request #555 from MeticulousHome/feature/smoke-validation-gates
  • 210c9f2bfix(wifi): improve menu responsiveness
  • 7a94b569feat(dial): track home readiness
  • e74b1d88Merge pull request #552 from MeticulousHome/wifi-resilience-dial-repair
  • 8a22b4c7fix(wifi): reduce dial config polling
  • 83248b5efix(wifi): stabilize loading message layout
  • 81b9effefix(wifi): clarify hotspot health status
  • cf29c59dfeat(wifi): show loading status messages
  • 32cd9a81fix(wifi): improve dial diagnostics
web-app updated
190a2560552e → ced61d9c3c06
  • ced61d9Merge pull request #6 from MeticulousHome/agent/fix-motor-temperature-labels
  • 0ed485bFix motor temperature debug labels
watcher updated
c3b8c3035d47 → 21e5751ce94a
  • 21e5751Merge pull request #15 from MeticulousHome/feat/cancel_log_collection
  • 670c60dchore: update log_redactor submodule ref
  • 2769c4brevert: unpin log_redactor from the local-only cancellation commit
  • 27caccffeat: cancel in-progress log collection when the client disconnects
  • 8170005fix: watcher consumes cpu after the log request has finished
firmware updated
7aa359b23ceb → 0b539de5bc26
  • 0b539deMerge pull request #500 from MeticulousHome/fix-platformio-dependency-sources
  • f6cb296fix: source pruned PlatformIO dependencies from tags
2026-08-05 22:37:35 - version: 2026M1358-stable
meticulous-machine updated
274a46b4b5a6 → 01a90777f2b9
  • 01a9077Merge pull request #106 from MeticulousHome/fix/retry_on_idempotent_requests
  • ff6c9c5feat: retry idemptent hawkbit requests on 5xx server response code
  • 7f1005eMerge pull request #98 from MeticulousHome/agent/fix-shallow-changelog-history
  • ac689a1Fix changelog history for shallow merges
web-app updated
0fa5934b219a → 190a2560552e
  • 190a256Merge pull request #5 from MeticulousHome/machine-log-download
  • 9de34eeAdd machine log download interface
watcher updated
283693934e84 → c3b8c3035d47
  • c3b8c30Merge pull request #12 from MeticulousHome/machine-log-download
  • eaf21daSupport ranged machine log downloads
2026-08-04 00:35:25 - version: 2026M1352-stable
meticulous-machine initial
pinned to 274a46b4b5a6
backend updated
dd2da1ed91b8 → ba9905095741
  • ba99050Merge pull request #377 from MeticulousHome/chore/filter_send_bugreport_generation
  • c11b80ffix: add log_redactor gitlink
watcher updated
03ce735ec25c → 283693934e84
  • 2836939Merge pull request #11 from MeticulousHome/fix/redact_personal_information_from_logs
  • 18addebfix: add log_redactor gitlink
2026-07-28 00:44:17 - version: 2026M1340-stable
crash-reporter updated
c9e74d09514a → c05c5615b681
  • c05c561Merge pull request #9 from MeticulousHome/add-approved-serial-tag
  • e742db6Use readable crash metric units
2026-07-27 19:10:36 - version: 2026M1339-stable
backend updated
4a3283ff2bc3 → dd2da1ed91b8
  • dd2da1eMerge pull request #371 from MeticulousHome/fix/only_localhost_access
  • d313c2aMerge pull request #370 from MeticulousHome/sentry-automatic-events-privacy
  • 79fb393fix: add local address as tornado web app binding address to only accept nginx proxied requests
  • 7afd937feat: add firmware version metadata to Sentry
  • b9a950frefactor: preserve complete ESP diagnostics
  • d37843cchore: rotate Sentry client keys
  • aaa35b9fix: remove sensitive values from error logs
  • db1ae2efix: sanitize automatic ESP Sentry events
  • f78798efeat: harden automatic Sentry events
  • f326d9bfeat: add reportable config allowlist
  • 004672bMerge pull request #369 from MeticulousHome/disable-debug-shot-telemetry
  • 92693a3Disable debug shot telemetry
dial updated
408921004077 → c3de9fad7e3a
  • c3de9fadMerge pull request #562 from MeticulousHome/sentry-automatic-events-privacy
  • 5e130713feat: add Dial version metadata to Sentry
  • b9e1973achore: rotate Sentry client key
  • ded03f86feat: harden automatic Sentry events
  • 838fc87aMerge pull request #561 from MeticulousHome/disable-debug-shot-telemetry
  • 14597c11Remove debug shot telemetry setting
firmware updated
d28e82aafb43 → 7aa359b23ceb
  • 7aa359bMerge pull request #489 from MeticulousHome/sentry-automatic-events-privacy
  • 576d98erefactor: preserve ESP diagnostic detail
  • 5d5ff75fix: sanitize automatic ESP diagnostics
crash-reporter updated
9c377cac4a53 → c9e74d09514a
  • c9e74d0Merge pull request #8 from MeticulousHome/sentry-automatic-events-privacy
  • f4c7c61feat: add privacy-safe crash diagnostics
2026-07-22 01:43:50 - version: 2026M1330-stable
backend updated
1de7a8ca3e95 → 4a3283ff2bc3
  • 4a3283fMerge pull request #368 from MeticulousHome/disable-fluent-bit
  • 9f8772fRemove Fluent Bit service controls
dial updated
315c1699b668 → 408921004077
  • 4089210Merge pull request #560 from MeticulousHome/disable-fluent-bit
  • ce062daRemove Fluent Bit setting from Dial
2026-07-21 22:47:08 - version: 2026M1329-stable
linux updated
f7e1dec23d55 → 896ed562b8e7
  • 896ed562bMerge pull request #2 from MeticulousHome/nightly
  • 9e14e4a6eset the usbotg1 node as host only on meticulous DT
backend updated
a843576a8fd4 → 1de7a8ca3e95
  • 1de7a8cMerge pull request #367 from MeticulousHome/agent/stable-timezone-retry-limit
  • d6e58e9Merge pull request #355 from MeticulousHome/fix/timezone-retry-limit
  • 63a76b2Merge branch 'update-channel-follows-image' into stable
  • c0936fdMerge pull request #352 from MeticulousHome/nightly
  • 90ac3e1chore(bugreport): increase client timeout to 600s when requesting machine logs
  • 4036fe0chore: add logging limits
  • 73e1dc2chore: concentrate all the compose configuration into the compose file
  • 07b8160fix: emmulated files for reports generation and endpoint
  • bfc9072Add missing UUID dependency
  • 687ccdafix: refresh firmware version before flashing
  • 7babbedMake update channel follow image channel
  • e5373ccfeat(bug_report): compress report draft on submit request to save space
  • 7599bfffix: consider current debug shot if report is requested during a brew
  • fba3899fix(reports): mount a volume for the reports dir and set an env var with the docker volume mnt point
  • 4e2a11bchore: add tests to endpoint modifications
  • a3a15bbfix: allow the PUT method to be used on draft reports updates
  • 1d06ce9feat: add multimedia to the updatable report information, also include the machineID in the /create endpoint response
  • 5c2ffc0feat: add machine status to the user feedback report
  • dfdf612feat: report creation and serving endpoints change
  • 2d706b1feat(bug_report): Implement the server endpoints to fetch relevant data for the report
  • 96f315erefactor(machine.py): extract get_machine_info function from MachineInfoHandler
  • 37628affeat:(database): create DB migration to add the bug_reports table
  • 2790ba6Sync auto purge setting to firmware
  • 133bf2frun new version of the black formater over everything
  • 412e847update critical dependencies
  • 6768c22ble: fix auto accept
  • e8c8174ble: register pairing agent to auto accept pairing requests by phones
  • c35fd96ble: monitor device connect and disconnect
  • ac9f2e4ble: await setup task immediately after creation
  • a60c2c9run_emualted: run uv sync before starting the backend
  • bd6d157Change default sink volume from 70% to 40%
  • fd949f7fix: add gstreamer1.0-plugins-base-apps for playsound3 gst-play-1.0 backend
  • c831d82gatt: log communications
  • ab18406update pyImprov to 0.2.0
  • 77610a1zeroconf: dont pass lists of raw IP addresses
  • 190ff65Add ble gatt unit tests
  • b1753dfrun_tests: use uv as well
  • c547b8dfix: use from=\"backend\" for hover seed and on-connect emit
  • 66205edfeat: track profile hover state, emit on connect/create/load, add GET /profile/selected
  • 9c9c95aREADME: update and rename
  • 6b5fb0amachine: run format
  • 09b49e1sound: upgrade to playsound3
  • 97918e2add out folder to gitignore
  • e249d08fix: move system C library deps to machine group for CI compatibility
  • bb69085style: run black formatter with line-length 96
  • 94a7db9lint: finally remove all the star imports
  • 6ee169cAdd debian builder script
  • 7691aaadeps: use uv for dependency management
  • 987d817feat(config): sync partial retraction with esp nvs
  • bbb903cfeat(profile-load): stream simplified profile JSON to ESP32
  • 7592ceedb: fix linting and DB issues
  • 0e3454ddb: fix key error in deletion logic
  • fcd7155tests: test all database functions - not all tests passing
  • ca2fdaatests: add machine.py message parsing unit tests
  • dd26063ci/cd: add unit test running
  • c2dfffftests: add pytests script
  • 41d9ca8Dockerfile: install dev requirements
  • c3d902etest: add pytest harness
  • 85c7c31config: move all environment variables into config.py in preparation of mocking
  • 62bdacafix: patch bare NaN tokens in historical shot files
  • 324aa67chore(data.py): decode url encoded strings coming from the ESP
  • 16e4efefix(wifi.py): validate the saved WiFi security type is still valid to connect
  • 25fbc78fix: disable ETag for .zst files served decompressed
  • cb710e8feat: add 24-hour clock format configuration
  • 27de0d7emulated: move MOTOR_ENERGY_PATH to a env
  • cabf679hostname: include the serial in the hostname
  • 7fd63bachore(backlight_controller): remove \"jump to target if re-request\" on brightness thread
  • 96b9fdcchore: do not send notification when the ESP restarts unexpectedly
  • 8c314f8fix: set the esp_reset_request flag before calling _connection.reset()
  • 8458171fix: patch Infinity tokens in shot files on access
  • 4add933fix: sanitize Infinity/NaN in setpoint parsing to produce valid JSON
  • 135da60ssh,services: add toggle for fluent-bit
  • f6c7126fix: check for the real client IP on the X-Real-IP header set by nginx
  • a9c8c16fix: do not create new logging handlers if there is one alrady created
  • 31e479dchore: use machine name + serial number on usb test
  • 58726e1chore: reframe way of testing usb connection
  • bd11803fix: check ESP message validity before reporting ESP issued
  • 12921e1fix: expect a restart when updating ESP firmware
  • 43954f6chore: sync python version among developer system, github runner and the Meticulous machine interpreters
  • 2cf5b4dchore: run against play_sound.py
  • 1cbfea8chore: increase motor MAX_ENERGY_ALLOWED threshold to 25000
  • 734b83fFix f-string syntax error in machine.py line 518
  • f7f5928hore: variable rename and send ESP errors to backend sentry project too
  • dd2f7dechore: adequate logging of ESP Log messages
  • 44d1ad1feat: add Sentry client for espresso-firmware sentry project
  • 7935814feat: Add ESP monitoring
  • eb6980dchore: refactor alarms.py - Added 2 new alarms: - ESP_RESTART - ESP_DISCONNECTED - Added the feature to only set alarms for the duration of the session passing the end_time of the alarm as None it will not write an alarm file nor the alarm will be cleared by the AlarmManager - Added `quiet` option to `AlarmManager.setAlarm` to not send a notification to the dial app
  • 3c19fdefeat: add a timeout to the ReadLine.readline fnc
  • c2e23c0alarms: dont hardcode the path
  • 1db4db4sounds: ensure the sound player is in a lock
  • 4216688fix: add the ESPInfo to the machine attribute
  • 5a59fe8chore: Add all the machine information to debug logs, not only ESPInfo
  • 8b7c870run black and flake8 commands
  • 41bfb1dfix: convert percentage to position for position triggers
  • 56c59e4fix: infinite end time in alarms was not compatible with integer type used in alarm messages
  • 03aa94dchore: use NamedThreads instead of Threads
  • 718ae1achore: sync up shot manager saving data and motor stress analysis
  • fd9c83afeat: alarms implementation
  • 528e86bfeat: add motor energy compensation for when the machine is OFF
  • 5415262chore: add warning image to notification of stressed motor chore: move all base64 image representations to `images/notificationImages/base64.py` to import from there
  • 4a8d2e6feat: implement motor energy data saving thread to avoid losing it when turning the machine off
  • a1c7932chore: improve motor energy calculation
  • 01470fffix: change absolute time reference from 4 to 1
dial updated
6aadb620e541 → 315c1699b668
  • 315c169Merge pull request #554 from MeticulousHome/nightly
  • 7acdaadchore(burreport): increase networking timeouts when reporting issues
web-app updated
f16041429cf3 → 0fa5934b219a
  • 0fa5934Merge pull request #4 from MeticulousHome/nightly
  • b9bc656fix archive.zip download path to avoid cross-site issues
watcher updated
311cf70eb042 → 03ce735ec25c
  • 03ce735Merge pull request #9 from MeticulousHome/nightly
  • 58c85aemove to uv and add deb building
firmware initial
pinned to d28e82aafb43
plotter-ui initial
pinned to a82332b5d16d
2026-02-26 14:23:44 - version: not recorded
linux initial
pinned to f7e1dec23d55
uboot initial
pinned to 00ba0da24a8b
atf initial
pinned to bed39c167c88
imx-mkimage initial
pinned to 71b8c18af93a
debian initial
pinned to db279cf0c71d
backend initial
pinned to a843576a8fd4
dial initial
pinned to 6aadb620e541
web-app initial
pinned to f16041429cf3
watcher initial
pinned to 311cf70eb042
rauc initial
pinned to 269e1721b3c5
hawkbit initial
pinned to 60f34c8cdd0d
psplash initial
pinned to 5b0085b559f1
crash-reporter initial
pinned to 9c377cac4a53
2026-08-26 23:01:52 - version: 2026M1388-beta
meticulous-machine updated
6b66a1e505f3 → 1b06e31415b6
  • 1b06e31Merge pull request #114 from MeticulousHome/backpropagate-stable-to-beta-2026-08-24
  • 7ed4c0aBackpropagate stable into beta (2026-08-24)
  • 1fcc68eMerge pull request #113 from MeticulousHome/fix/hawkbit_channel_revert_stable
  • ed63adahawkbit: stop reverting the first channel the user picks
backend updated
0d4ab8bbecbb → 1ab14dcebd21
  • 1ab14dcMerge pull request #406 from MeticulousHome/backpropagate-stable-to-beta-2026-08-24
  • 5b9b02bfix: repair tests broken by stable->beta backport merge
  • bc37751Backpropagate stable into beta
  • 6abfb46Merge pull request #402 from MeticulousHome/feat/cancel_report_collection
  • 81efabbchore: log possible errors/warnings on the bug report generation workflow
  • 9edcd91chore: update log_redactor submodule ref
  • 64e1471feat(bug report): cancel report collection on client disconnect
  • 6835fadMerge pull request #386 from MeticulousHome/fix/gattServer_failure_excepts_beta
  • 7434650Merge pull request #381 from MeticulousHome/feat/date_selector_bug_report
  • df83004chore: add debug log when requesting a bug report creation
  • b51556afeat(bug report): add delete method to /reports/draft/[^/]+ endpoint
  • 03a0c76Add issue time report collection
  • efe971bMerge pull request #385 from MeticulousHome/fix/tests
  • 8f2e5bcfix: gatt server ble service crashes on improve connection failure
  • 295447cMerge pull request #384 from MeticulousHome/chore/sentry_alarm_warning
  • db55088fix(tests): unreasonably high logger redaction throughput
  • 8ed7216fix: log_redactor_tests fail the whole backend test
  • 24ba748fix(tests) mocks were messing up with data type and some values
  • 2a0b7d9chore(machine): reduce alarm sentry message level to warning
dial updated
da4a98043b45 → 025b3c8d03d1
  • 025b3c8dchore(packages): sync npm turi/ package versions with cargo package version
  • dd7abb0cchore(version): bump required meticulous-home/espresso-api version to 0.11.5
  • 4327d853feat(bug report): abort in-flight report creation on cancel
  • 310a5ae9chore(bug report): add labels to issue date selectors
  • 79392ab6feat(bug report): use enhanced animations for waiting stages
  • aaf5c49dfeat(bugreport): use new animations instead of simple spinners on the bug report screen
  • 267d11e5feat(bug report): add cancel report workflow and streamline submission
  • 17f9728achore(bug report ui): limit issue date selector
  • e90e86ebchore(version): bump required meticulous-home/espresso-api version to 0.11.2
  • 8888dc24fix(bug report): do not allow issue date selection on the future
  • 8b942129chore(bug report): allow user time selection on 30 minute intervals
  • e4130a3echore(bug report): improve bug report screen error messages
  • fb7e053fchore(bugreport): improve bug report time/date selector ui
  • 7fafd866feat(bugreport): add issue time/date selector
  • ac132b4cchore(bugreport): add error message on updatingreport failure
  • 11fe7db3Add machine serial to Sentry events
  • aa2d8aebfix(shot-graph): swap pressure and flow colors to match app and quick start guide
web-app updated
1ef580af5e07 → 5441b66394cd
  • 5441b66Merge pull request #10 from MeticulousHome/backpropagate-stable-to-beta-2026-08-24
  • ac62e76Backpropagate stable into beta (2026-08-24)
  • ced61d9Merge pull request #6 from MeticulousHome/agent/fix-motor-temperature-labels
  • 0ed485bFix motor temperature debug labels
watcher updated
57606fe63462 → fe40928661e0
firmware updated
a90e330317d7 → 8bf37347353a
  • 8bf3734fix: source pruned PlatformIO dependencies from tags
2026-08-06 00:16:14 - version: 2026M1359-beta
meticulous-machine initial
pinned to 6b66a1e505f3
backend updated
a1fc54f7a185 → 0d4ab8bbecbb
  • 0d4ab8bMerge pull request #379 from MeticulousHome/backpropagate-stable-to-beta-2026-08-04
  • d6e9116Preserve privacy across beta Wi-Fi paths
  • 646250aFix forward-port test compatibility
  • 4429530Merge stable fixes into beta
  • ba99050Merge pull request #377 from MeticulousHome/chore/filter_send_bugreport_generation
  • c11b80ffix: add log_redactor gitlink
  • 1860da3feat(log redaction): implement log redaction application wide
  • 638a8c3chore(log filtering): setup the log filtering tests
  • ac0e7f2feat(log_redaction): Add log_redactor submodule
  • 3785b21fix: get_machine_info cannot be directly filtered with get_reportable_config
  • ebe2a2achore: use the serial number as machineID for the bug report info json
  • fd941c7fix: redact sensible information to be logged by the backend
  • 7b15307fix: use sanitized user configuration when reporting bugs
dial updated
a5f3a76935db → da4a98043b45
  • da4a9804Merge pull request #558 from MeticulousHome/codex/wifi-mode-selector
  • c02ec349fix(wifi): add explicit wifi mode selection
web-app updated
b9bc6563c021 → 1ef580af5e07
  • 1ef580aMerge pull request #7 from MeticulousHome/backpropagate-stable-to-beta-2026-08-04
  • 57dbff0Merge stable fixes into beta
  • 190a256Merge pull request #5 from MeticulousHome/machine-log-download
  • 9de34eeAdd machine log download interface
  • 0fa5934Merge pull request #4 from MeticulousHome/nightly
watcher updated
58c85ae07b4c → 57606fe63462
  • 57606feMerge pull request #13 from MeticulousHome/backpropagate-stable-to-beta-2026-08-04
  • 45cf85eMerge stable fixes into beta
  • c3b8c30Merge pull request #12 from MeticulousHome/machine-log-download
  • eaf21daSupport ranged machine log downloads
  • 2836939Merge pull request #11 from MeticulousHome/fix/redact_personal_information_from_logs
  • 18addebfix: add log_redactor gitlink
  • c4710b4feat(tests): add pytest.ini for redactor and future project tests
  • 4e5f19fupdate .gitignore and README.md
  • fbb85adfeat(log redactor): move the log redactor to a submodule
  • 56d76eachore: add redaction test suite
  • 957f286fix: redact possible personal information from machine system logs
  • 03ce735Merge pull request #9 from MeticulousHome/nightly
2026-07-28 03:09:11 - version: 2026M1341-beta
backend updated
8d7c9df454a9 → a1fc54f7a185
  • a1fc54fMerge pull request #373 from MeticulousHome/backpropagate-stable-to-beta-2026-07-27
  • 0bdf4cfMerge stable into beta
dial updated
2cd679a287ad → a5f3a76935db
  • a5f3a76Merge pull request #563 from MeticulousHome/backpropagate-stable-to-beta-2026-07-27
  • fe65850Merge stable into beta
firmware updated
60c2b96c9a02 → a90e330317d7
  • a90e330Merge pull request #491 from MeticulousHome/backpropagate-stable-to-beta-2026-07-27
  • 2a1ddffMerge stable into beta
  • 7aa359bMerge pull request #489 from MeticulousHome/sentry-automatic-events-privacy
  • 576d98erefactor: preserve ESP diagnostic detail
  • 5d5ff75fix: sanitize automatic ESP diagnostics
crash-reporter updated
9bf7c8e492d1 → 423fdabc1615
  • 423fdabMerge pull request #10 from MeticulousHome/backpropagate-stable-to-beta-2026-07-27
  • b412e38Merge stable into beta
2026-07-14 18:32:09 - version: 2026M1320-beta
backend updated
90ac3e1644cc → 8d7c9df454a9
  • 8d7c9dfMerge commit '456eee1f13c958fc8a9b23329f29f5288989369d' into beta
  • 456eee1Merge pull request #366 from MeticulousHome/codex/radio-recovery-diagnostics
  • cacded8Add structured radio recovery diagnostics
  • 6a962e7Merge pull request #365 from MeticulousHome/codex/redact-wifi-credentials
  • 749dcb2Redact Wi-Fi credentials from logs
  • b8966deMerge pull request #364 from MeticulousHome/codex/wifi-radio-recovery
  • 9633e98fix: preserve Bluetooth during Wi-Fi repair
  • 85f691fMerge pull request #363 from MeticulousHome/fix/log_fetch
  • f19a424add timeout q-param to log fetching url for reports
  • faad0caMerge pull request #362 from MeticulousHome/wifi-menu-performance
  • 9378800Merge pull request #355 from MeticulousHome/fix/timezone-retry-limit
  • 4721fe8Merge pull request #361 from MeticulousHome/fix/backend-api-before-wifi
  • 986d744Merge pull request #360 from MeticulousHome/feature/smoke-validation-gates
  • f00dea4fix(wifi): improve status and join latency
  • 5ea222dStart backend API before Wi-Fi init
  • df18b50Cover pre-extraction shot cleanup states
  • 4c92f9fTighten shot smoke sequence ordering
  • c1a2cadAdd smoke validation state endpoint
  • 51e2707Revert \"fix: direct access to the backend through port 8080\
  • 81211a2Merge pull request #354 from MeticulousHome/feat/add_machine_stats_report
  • ffebc90fix: direct access to the backend through port 8080
  • 9d4c2e5fix(timezone): reset fetch attempt counter on successful sync
  • 28adbfefix(timezone): cap automatic timezone fetch retries at 5 attempts
  • cdab19dfeat: add the db statistics to the report file
  • abd5dbbfix(wifi): disable autoconnect for migrated profiles
  • 26fd0cdfix(wifi): migrate legacy known networks
  • 49c59d6fix(wifi): persist client mode after joining network
  • 9533f1ffix(wifi): improve hotspot phone compatibility
  • 96076affix(wifi): use WPA2 hotspot profile
  • 9a63daafix(wifi): retry hotspot channels
  • 8f501d2Improve Wi-Fi health and recovery handling
  • 63a76b2Merge branch 'update-channel-follows-image' into stable
  • c0936fdMerge pull request #352 from MeticulousHome/nightly
  • 7babbedMake update channel follow image channel
dial updated
7acdaadfa00f → 2cd679a287ad
  • 2cd679a2Merge commit '506a0417fbf0bb4cf9252d8231eba248d1e06dd1' into beta
  • 506a0417Merge pull request #556 from MeticulousHome/wifi-menu-performance
  • 4533d3c9Merge pull request #557 from MeticulousHome/chore/caps_lock_indicator
  • f8ea4238chore(circlekeyboard): better capslock indicator
  • 80aead74Merge pull request #555 from MeticulousHome/feature/smoke-validation-gates
  • 210c9f2bfix(wifi): improve menu responsiveness
  • 7a94b569feat(dial): track home readiness
  • e74b1d88Merge pull request #552 from MeticulousHome/wifi-resilience-dial-repair
  • 315c1699Merge pull request #554 from MeticulousHome/nightly
  • 8a22b4c7fix(wifi): reduce dial config polling
  • 83248b5efix(wifi): stabilize loading message layout
  • 81b9effefix(wifi): clarify hotspot health status
  • cf29c59dfeat(wifi): show loading status messages
  • 32cd9a81fix(wifi): improve dial diagnostics
firmware updated
a8ecc6168924 → 60c2b96c9a02
  • 60c2b96Merge commit '4cfec16cad89b47c541f73617f74d718f7b8ea01' into beta
  • 4cfec16chore: remove unused bad flow calculation code
  • d28e82aMerge pull request #484 from MeticulousHome/nightly
  • 0646e7dMerge pull request #483 from MeticulousHome/fix-stage-global-time
  • 845c98aFix global stage time origin
plotter-ui updated
294c147710a2 → 202629e4d8b0
  • 202629eAdd direct file open and archive JSON export
  • a82332bMerge pull request #30 from MeticulousHome/nightly
crash-reporter updated
9c377cac4a53 → 9bf7c8e492d1
  • 9bf7c8eMerge commit 'be046e008e47ce24a7384dc608113671e0452b7d' into beta
  • be046e0Merge pull request #7 from MeticulousHome/add-oom-crash-diagnostics
2026-06-02 06:12:04 - version: 2026M1266-beta
No component changes in this build.
2026-06-02 01:00:49 - version: 2026M1265-beta
backend updated
2790ba6cc3c9 → 90ac3e1644cc
  • 90ac3e1chore(bugreport): increase client timeout to 600s when requesting machine logs
  • 4036fe0chore: add logging limits
  • 73e1dc2chore: concentrate all the compose configuration into the compose file
  • 07b8160fix: emmulated files for reports generation and endpoint
  • bfc9072Add missing UUID dependency
  • 687ccdafix: refresh firmware version before flashing
  • e5373ccfeat(bug_report): compress report draft on submit request to save space
  • 7599bfffix: consider current debug shot if report is requested during a brew
  • fba3899fix(reports): mount a volume for the reports dir and set an env var with the docker volume mnt point
  • 4e2a11bchore: add tests to endpoint modifications
  • a3a15bbfix: allow the PUT method to be used on draft reports updates
  • 1d06ce9feat: add multimedia to the updatable report information, also include the machineID in the /create endpoint response
  • 5c2ffc0feat: add machine status to the user feedback report
  • dfdf612feat: report creation and serving endpoints change
  • 2d706b1feat(bug_report): Implement the server endpoints to fetch relevant data for the report
  • 96f315erefactor(machine.py): extract get_machine_info function from MachineInfoHandler
  • 37628affeat:(database): create DB migration to add the bug_reports table
dial updated
cc19acb3813b → 7acdaadfa00f
  • 7acdaadfchore(burreport): increase networking timeouts when reporting issues
  • 9b506b0echore(release): v1.103.0 [skip ci]
  • 40c474d0feat(bugreport): redefine bug report workflow
  • 3430760cchore(package.json): bump required dependencies
  • 95773a45chore(bugreport.tsx): replace the service_url placeholder value with the actual service url
  • 917b50fechore(bugreport): populate sentry dsn and add the machine's id as the name of the report
  • 393e28aafeat(bugreport): initialize sentry and implement the complete bug report screen
  • 5c2704b8feat(package.json): include sentry npm package
  • 77306cc3feat(bugreport): prepare the issue report screen
  • 4664f4e0chore(release): v1.102.8 [skip ci]
  • 13e3dce4fix(heatingscreen): stuck in heating screen when aborting a brew
firmware updated
ba71fd6c049b → a8ecc6168924
  • a8ecc61Merge pull request #481 from MeticulousHome/loadcell-log-once
  • 2601824Merge pull request #482 from MeticulousHome/refresh-readme
  • 79f56bcRefresh firmware README
  • 2cebe4bLog loadcell missing state once
2026-05-21 13:56:57 - version: 2026M1243-beta
backend updated
c831d82988ad → 2790ba6cc3c9
  • 2790ba6Sync auto purge setting to firmware
  • 133bf2frun new version of the black formater over everything
  • 412e847update critical dependencies
  • 6768c22ble: fix auto accept
  • e8c8174ble: register pairing agent to auto accept pairing requests by phones
  • c35fd96ble: monitor device connect and disconnect
  • ac9f2e4ble: await setup task immediately after creation
  • a60c2c9run_emualted: run uv sync before starting the backend
  • bd6d157Change default sink volume from 70% to 40%
  • fd949f7fix: add gstreamer1.0-plugins-base-apps for playsound3 gst-play-1.0 backend
dial updated
8195a5fcb481 → cc19acb3813b
  • cc19acb3chore(release): v1.102.7 [skip ci]
  • 71ef0139fix(settings): gate factory reset with serial prompt
  • 8f2d4873chore(release): v1.102.6 [skip ci]
  • 7f2fea5ffix(api): use the correct data type from the api responses
  • 030816e2fix(start profile): use request response status to dispatch screen, not timings
  • 7b730255chore(release): v1.102.5 [skip ci]
  • 47fd0390fix(dial): add local time zone offset calculation to the analog clock
  • 68ad8fc1chore(release): v1.102.4 [skip ci]
  • c8da7f08fix(ui barometer): font-type ignored by typo
firmware updated
fbcb955953dd → ba71fd6c049b
  • ba71fd6Merge pull request #478 from MeticulousHome/codex/auto-purge-config-firmware
  • 8d8405aMerge dev into auto purge config firmware
  • a5d56eeAdd remove cup autopurge stage
  • c7285b0Fix stale continue before purge prompt
  • 1dfc60achore: remove excesive logging when motor extends over calculated limit
  • 63cba39Reset gravimetric flow after tare
  • dfb3cd5Recover pre-stage tare by weight check
  • ce92a08Add firmware auto purge configuration
2026-04-10 19:33:00 - version: 2026M1191-beta
backend updated
324aa676017d → c831d82988ad
  • c831d82gatt: log communications
  • ab18406update pyImprov to 0.2.0
  • 77610a1zeroconf: dont pass lists of raw IP addresses
  • 190ff65Add ble gatt unit tests
  • b1753dfrun_tests: use uv as well
  • c547b8dfix: use from=\"backend\" for hover seed and on-connect emit
  • 66205edfeat: track profile hover state, emit on connect/create/load, add GET /profile/selected
  • 9c9c95aREADME: update and rename
  • 6b5fb0amachine: run format
  • 09b49e1sound: upgrade to playsound3
  • 97918e2add out folder to gitignore
  • e249d08fix: move system C library deps to machine group for CI compatibility
  • bb69085style: run black formatter with line-length 96
  • 94a7db9lint: finally remove all the star imports
  • 6ee169cAdd debian builder script
  • 7691aaadeps: use uv for dependency management
  • 987d817feat(config): sync partial retraction with esp nvs
  • bbb903cfeat(profile-load): stream simplified profile JSON to ESP32
  • 7592ceedb: fix linting and DB issues
  • 0e3454ddb: fix key error in deletion logic
  • fcd7155tests: test all database functions - not all tests passing
  • ca2fdaatests: add machine.py message parsing unit tests
  • dd26063ci/cd: add unit test running
  • c2dfffftests: add pytests script
  • 41d9ca8Dockerfile: install dev requirements
  • c3d902etest: add pytest harness
  • 85c7c31config: move all environment variables into config.py in preparation of mocking
  • 62bdacafix: patch bare NaN tokens in historical shot files
dial updated
46794a991b31 → 8195a5fcb481
  • 8195a5fcchore(tauri): update deps
  • 412d5d53chore(release): v1.102.3 [skip ci]
  • 469b94abfix(idle): restore timeout
  • 7008c611fix(clock): eliminate per-frame object allocations causing webkit memory leak
  • d40b0fe2chore: fix prettier formatting in useIdleTimer
  • 7e05c370fix(app): guard tauri log forwarding when runtime is unavailable
  • 127d2fe6fix(usefetchdata): ensure onready callback only fires once
  • 38ded4d8fix(readyanimation): prevent animation chain from restarting on repeated calls
  • 6de01ed0fix(readyanimation): guard against lottie creation after unmount
  • 78ad4b9efix(usehistory): add explicit gctime to usehistoryshot query
  • 05527456fix(useidletimer): fix stale closure in starttimer and resettimer
  • e5f91084fix(snake): clean up image onload handler on unmount
  • 2f425ae0fix(manufacturing): prevent state update after unmount
  • 3241b200fix(timezonesettings): prevent state update after unmount
  • 6d2939f6fix(countrysettings): prevent state update after unmount
  • aaa1e582fix(purgepiston): add cleanup for requestanimationframe chains
  • 2a375f70fix(minipurgepiston): add cleanup for settimeout and requestanimationframe
  • 658d48aachore(deps): update semver dependencies
watcher updated
e150083e4ed0 → 58c85ae07b4c
  • 58c85aemove to uv and add deb building
firmware updated
c1c694923bba → fbcb955953dd
  • fbcb955Align rotary events with stable detents
  • b1145deNormalize rotary encoder detent detection
  • cf25983Reduce sentry noise from minor setpoint clamps
  • 952bcbbEmit WARNING logs from firmware logger
  • 7f50113Adjust espresso heating timeout to 15 minutes
  • 93b3773Add pre-brew heating timeout to espresso runtime
  • ecf6062chore(espresso-engine): report retract stall exits to sentry
  • 25d83a1feat(espresso-engine): interpret piston triggers as percentage
  • d9ee3dbfix(espresso-engine): make piston-position dynamics stage-relative
  • 170662afix(espresso-engine): clamp invalid setpoints and harden catmull
  • 689334achore(espresso-engine): simplify runtime log formatting
  • 1dad582tune(espresso-engine): tighten bottom limit exit heuristic
  • f0827f9tune(espresso-engine): run step loop at 50ms
  • 84be708perf(espresso-engine): precompute catmull curves at parse time
  • 59e7937feat(espresso-engine): enable catmull stage interpolation
  • 00eb9e7fix(espresso-engine): require low pressure before finishing purge
  • 9a2a071fix(espresso-engine): prevent retract stalls from blocking workflow
  • c9b04bdtune(espresso-engine): update retract motion sequence
  • a428331docs: add known issues tracking
  • 213183efeat(espresso-engine): support limits on power stages
  • 7c7bc04tune(espresso-engine): relax heating ready threshold
  • b5aa4ccfix(espresso-engine): use predictive weight for final shot stop
  • 21d0ee4fix(espresso-engine): keep heater off after heating
  • 4e1ecbcdocs(espresso-engine): add simplified profile workflow guide
  • c6c7b6bfeat(espresso-engine): rename pre-stage retract status and refresh docs
  • b70437dfeat(espresso-engine): make pre-stage retract configurable via nvs
  • cc08eadfix(espresso-engine): skip click-to-start on heating continue
  • 50a0e2dfeat(espresso-engine): align node telemetry with backend setpoints
  • 4506d43feat(espresso-engine): add runtime debug logs for states triggers and limits
  • 49e6e45feat(espresso-engine): throttle runtime step cadence to 100ms
  • bac3ed3feat(espresso-engine): show purge status only when pre-purge moves piston
  • 77bfd2bfeat(espresso-engine): allow ask-for-water resume via encoder click
  • 8e4c87afeat(espresso-engine): integrate ask-for-water runtime and align docs
  • 9751129feat(espresso-engine): use pressure purge and rename pre-stage pause status
  • a9713f7docs(espresso-engine): align workflow with tare step and refactored modules
  • b0c7e15refactor(espresso-engine): split runtime, parsing and control modules
  • bec037ffeat(espresso-engine): tare scale before pre-stage pause
  • 16deeadfeat(espresso-engine): switch to PID v1.0 and refine purge status labels
  • 77f7dcfrefactor(espresso-engine): replace stop commands with zero-power setpoints
  • dbdcaf2feat(espresso-engine): add click-to-start pre-stage sequence and continue skips
  • 87a7d3afeat(espresso-engine): add runtime abstraction and simplified profile engine baseline
  • 8787d09docs: add espresso profile engine technical design docs
plotter-ui updated
cec4db6d56aa → 294c147710a2
  • 294c147Adjust field validation ranges
  • ccae7aeAdd clear marks action to logs panel
  • 178b4cbClear chart marks when switching shots
  • aea8a09Refine machine host input behavior
  • f9a4225Fix remote machine host resolution
  • ef0e000Add 0-50 Y-axis preset
  • cee41caAdd Y-axis range presets
  • 5b9d7c3feat: map setpoint power alias to motor_power
  • baa70b8feat: reset browser on mode switch and add folder refresh
  • 76076dcfeat: move mode toggle to sidebar and add debug zip download
  • 0dff3aefeat: add node profile panel and refine log/sidebar UX
  • 3093ea6feat: improve logs panel filters and resizable right sidebar
  • cc9990dfeat: unify right panel layout for stats logs and profile
  • e8d5b64feat: move panel actions into sidebar footer menu
  • 0dfcb8ffeat: add sidebar settings modal and manual machine connection
  • 73d0d37feat: sort archive files and folders alphabetically
  • 4010515fix: rename .wasm to .wasm.js for Amplify SPA compatibility
  • 4ef30f3fix: resolve 7z-wasm WASM path for production builds
  • d67a1bcfix: check archive type before folder detection on drop
  • 6256963fix: detect folder drops via file paths instead of webkitGetAsEntry
  • e59ced6fix: apply themed scrollbar to sidebar and fix CSS bugs
  • 38e4329feat: show sidebar collapse trigger on all screen sizes
  • 02d5b3bfix: hide horizontal scrollbar in sidebar content
  • 3b822f2fix: remove archive close (X) button from sidebar
  • 99f2c07refactor: align sidebar with shadcn component patterns
  • 9077129feat: move archive browser to sidebar and restructure with shadcn components
  • 0d4ae85feat: add Full Data checkbox to bypass sampling on per-chart basis
  • 033e247fix: only show setpoint traces for fields active on the chart
  • b85c67afix: remove progressive loading to fix diagonal line glitch on first load
  • d6c03a7feat: add Show Profile panel with formatted JSON view
  • 1d6357fchore: fix color description comments in chartColors
  • f5fcd4dfeat: assign fixed colors per known field in charts
  • 8ed1177fix: improve chart legend label visibility in dark mode
  • 449bf18feat: add Show Setpoints toggle to chart with dashed traces
2026-03-12 18:26:45 - version: not recorded
backend updated
7fd63ba192d9 → 324aa676017d
  • 324aa67chore(data.py): decode url encoded strings coming from the ESP
  • 16e4efefix(wifi.py): validate the saved WiFi security type is still valid to connect
  • 25fbc78fix: disable ETag for .zst files served decompressed
  • cb710e8feat: add 24-hour clock format configuration
  • 27de0d7emulated: move MOTOR_ENERGY_PATH to a env
  • cabf679hostname: include the serial in the hostname
firmware updated
6d3b36733e2c → c1c694923bba
  • c1c6949chore(FikaUart) URL-encode string within the shot data frame
  • ffc87abRevert \"fix(fikaUart): ensure no commas on string sent with sensor data\
  • ec0ec85fix(fikaUart): ensure no commas on string sent with sensor data
  • 7ef9a35fix(tmotion): use shared PIDController i_term in FlowPID2
  • df8e4defeat(tmotion): add FlowPID2 path, test scripts, and workflow docs
  • e50c6fbchore(cflowbyposition): dont update CFlowByPosition setpoint if the new value is invalid
  • 9657c2cchore(fikasensors): ignore _read_output_position if returns a NaN
  • 671a8ccchore(pidcontrol): report if pid_set_point is NaN
  • de3db1achore(cflowbyposition): refactor plunger_to_motor function
  • 2c53ce6fix(Curve.h): data truncation on calculate_value_linear
  • 02d1fe1feat(fikaSupervisorAgent): monitor motor position
  • 1f397e3chore(motorrestrictions): define and use MAX_MOTOR_POSITION instead of MAX_PISTON_DISTANCE_ALLOWED
  • d6cc83ffix(motor control): I term (PID) consistency
  • ee56673fix(CFlowByPOsition): update the static i_term after every computation
  • 2e3e784chore(CFLowBYPosition): clear unused variables
2026-02-28 18:45:45 - version: not recorded
backend updated
96b9fdcbe5e7 → 7fd63ba192d9
  • 7fd63bachore(backlight_controller): remove \"jump to target if re-request\" on brightness thread
web-app updated
4061dd0764e3 → b9bc6563c021
  • b9bc656fix archive.zip download path to avoid cross-site issues
2026-02-26 14:28:45 - version: not recorded
linux updated
f7e1dec23d55 → 9e14e4a6eb19
  • 9e14e4a6eset the usbotg1 node as host only on meticulous DT
backend updated
a843576a8fd4 → 96b9fdcbe5e7
  • 96b9fdcchore: do not send notification when the ESP restarts unexpectedly
  • 8c314f8fix: set the esp_reset_request flag before calling _connection.reset()
  • 8458171fix: patch Infinity tokens in shot files on access
  • 4add933fix: sanitize Infinity/NaN in setpoint parsing to produce valid JSON
  • 135da60ssh,services: add toggle for fluent-bit
  • f6c7126fix: check for the real client IP on the X-Real-IP header set by nginx
  • a9c8c16fix: do not create new logging handlers if there is one alrady created
  • 31e479dchore: use machine name + serial number on usb test
  • 58726e1chore: reframe way of testing usb connection
  • bd11803fix: check ESP message validity before reporting ESP issued
  • 12921e1fix: expect a restart when updating ESP firmware
  • 43954f6chore: sync python version among developer system, github runner and the Meticulous machine interpreters
  • 2cf5b4dchore: run against play_sound.py
  • 1cbfea8chore: increase motor MAX_ENERGY_ALLOWED threshold to 25000
  • 734b83fFix f-string syntax error in machine.py line 518
  • f7f5928hore: variable rename and send ESP errors to backend sentry project too
  • dd2f7dechore: adequate logging of ESP Log messages
  • 44d1ad1feat: add Sentry client for espresso-firmware sentry project
  • 7935814feat: Add ESP monitoring
  • eb6980dchore: refactor alarms.py - Added 2 new alarms: - ESP_RESTART - ESP_DISCONNECTED - Added the feature to only set alarms for the duration of the session passing the end_time of the alarm as None it will not write an alarm file nor the alarm will be cleared by the AlarmManager - Added `quiet` option to `AlarmManager.setAlarm` to not send a notification to the dial app
  • 3c19fdefeat: add a timeout to the ReadLine.readline fnc
  • c2e23c0alarms: dont hardcode the path
  • 1db4db4sounds: ensure the sound player is in a lock
  • 4216688fix: add the ESPInfo to the machine attribute
  • 5a59fe8chore: Add all the machine information to debug logs, not only ESPInfo
  • 8b7c870run black and flake8 commands
  • 41bfb1dfix: convert percentage to position for position triggers
  • 56c59e4fix: infinite end time in alarms was not compatible with integer type used in alarm messages
  • 03aa94dchore: use NamedThreads instead of Threads
  • 718ae1achore: sync up shot manager saving data and motor stress analysis
  • fd9c83afeat: alarms implementation
  • 528e86bfeat: add motor energy compensation for when the machine is OFF
  • 5415262chore: add warning image to notification of stressed motor chore: move all base64 image representations to `images/notificationImages/base64.py` to import from there
  • 4a8d2e6feat: implement motor energy data saving thread to avoid losing it when turning the machine off
  • a1c7932chore: improve motor energy calculation
  • 01470fffix: change absolute time reference from 4 to 1
dial updated
6aadb620e541 → 46794a991b31
  • 46794a99chore(displayalignment): reduce number of vertical lines to 1
  • 2f77dcc4chore(release): v1.102.2 [skip ci]
  • 37f9d784fix(profilehomescreen): add missing useSocket import for profileHover emit
  • d5e12478Emit profileHover on physical device profile selection
  • 6ef6cfa4chore(release): v1.102.1 [skip ci]
  • ce7802a2chore(lint): run formater
  • dc4e7ff1fix(store): add remove and clear actions to profile image adapter
  • cd569b48fix(hooks): add timeout cleanup to retry logic in usefetchdata
  • 51d76a09fix(idle): reduce polling interval from 2s to 60s during idle screen
  • 3e997f91fix(idlescreen): prevent orphaned timeout chain in screen dim cycle
  • 0e5194d6fix(socket): add cleanup for all socket event listeners
  • 766b1c6efix(socket): fix keyup listener never being removed on cleanup
  • a6a3bbd7chore(release): v1.102.0 [skip ci]
  • 5200d31afix(heatingscreen): fix glitch if dial app crashes on click to start
  • 1b30195efix(advanced): heading comma on initialsettings array
  • 79a24f50fix(idlescreen): force update brightness to 1 on unmount
  • 4a010824fix(settings): remove deprecated usb key
  • 51b45b9bfeat(config): add telemetry service config
  • efd2b0acchore(settings): remove usb_mode screen
  • 5d7a6385chore(release): v1.101.2 [skip ci]
  • 8e4f58a0fix(homescreen): keep a quick screen transition on profile request
  • af5ff35echore(profilehomescreen): handle errors if loadprofile fails
web-app updated
f16041429cf3 → 4061dd0764e3
  • 4061dd0update @meticulous-home/espresso-api
  • 56e37d6add debug archive download button
  • 7dbe1f6fix: needed connection to analytics to modify any setting
watcher updated
311cf70eb042 → e150083e4ed0
  • e150083move log and status collection into their own files and add compressed archive export
firmware initial
pinned to 6d3b36733e2c
plotter-ui initial
pinned to cec4db6d56aa
2026-02-26 14:23:03 - version: not recorded
linux initial
pinned to f7e1dec23d55
uboot initial
pinned to 00ba0da24a8b
atf initial
pinned to bed39c167c88
imx-mkimage initial
pinned to 71b8c18af93a
debian initial
pinned to db279cf0c71d
backend initial
pinned to a843576a8fd4
dial initial
pinned to 6aadb620e541
web-app initial
pinned to f16041429cf3
watcher initial
pinned to 311cf70eb042
rauc initial
pinned to 269e1721b3c5
hawkbit initial
pinned to 60f34c8cdd0d
psplash initial
pinned to 5b0085b559f1
crash-reporter initial
pinned to 9c377cac4a53
2026-02-26 18:46:11 - version: not recorded
linux initial
pinned to 9e14e4a6eb19
uboot initial
pinned to 00ba0da24a8b
atf initial
pinned to bed39c167c88
imx-mkimage initial
pinned to 71b8c18af93a
debian initial
pinned to db279cf0c71d
backend initial
pinned to 1919d3471ce1
dial initial
pinned to 9e278764e6e8
web-app initial
pinned to 7dbe1f6a0850
watcher initial
pinned to e150083e4ed0
firmware initial
pinned to 30d86debbc93
rauc initial
pinned to 269e1721b3c5
hawkbit initial
pinned to 60f34c8cdd0d
psplash initial
pinned to 5b0085b559f1
plotter-ui initial
pinned to cec4db6d56aa
crash-reporter initial
pinned to 9c377cac4a53
2026-08-26 21:52:05 - version: 2026M1387-nightly
meticulous-machine updated
f10de69275a9 → f87f85fe4bdb
  • f87f85fMerge pull request #115 from MeticulousHome/backpropagate-beta-to-nightly-2026-08-25
  • 4c1f2a5Merge beta into nightly
  • 1b06e31Merge pull request #114 from MeticulousHome/backpropagate-stable-to-beta-2026-08-24
  • 7ed4c0aBackpropagate stable into beta (2026-08-24)
  • 1fcc68eMerge pull request #113 from MeticulousHome/fix/hawkbit_channel_revert_stable
  • ed63adahawkbit: stop reverting the first channel the user picks
backend updated
334bb98c7f39 → 7f3d537231b6
  • 7f3d537Merge pull request #408 from MeticulousHome/backpropagate-beta-to-nightly-2026-08-25
  • 8edd9d6Merge beta into nightly
  • 1ab14dcMerge pull request #406 from MeticulousHome/backpropagate-stable-to-beta-2026-08-24
  • 5b9b02bfix: repair tests broken by stable->beta backport merge
  • bc37751Backpropagate stable into beta
  • 6abfb46Merge pull request #402 from MeticulousHome/feat/cancel_report_collection
  • 81efabbchore: log possible errors/warnings on the bug report generation workflow
  • 9edcd91chore: update log_redactor submodule ref
  • 64e1471feat(bug report): cancel report collection on client disconnect
  • 6835fadMerge pull request #386 from MeticulousHome/fix/gattServer_failure_excepts_beta
  • 7434650Merge pull request #381 from MeticulousHome/feat/date_selector_bug_report
  • df83004chore: add debug log when requesting a bug report creation
  • b51556afeat(bug report): add delete method to /reports/draft/[^/]+ endpoint
  • 03a0c76Add issue time report collection
  • efe971bMerge pull request #385 from MeticulousHome/fix/tests
  • 8f2e5bcfix: gatt server ble service crashes on improve connection failure
  • 295447cMerge pull request #384 from MeticulousHome/chore/sentry_alarm_warning
  • db55088fix(tests): unreasonably high logger redaction throughput
  • 8ed7216fix: log_redactor_tests fail the whole backend test
  • 24ba748fix(tests) mocks were messing up with data type and some values
  • 2a0b7d9chore(machine): reduce alarm sentry message level to warning
dial updated
386f6adfb284 → d607b24e3a86
  • d607b24eMerge pull request #595 from MeticulousHome/backpropagate-beta-to-nightly-2026-08-25
  • 281c8a80Merge beta into nightly
  • 025b3c8dchore(packages): sync npm turi/ package versions with cargo package version
  • dd7abb0cchore(version): bump required meticulous-home/espresso-api version to 0.11.5
  • 4327d853feat(bug report): abort in-flight report creation on cancel
  • 310a5ae9chore(bug report): add labels to issue date selectors
  • 79392ab6feat(bug report): use enhanced animations for waiting stages
  • aaf5c49dfeat(bugreport): use new animations instead of simple spinners on the bug report screen
  • 267d11e5feat(bug report): add cancel report workflow and streamline submission
  • 17f9728achore(bug report ui): limit issue date selector
  • e90e86ebchore(version): bump required meticulous-home/espresso-api version to 0.11.2
  • 8888dc24fix(bug report): do not allow issue date selection on the future
  • 8b942129chore(bug report): allow user time selection on 30 minute intervals
  • e4130a3echore(bug report): improve bug report screen error messages
  • fb7e053fchore(bugreport): improve bug report time/date selector ui
  • 7fafd866feat(bugreport): add issue time/date selector
  • ac132b4cchore(bugreport): add error message on updatingreport failure
  • 11fe7db3Add machine serial to Sentry events
  • aa2d8aebfix(shot-graph): swap pressure and flow colors to match app and quick start guide
web-app updated
71974b2d55db → 260b14a68d3e
  • 260b14aMerge pull request #11 from MeticulousHome/backpropagate-beta-to-nightly-2026-08-25
  • 545d203Merge beta nightly
  • 5441b66Merge pull request #10 from MeticulousHome/backpropagate-stable-to-beta-2026-08-24
  • ac62e76Backpropagate stable into beta (2026-08-24)
  • ced61d9Merge pull request #6 from MeticulousHome/agent/fix-motor-temperature-labels
  • 0ed485bFix motor temperature debug labels
watcher updated
d08c1551e70d → 72a7129e89b6
2026-08-25 03:21:41 - version: 2026M1385-nightly
dial updated
8dbb478d0e88 → 386f6adfb284
  • 386f6adfMerge pull request #594 from MeticulousHome/split/shot-graph-colors
  • bb81c654fix(shot-graph): swap pressure and flow colors to match app
2026-08-25 00:56:42 - version: 2026M1383-nightly
meticulous-machine updated
c584d054ade5 → f10de69275a9
  • f10de69Merge pull request #112 from MeticulousHome/feat/send_hawkbit_attributes_proactively
  • 2e71cc9hawkbit: report attributes on channel change and hourly
  • ff56a15hawkbit: move update_channel ownership to the machine
  • 8f9d1a2hawkbit: cache boot-derived device attributes
  • a91b5e8smoke-report: skip shot attributes when the backend is unreachable
backend updated
9465c52c6cfe → 334bb98c7f39
  • 334bb98Merge pull request #407 from MeticulousHome/split/pour-over-profiles
  • cc82f72Add Pour Over profile storage and API
  • cf14e06Merge pull request #398 from MeticulousHome/split/pour-over-history
  • 87786d4Add durable Pour Over history storage and API
dial updated
acfd4a640a51 → 8dbb478d0e88
  • 8dbb478dMerge pull request #593 from MeticulousHome/split/pour-over-profile-improvements
  • 347d9278feat(pour-over): add guided profiles and setup improvements
  • 7615d3e1Merge pull request #586 from MeticulousHome/split/community-upload
  • 87afe8aafeat(community): add automatic community upload for brew history
  • fb62d507Merge pull request #585 from MeticulousHome/split/free-pour
  • a931e044feat(free-pour): add free pour flow with pour detection and history
firmware updated
0a34ff3480c6 → 50858da75384
  • 50858daMerge pull request #502 from MeticulousHome/beta
  • 8bf3734fix: source pruned PlatformIO dependencies from tags
2026-08-15 00:39:12 - version: 2026M1370-nightly
backend updated
69086ade492f → 9465c52c6cfe
  • 9465c52Merge pull request #391 from MeticulousHome/codex/tare-behavior-retraction-distance
  • 7a1638dfeat: support configurable tare behavior
dial updated
7f4482871d4f → acfd4a640a51
  • acfd4a64Merge pull request #575 from MeticulousHome/codex/tare-behavior-retraction-distance
  • 06b5af44fix: enable gestures in new brew settings
  • 4c52724efeat: add auto tare and retraction distance settings
firmware updated
f201fbbd4a85 → 0a34ff3480c6
  • 0a34ff3Merge pull request #498 from MeticulousHome/codex/tare-behavior-retraction-distance
  • f04972bfeat: configure tare timing and retraction distance
2026-08-12 22:21:39 - version: 2026M1367-nightly
meticulous-machine initial
pinned to c584d054ade5
backend updated
21a2bf777afa → 69086ade492f
  • 69086adMerge pull request #380 from MeticulousHome/beta
  • 0d4ab8bMerge pull request #379 from MeticulousHome/backpropagate-stable-to-beta-2026-08-04
  • d6e9116Preserve privacy across beta Wi-Fi paths
  • 646250aFix forward-port test compatibility
  • 4429530Merge stable fixes into beta
  • ba99050Merge pull request #377 from MeticulousHome/chore/filter_send_bugreport_generation
  • c11b80ffix: add log_redactor gitlink
  • 1860da3feat(log redaction): implement log redaction application wide
  • 638a8c3chore(log filtering): setup the log filtering tests
  • ac0e7f2feat(log_redaction): Add log_redactor submodule
  • 3785b21fix: get_machine_info cannot be directly filtered with get_reportable_config
  • ebe2a2achore: use the serial number as machineID for the bug report info json
  • fd941c7fix: redact sensible information to be logged by the backend
  • 7b15307fix: use sanitized user configuration when reporting bugs
dial updated
cb4e1610024e → 7f4482871d4f
  • 7f448287Merge pull request #567 from MeticulousHome/beta
  • da4a9804Merge pull request #558 from MeticulousHome/codex/wifi-mode-selector
  • c02ec349fix(wifi): add explicit wifi mode selection
web-app updated
b9bc6563c021 → 71974b2d55db
  • 71974b2Merge pull request #8 from MeticulousHome/beta
  • 1ef580aMerge pull request #7 from MeticulousHome/backpropagate-stable-to-beta-2026-08-04
  • 57dbff0Merge stable fixes into beta
  • 190a256Merge pull request #5 from MeticulousHome/machine-log-download
  • 9de34eeAdd machine log download interface
  • 0fa5934Merge pull request #4 from MeticulousHome/nightly
watcher updated
58c85ae07b4c → d08c1551e70d
  • d08c155Merge pull request #14 from MeticulousHome/beta
  • 57606feMerge pull request #13 from MeticulousHome/backpropagate-stable-to-beta-2026-08-04
  • 45cf85eMerge stable fixes into beta
  • c3b8c30Merge pull request #12 from MeticulousHome/machine-log-download
  • eaf21daSupport ranged machine log downloads
  • 2836939Merge pull request #11 from MeticulousHome/fix/redact_personal_information_from_logs
  • 18addebfix: add log_redactor gitlink
  • c4710b4feat(tests): add pytest.ini for redactor and future project tests
  • 4e5f19fupdate .gitignore and README.md
  • fbb85adfeat(log redactor): move the log redactor to a submodule
  • 56d76eachore: add redaction test suite
  • 957f286fix: redact possible personal information from machine system logs
  • 03ce735Merge pull request #9 from MeticulousHome/nightly
2026-07-28 22:00:27 - version: 2026M1343-nightly
backend updated
456eee1f13c9 → 21a2bf777afa
  • 21a2bf7Merge pull request #374 from MeticulousHome/beta
  • a1fc54fMerge pull request #373 from MeticulousHome/backpropagate-stable-to-beta-2026-07-27
dial updated
506a0417fbf0 → cb4e1610024e
  • cb4e161Merge pull request #564 from MeticulousHome/beta
  • a5f3a76Merge pull request #563 from MeticulousHome/backpropagate-stable-to-beta-2026-07-27
firmware updated
4cfec16cad89 → f201fbbd4a85
  • f201fbbMerge pull request #492 from MeticulousHome/beta
  • a90e330Merge pull request #491 from MeticulousHome/backpropagate-stable-to-beta-2026-07-27
  • 2a1ddffMerge stable into beta
  • 7aa359bMerge pull request #489 from MeticulousHome/sentry-automatic-events-privacy
  • 576d98erefactor: preserve ESP diagnostic detail
  • 5d5ff75fix: sanitize automatic ESP diagnostics
  • 60c2b96Merge commit '4cfec16cad89b47c541f73617f74d718f7b8ea01' into beta
  • d28e82aMerge pull request #484 from MeticulousHome/nightly
crash-reporter updated
be046e008e47 → 7f6a2a6be04e
  • 7f6a2a6Merge pull request #11 from MeticulousHome/beta
  • 423fdabMerge pull request #10 from MeticulousHome/backpropagate-stable-to-beta-2026-07-27
2026-07-15 00:44:43 - version: 2026M1321-nightly
No component changes in this build.
2026-07-10 22:07:33 - version: 2026M1314-nightly
backend updated
faad0cae8f3d → 456eee1f13c9
  • 456eee1Merge pull request #366 from MeticulousHome/codex/radio-recovery-diagnostics
  • cacded8Add structured radio recovery diagnostics
  • 6a962e7Merge pull request #365 from MeticulousHome/codex/redact-wifi-credentials
  • 749dcb2Redact Wi-Fi credentials from logs
  • b8966deMerge pull request #364 from MeticulousHome/codex/wifi-radio-recovery
  • 9633e98fix: preserve Bluetooth during Wi-Fi repair
  • 85f691fMerge pull request #363 from MeticulousHome/fix/log_fetch
  • f19a424add timeout q-param to log fetching url for reports
2026-07-10 22:07:31 - version: 2026M1313-nightly
backend updated
faad0cae8f3d → 456eee1f13c9
  • 456eee1Merge pull request #366 from MeticulousHome/codex/radio-recovery-diagnostics
  • cacded8Add structured radio recovery diagnostics
  • 6a962e7Merge pull request #365 from MeticulousHome/codex/redact-wifi-credentials
  • 749dcb2Redact Wi-Fi credentials from logs
  • b8966deMerge pull request #364 from MeticulousHome/codex/wifi-radio-recovery
  • 9633e98fix: preserve Bluetooth during Wi-Fi repair
  • 85f691fMerge pull request #363 from MeticulousHome/fix/log_fetch
  • f19a424add timeout q-param to log fetching url for reports
2026-07-09 23:38:49 - version: 2026M1311-nightly
backend updated
93788000fbc1 → faad0cae8f3d
  • faad0caMerge pull request #362 from MeticulousHome/wifi-menu-performance
  • f00dea4fix(wifi): improve status and join latency
dial updated
80aead749c77 → 506a0417fbf0
  • 506a0417Merge pull request #556 from MeticulousHome/wifi-menu-performance
  • 4533d3c9Merge pull request #557 from MeticulousHome/chore/caps_lock_indicator
  • f8ea4238chore(circlekeyboard): better capslock indicator
  • 210c9f2bfix(wifi): improve menu responsiveness
2026-07-03 18:37:31 - version: 2026M1302-nightly
backend updated
51e270724509 → 93788000fbc1
  • 9378800Merge pull request #355 from MeticulousHome/fix/timezone-retry-limit
  • 4721fe8Merge pull request #361 from MeticulousHome/fix/backend-api-before-wifi
  • 986d744Merge pull request #360 from MeticulousHome/feature/smoke-validation-gates
  • 5ea222dStart backend API before Wi-Fi init
  • df18b50Cover pre-extraction shot cleanup states
  • 4c92f9fTighten shot smoke sequence ordering
  • c1a2cadAdd smoke validation state endpoint
  • 9d4c2e5fix(timezone): reset fetch attempt counter on successful sync
  • 28adbfefix(timezone): cap automatic timezone fetch retries at 5 attempts
dial updated
e74b1d883ab3 → 80aead749c77
  • 80aead7Merge pull request #555 from MeticulousHome/feature/smoke-validation-gates
  • 7a94b56feat(dial): track home readiness
crash-reporter updated
9c377cac4a53 → be046e008e47
  • be046e0Merge pull request #7 from MeticulousHome/add-oom-crash-diagnostics
  • 5b69c4aAdd OOM crash diagnostics
2026-07-02 01:26:09 - version: 2026M1300-nightly
backend updated
81211a201b38 → 51e270724509
  • 51e2707Revert \"fix: direct access to the backend through port 8080\
2026-06-29 01:14:05 - version: 2026M1296-nightly
No component changes in this build.
2026-06-28 01:13:38 - version: 2026M1295-nightly
backend updated
ffebc909ee76 → 81211a201b38
  • 81211a2Merge pull request #354 from MeticulousHome/feat/add_machine_stats_report
  • cdab19dfeat: add the db statistics to the report file
2026-06-27 01:08:10 - version: 2026M1294-nightly
backend updated
abd5dbb6b2cd → ffebc909ee76
  • ffebc90fix: direct access to the backend through port 8080
2026-06-26 01:12:36 - version: 2026M1293-nightly
backend updated
2821815b5b5c → abd5dbb6b2cd
firmware updated
0646e7d4a857 → 4cfec16cad89
  • 4cfec16chore: remove unused bad flow calculation code
plotter-ui updated
294c147710a2 → 202629e4d8b0
  • 202629eAdd direct file open and archive JSON export
  • a82332bMerge pull request #30 from MeticulousHome/nightly
2026-06-09 06:28:23 - version: 2026M1277-nightly
backend updated
90ac3e1644cc → 2821815b5b5c
  • 2821815Merge pull request #350 from MeticulousHome/wifi-resilience-health-recovery
  • 8a587ebfix(wifi): disable autoconnect for migrated profiles
dial updated
7acdaadfa00f → e74b1d883ab3
  • e74b1d8Merge pull request #552 from MeticulousHome/wifi-resilience-dial-repair
  • 8a22b4cfix(wifi): reduce dial config polling
2026-06-09 00:23:10 - version: 2026M1274-nightly
No component changes in this build.
2026-06-08 00:27:56 - version: 2026M1272-nightly
No component changes in this build.
2026-06-07 00:26:02 - version: 2026M1271-nightly
No component changes in this build.
2026-06-06 00:25:45 - version: 2026M1270-nightly
No component changes in this build.
2026-06-05 00:27:18 - version: 2026M1269-nightly
No component changes in this build.
2026-06-04 00:34:53 - version: 2026M1268-nightly
No component changes in this build.
2026-06-03 00:34:22 - version: 2026M1267-nightly
dial updated
9b506b0e6f53 → 7acdaadfa00f
  • 7acdaadchore(burreport): increase networking timeouts when reporting issues
firmware updated
a8ecc6168924 → 0646e7d4a857
  • 0646e7dMerge pull request #483 from MeticulousHome/fix-stage-global-time
  • 845c98aFix global stage time origin
2026-06-02 00:29:58 - version: 2026M1264-nightly
No component changes in this build.
2026-06-01 22:22:15 - version: 2026M1263-nightly
backend updated
bfc907250f2e → 90ac3e1644cc
  • 90ac3e1chore(bugreport): increase client timeout to 600s when requesting machine logs
  • 4036fe0chore: add logging limits
  • 73e1dc2chore: concentrate all the compose configuration into the compose file
  • 07b8160fix: emmulated files for reports generation and endpoint
2026-06-01 00:24:50 - version: 2026M1261-nightly
No component changes in this build.
2026-05-31 00:24:35 - version: 2026M1260-nightly
No component changes in this build.
2026-05-30 00:24:52 - version: 2026M1259-nightly
No component changes in this build.
2026-05-29 09:38:25 - version: 2026M1258-nightly
backend updated
e5373cc51444 → bfc907250f2e
  • bfc9072Add missing UUID dependency
  • 687ccdafix: refresh firmware version before flashing
2026-05-29 07:43:03 - version: 2026M1257-nightly
dial updated
4664f4e0a91b → 9b506b0e6f53
  • 9b506b0echore(release): v1.103.0 [skip ci]
  • 40c474d0feat(bugreport): redefine bug report workflow
  • 3430760cchore(package.json): bump required dependencies
  • 95773a45chore(bugreport.tsx): replace the service_url placeholder value with the actual service url
  • 917b50fechore(bugreport): populate sentry dsn and add the machine's id as the name of the report
  • 393e28aafeat(bugreport): initialize sentry and implement the complete bug report screen
  • 5c2704b8feat(package.json): include sentry npm package
  • 77306cc3feat(bugreport): prepare the issue report screen
2026-05-29 00:26:34 - version: 2026M1255-nightly
backend updated
2790ba6cc3c9 → e5373cc51444
  • e5373ccfeat(bug_report): compress report draft on submit request to save space
  • 7599bfffix: consider current debug shot if report is requested during a brew
  • fba3899fix(reports): mount a volume for the reports dir and set an env var with the docker volume mnt point
  • 4e2a11bchore: add tests to endpoint modifications
  • a3a15bbfix: allow the PUT method to be used on draft reports updates
  • 1d06ce9feat: add multimedia to the updatable report information, also include the machineID in the /create endpoint response
  • 5c2ffc0feat: add machine status to the user feedback report
  • dfdf612feat: report creation and serving endpoints change
  • 2d706b1feat(bug_report): Implement the server endpoints to fetch relevant data for the report
  • 96f315erefactor(machine.py): extract get_machine_info function from MachineInfoHandler
  • 37628affeat:(database): create DB migration to add the bug_reports table
2026-05-28 00:23:05 - version: 2026M1254-nightly
dial updated
cc19acb3813b → 4664f4e0a91b
  • 4664f4e0chore(release): v1.102.8 [skip ci]
  • 13e3dce4fix(heatingscreen): stuck in heating screen when aborting a brew
2026-05-27 00:24:47 - version: 2026M1253-nightly
firmware updated
ba71fd6c049b → a8ecc6168924
  • a8ecc61Merge pull request #481 from MeticulousHome/loadcell-log-once
  • 2601824Merge pull request #482 from MeticulousHome/refresh-readme
  • 79f56bcRefresh firmware README
  • 2cebe4bLog loadcell missing state once
2026-05-26 00:23:22 - version: 2026M1249-nightly
No component changes in this build.
2026-05-25 00:23:48 - version: 2026M1248-nightly
No component changes in this build.
2026-05-24 00:22:20 - version: 2026M1246-nightly
No component changes in this build.
2026-05-23 00:23:10 - version: 2026M1245-nightly
No component changes in this build.
2026-05-22 00:23:59 - version: 2026M1244-nightly
No component changes in this build.
2026-05-20 19:54:00 - version: 2026M1236-nightly
No component changes in this build.
2026-05-16 00:19:37 - version: 2026M1230-nightly
No component changes in this build.
2026-05-15 00:21:35 - version: 2026M1229-nightly
No component changes in this build.
2026-05-14 00:23:57 - version: 2026M1228-nightly
No component changes in this build.
2026-05-13 00:22:34 - version: 2026M1227-nightly
No component changes in this build.
2026-05-12 00:21:19 - version: 2026M1226-nightly
No component changes in this build.
2026-05-11 00:19:44 - version: 2026M1225-nightly
No component changes in this build.
2026-05-10 00:19:09 - version: 2026M1224-nightly
No component changes in this build.
2026-05-09 00:20:35 - version: 2026M1223-nightly
No component changes in this build.
2026-05-08 00:19:39 - version: 2026M1222-nightly
No component changes in this build.
2026-05-07 00:18:43 - version: 2026M1221-nightly
No component changes in this build.
2026-05-06 00:18:28 - version: 2026M1220-nightly
No component changes in this build.
2026-05-05 00:19:19 - version: 2026M1219-nightly
No component changes in this build.
2026-05-04 00:18:05 - version: 2026M1218-nightly
No component changes in this build.
2026-05-03 00:17:21 - version: 2026M1217-nightly
No component changes in this build.
2026-05-01 00:19:47 - version: 2026M1215-nightly
No component changes in this build.
2026-04-29 01:28:34 - version: 2026M1213-nightly
backend updated
133bf2fdb494 → 2790ba6cc3c9
  • 2790ba6Sync auto purge setting to firmware
dial updated
8f2d48732afe → cc19acb3813b
  • cc19acb3chore(release): v1.102.7 [skip ci]
  • 71ef0139fix(settings): gate factory reset with serial prompt
firmware updated
63cba39fc7a1 → ba71fd6c049b
  • ba71fd6Merge pull request #478 from MeticulousHome/codex/auto-purge-config-firmware
  • 8d8405aMerge dev into auto purge config firmware
  • a5d56eeAdd remove cup autopurge stage
  • c7285b0Fix stale continue before purge prompt
  • 1dfc60achore: remove excesive logging when motor extends over calculated limit
  • ce92a08Add firmware auto purge configuration
2026-04-26 00:14:24 - version: 2026M1208-nightly
No component changes in this build.
2026-04-25 00:13:46 - version: 2026M1207-nightly
No component changes in this build.
2026-04-24 00:16:38 - version: 2026M1206-nightly
No component changes in this build.
2026-04-23 00:16:55 - version: 2026M1205-nightly
No component changes in this build.
2026-04-22 00:12:26 - version: 2026M1203-nightly
No component changes in this build.
2026-04-21 00:15:16 - version: 2026M1202-nightly
firmware updated
fbcb955953dd → 63cba39fc7a1
  • 63cba39Reset gravimetric flow after tare
  • dfb3cd5Recover pre-stage tare by weight check
2026-04-20 00:13:02 - version: 2026M1201-nightly
No component changes in this build.
2026-04-19 00:12:20 - version: 2026M1200-nightly
No component changes in this build.
2026-04-18 00:12:50 - version: 2026M1199-nightly
No component changes in this build.
2026-04-17 00:14:44 - version: 2026M1198-nightly
No component changes in this build.
2026-04-16 00:16:10 - version: 2026M1197-nightly
dial updated
7b7302554c2e → 8f2d48732afe
  • 8f2d4873chore(release): v1.102.6 [skip ci]
  • 7f2fea5ffix(api): use the correct data type from the api responses
  • 030816e2fix(start profile): use request response status to dispatch screen, not timings
2026-04-15 01:18:30 - version: 2026M1196-nightly
No component changes in this build.
2026-04-14 01:22:07 - version: 2026M1195-nightly
backend updated
c831d82988ad → 133bf2fdb494
  • 133bf2frun new version of the black formater over everything
  • 412e847update critical dependencies
  • 6768c22ble: fix auto accept
  • e8c8174ble: register pairing agent to auto accept pairing requests by phones
  • c35fd96ble: monitor device connect and disconnect
  • ac9f2e4ble: await setup task immediately after creation
  • a60c2c9run_emualted: run uv sync before starting the backend
  • bd6d157Change default sink volume from 70% to 40%
  • fd949f7fix: add gstreamer1.0-plugins-base-apps for playsound3 gst-play-1.0 backend
dial updated
68ad8fc1b310 → 7b7302554c2e
  • 7b730255chore(release): v1.102.5 [skip ci]
  • 47fd0390fix(dial): add local time zone offset calculation to the analog clock
2026-04-13 01:23:35 - version: 2026M1194-nightly
No component changes in this build.
2026-04-12 01:21:21 - version: 2026M1193-nightly
dial updated
8195a5fcb481 → 68ad8fc1b310
  • 68ad8fc1chore(release): v1.102.4 [skip ci]
  • c8da7f08fix(ui barometer): font-type ignored by typo
2026-04-11 01:12:43 - version: 2026M1192-nightly
firmware updated
cf259833e5cc → fbcb955953dd
  • fbcb955Align rotary events with stable detents
  • b1145deNormalize rotary encoder detent detection
2026-04-10 01:17:34 - version: not recorded
plotter-ui updated
cec4db6d56aa → 294c147710a2
  • 294c147Adjust field validation ranges
  • ccae7aeAdd clear marks action to logs panel
  • 178b4cbClear chart marks when switching shots
  • aea8a09Refine machine host input behavior
  • f9a4225Fix remote machine host resolution
  • ef0e000Add 0-50 Y-axis preset
  • cee41caAdd Y-axis range presets
  • 5b9d7c3feat: map setpoint power alias to motor_power
  • baa70b8feat: reset browser on mode switch and add folder refresh
  • 76076dcfeat: move mode toggle to sidebar and add debug zip download
  • 0dff3aefeat: add node profile panel and refine log/sidebar UX
  • 3093ea6feat: improve logs panel filters and resizable right sidebar
  • cc9990dfeat: unify right panel layout for stats logs and profile
  • e8d5b64feat: move panel actions into sidebar footer menu
  • 0dfcb8ffeat: add sidebar settings modal and manual machine connection
  • 73d0d37feat: sort archive files and folders alphabetically
  • 4010515fix: rename .wasm to .wasm.js for Amplify SPA compatibility
  • 4ef30f3fix: resolve 7z-wasm WASM path for production builds
  • d67a1bcfix: check archive type before folder detection on drop
  • 6256963fix: detect folder drops via file paths instead of webkitGetAsEntry
  • e59ced6fix: apply themed scrollbar to sidebar and fix CSS bugs
  • 38e4329feat: show sidebar collapse trigger on all screen sizes
  • 02d5b3bfix: hide horizontal scrollbar in sidebar content
  • 3b822f2fix: remove archive close (X) button from sidebar
  • 99f2c07refactor: align sidebar with shadcn component patterns
  • 9077129feat: move archive browser to sidebar and restructure with shadcn components
  • 0d4ae85feat: add Full Data checkbox to bypass sampling on per-chart basis
  • 033e247fix: only show setpoint traces for fields active on the chart
  • b85c67afix: remove progressive loading to fix diagonal line glitch on first load
  • d6c03a7feat: add Show Profile panel with formatted JSON view
  • 1d6357fchore: fix color description comments in chartColors
  • f5fcd4dfeat: assign fixed colors per known field in charts
  • 8ed1177fix: improve chart legend label visibility in dark mode
  • 449bf18feat: add Show Setpoints toggle to chart with dashed traces
2026-04-09 00:09:47 - version: not recorded
No component changes in this build.
2026-04-08 00:12:29 - version: not recorded
No component changes in this build.
2026-04-07 00:11:46 - version: not recorded
No component changes in this build.
2026-04-06 00:10:10 - version: not recorded
No component changes in this build.
2026-04-05 00:09:24 - version: not recorded
No component changes in this build.
2026-04-04 00:09:12 - version: not recorded
No component changes in this build.
2026-04-03 00:10:16 - version: not recorded
No component changes in this build.
2026-04-02 00:09:29 - version: not recorded
No component changes in this build.
2026-04-01 19:59:22 - version: not recorded
No component changes in this build.
2026-04-01 00:11:07 - version: not recorded
No component changes in this build.
2026-03-31 17:41:19 - version: not recorded
No component changes in this build.
2026-03-30 00:10:38 - version: not recorded
No component changes in this build.
2026-03-29 00:09:24 - version: not recorded
No component changes in this build.
2026-03-28 00:09:11 - version: not recorded
No component changes in this build.
2026-03-27 00:09:42 - version: not recorded
No component changes in this build.
2026-03-26 00:10:41 - version: not recorded
No component changes in this build.
2026-03-25 22:05:24 - version: not recorded
backend updated
987d81701b22 → c831d82988ad
  • c831d82gatt: log communications
  • ab18406update pyImprov to 0.2.0
  • 77610a1zeroconf: dont pass lists of raw IP addresses
  • 190ff65Add ble gatt unit tests
  • b1753dfrun_tests: use uv as well
  • c547b8dfix: use from=\"backend\" for hover seed and on-connect emit
  • 66205edfeat: track profile hover state, emit on connect/create/load, add GET /profile/selected
  • 9c9c95aREADME: update and rename
  • 6b5fb0amachine: run format
  • 09b49e1sound: upgrade to playsound3
  • 97918e2add out folder to gitignore
  • e249d08fix: move system C library deps to machine group for CI compatibility
  • bb69085style: run black formatter with line-length 96
  • 94a7db9lint: finally remove all the star imports
  • 6ee169cAdd debian builder script
  • 7691aaadeps: use uv for dependency management
dial updated
46794a991b31 → 8195a5fcb481
  • 8195a5fcchore(tauri): update deps
  • 412d5d53chore(release): v1.102.3 [skip ci]
  • 469b94abfix(idle): restore timeout
  • 7008c611fix(clock): eliminate per-frame object allocations causing webkit memory leak
  • d40b0fe2chore: fix prettier formatting in useIdleTimer
  • 7e05c370fix(app): guard tauri log forwarding when runtime is unavailable
  • 127d2fe6fix(usefetchdata): ensure onready callback only fires once
  • 38ded4d8fix(readyanimation): prevent animation chain from restarting on repeated calls
  • 6de01ed0fix(readyanimation): guard against lottie creation after unmount
  • 78ad4b9efix(usehistory): add explicit gctime to usehistoryshot query
  • 05527456fix(useidletimer): fix stale closure in starttimer and resettimer
  • e5f91084fix(snake): clean up image onload handler on unmount
  • 2f425ae0fix(manufacturing): prevent state update after unmount
  • 3241b200fix(timezonesettings): prevent state update after unmount
  • 6d2939f6fix(countrysettings): prevent state update after unmount
  • aaa1e582fix(purgepiston): add cleanup for requestanimationframe chains
  • 2a375f70fix(minipurgepiston): add cleanup for settimeout and requestanimationframe
  • 658d48aachore(deps): update semver dependencies
watcher updated
e150083e4ed0 → 58c85ae07b4c
  • 58c85aemove to uv and add deb building
firmware updated
952bcbbd92ad → cf259833e5cc
  • cf25983Reduce sentry noise from minor setpoint clamps
2026-03-25 00:08:46 - version: not recorded
firmware updated
ecf60623072c → 952bcbbd92ad
  • 952bcbbEmit WARNING logs from firmware logger
  • 7f50113Adjust espresso heating timeout to 15 minutes
  • 93b3773Add pre-brew heating timeout to espresso runtime
2026-03-24 00:07:45 - version: not recorded
No component changes in this build.
2026-03-23 00:08:50 - version: not recorded
No component changes in this build.
2026-03-22 00:07:07 - version: not recorded
No component changes in this build.
2026-03-21 00:07:33 - version: not recorded
No component changes in this build.
2026-03-20 00:08:20 - version: not recorded
No component changes in this build.
2026-03-19 02:03:17 - version: not recorded
backend updated
7592cee4a116 → 987d81701b22
  • 987d817feat(config): sync partial retraction with esp nvs
  • bbb903cfeat(profile-load): stream simplified profile JSON to ESP32
firmware updated
c1c694923bba → ecf60623072c
  • ecf6062chore(espresso-engine): report retract stall exits to sentry
  • 25d83a1feat(espresso-engine): interpret piston triggers as percentage
  • d9ee3dbfix(espresso-engine): make piston-position dynamics stage-relative
  • 170662afix(espresso-engine): clamp invalid setpoints and harden catmull
  • 689334achore(espresso-engine): simplify runtime log formatting
  • 1dad582tune(espresso-engine): tighten bottom limit exit heuristic
  • f0827f9tune(espresso-engine): run step loop at 50ms
  • 84be708perf(espresso-engine): precompute catmull curves at parse time
  • 59e7937feat(espresso-engine): enable catmull stage interpolation
  • 00eb9e7fix(espresso-engine): require low pressure before finishing purge
  • 9a2a071fix(espresso-engine): prevent retract stalls from blocking workflow
  • c9b04bdtune(espresso-engine): update retract motion sequence
  • a428331docs: add known issues tracking
  • 213183efeat(espresso-engine): support limits on power stages
  • 7c7bc04tune(espresso-engine): relax heating ready threshold
  • b5aa4ccfix(espresso-engine): use predictive weight for final shot stop
  • 21d0ee4fix(espresso-engine): keep heater off after heating
  • 4e1ecbcdocs(espresso-engine): add simplified profile workflow guide
  • c6c7b6bfeat(espresso-engine): rename pre-stage retract status and refresh docs
  • b70437dfeat(espresso-engine): make pre-stage retract configurable via nvs
  • cc08eadfix(espresso-engine): skip click-to-start on heating continue
  • 50a0e2dfeat(espresso-engine): align node telemetry with backend setpoints
  • 4506d43feat(espresso-engine): add runtime debug logs for states triggers and limits
  • 49e6e45feat(espresso-engine): throttle runtime step cadence to 100ms
  • bac3ed3feat(espresso-engine): show purge status only when pre-purge moves piston
  • 77bfd2bfeat(espresso-engine): allow ask-for-water resume via encoder click
  • 8e4c87afeat(espresso-engine): integrate ask-for-water runtime and align docs
  • 9751129feat(espresso-engine): use pressure purge and rename pre-stage pause status
  • a9713f7docs(espresso-engine): align workflow with tare step and refactored modules
  • b0c7e15refactor(espresso-engine): split runtime, parsing and control modules
  • bec037ffeat(espresso-engine): tare scale before pre-stage pause
  • 16deeadfeat(espresso-engine): switch to PID v1.0 and refine purge status labels
  • 77f7dcfrefactor(espresso-engine): replace stop commands with zero-power setpoints
  • dbdcaf2feat(espresso-engine): add click-to-start pre-stage sequence and continue skips
  • 87a7d3afeat(espresso-engine): add runtime abstraction and simplified profile engine baseline
  • 8787d09docs: add espresso profile engine technical design docs
2026-03-19 00:09:16 - version: not recorded
backend updated
324aa676017d → 7592cee4a116
  • 7592ceedb: fix linting and DB issues
  • 0e3454ddb: fix key error in deletion logic
  • fcd7155tests: test all database functions - not all tests passing
  • ca2fdaatests: add machine.py message parsing unit tests
  • dd26063ci/cd: add unit test running
  • c2dfffftests: add pytests script
  • 41d9ca8Dockerfile: install dev requirements
  • c3d902etest: add pytest harness
  • 85c7c31config: move all environment variables into config.py in preparation of mocking
  • 62bdacafix: patch bare NaN tokens in historical shot files
2026-03-18 00:09:33 - version: not recorded
No component changes in this build.
2026-03-17 00:08:09 - version: not recorded
No component changes in this build.
2026-03-16 00:09:02 - version: not recorded
No component changes in this build.
2026-03-15 00:08:00 - version: not recorded
No component changes in this build.
2026-03-14 00:08:43 - version: not recorded
No component changes in this build.
2026-03-13 00:07:14 - version: not recorded
No component changes in this build.
2026-03-12 00:58:58 - version: not recorded
No component changes in this build.
2026-03-11 02:17:37 - version: not recorded
backend updated
16e4efe7bade → 324aa676017d
  • 324aa67chore(data.py): decode url encoded strings coming from the ESP
2026-03-10 06:45:38 - version: not recorded
backend updated
25fbc783f1d9 → 16e4efe7bade
  • 16e4efefix(wifi.py): validate the saved WiFi security type is still valid to connect
firmware updated
7ef9a35c99e5 → c1c694923bba
  • c1c6949chore(FikaUart) URL-encode string within the shot data frame
  • ffc87abRevert \"fix(fikaUart): ensure no commas on string sent with sensor data\
  • ec0ec85fix(fikaUart): ensure no commas on string sent with sensor data
2026-03-09 00:06:43 - version: not recorded
No component changes in this build.
2026-03-08 00:06:11 - version: not recorded
No component changes in this build.
2026-03-07 00:08:44 - version: not recorded
No component changes in this build.
2026-03-06 17:39:33 - version: not recorded
backend updated
cabf67996538 → 25fbc783f1d9
  • 25fbc78fix: disable ETag for .zst files served decompressed
  • cb710e8feat: add 24-hour clock format configuration
  • 27de0d7emulated: move MOTOR_ENERGY_PATH to a env
firmware updated
e50c6fb4714a → 7ef9a35c99e5
  • 7ef9a35fix(tmotion): use shared PIDController i_term in FlowPID2
  • df8e4defeat(tmotion): add FlowPID2 path, test scripts, and workflow docs
2026-03-06 00:13:15 - version: not recorded
No component changes in this build.
2026-03-05 00:07:57 - version: not recorded
No component changes in this build.
2026-03-04 00:07:40 - version: not recorded
backend updated
7fd63ba192d9 → cabf67996538
  • cabf679hostname: include the serial in the hostname
firmware updated
d6cc83fdff8d → e50c6fb4714a
  • e50c6fbchore(cflowbyposition): dont update CFlowByPosition setpoint if the new value is invalid
  • 9657c2cchore(fikasensors): ignore _read_output_position if returns a NaN
  • 671a8ccchore(pidcontrol): report if pid_set_point is NaN
  • de3db1achore(cflowbyposition): refactor plunger_to_motor function
  • 2c53ce6fix(Curve.h): data truncation on calculate_value_linear
  • 02d1fe1feat(fikaSupervisorAgent): monitor motor position
  • 1f397e3chore(motorrestrictions): define and use MAX_MOTOR_POSITION instead of MAX_PISTON_DISTANCE_ALLOWED
2026-03-03 00:08:17 - version: not recorded
firmware updated
6d3b36733e2c → d6cc83fdff8d
  • d6cc83ffix(motor control): I term (PID) consistency
  • ee56673fix(CFlowByPOsition): update the static i_term after every computation
  • 2e3e784chore(CFLowBYPosition): clear unused variables
2026-03-02 00:06:24 - version: not recorded
No component changes in this build.
2026-03-01 00:07:09 - version: not recorded
No component changes in this build.
2026-02-28 00:06:07 - version: not recorded
No component changes in this build.
2026-02-27 00:08:27 - version: not recorded
linux initial
pinned to 9e14e4a6eb19
uboot initial
pinned to 00ba0da24a8b
atf initial
pinned to bed39c167c88
imx-mkimage initial
pinned to 71b8c18af93a
debian initial
pinned to db279cf0c71d
backend initial
pinned to 7fd63ba192d9
dial initial
pinned to 46794a991b31
web-app initial
pinned to b9bc6563c021
watcher initial
pinned to e150083e4ed0
firmware initial
pinned to 6d3b36733e2c
rauc initial
pinned to 269e1721b3c5
hawkbit initial
pinned to 60f34c8cdd0d
psplash initial
pinned to 5b0085b559f1
plotter-ui initial
pinned to cec4db6d56aa
crash-reporter initial
pinned to 9c377cac4a53