diff options
Diffstat (limited to 'CHANGELOG.md')
| -rw-r--r-- | CHANGELOG.md | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ac63f2..892d7a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,62 @@ All notable changes to this project are documented here. The format follows ## [Unreleased] +## [0.8.0] - 2026-10-21 + +Milestone M8: polish, performance and the release candidate. 1.0.0 follows +once the on-watch checklist is done (docs/TESTING.md). + +### Added + +- The favourite code in the glance (opt-in, "Show the favourite code in the + glance"): the first favourite TOTP or Steam entry without the PIN, with a + countdown bar. The app seals that entry for the glance under `g` after + every change (`source/app/GlanceCode.mc`); the glance checks the option + itself, so turning it off hides the code at once. +- Manage entry: "Mark as favourite (glance)" and "Remove favourite". +- Brightness: full brightness on AMOLED watches and the backlight on MIP + watches while a barcode is shown, renewed for up to a minute; a tap starts + the minute again. +- `make watchdog` (in `make ci`): a stress build (`stress.jungle`, + `source/util/StressTest.mc`) encodes the largest code of every 2D + symbology, packs it, finds its runs and draws it, with two steps per + event, on the Forerunner 255S and 70. The last code stays on the screen + and must decode. +- `make memtest` checks the glance too (at most 70 % of its 64 KB). +- `make products` checks each product's watchdog limit against the job + runner's assumption. +- `docs/USER_GUIDE.md`, with the list of known limitations. + +### Changed + +- Imports use far less memory: parsed items are kept packed (about 110 + bytes each instead of 760 as objects), and the pasted text is held once. + The peak of a 100-entry import on the Forerunner 255S fell from 56 % to + 45 % of its memory. +- QR mask scoring works on rows and columns packed 16 modules per word + (the same penalties as before, checked against the per-module rules on + every mask): a version 10 QR takes 40 % less compute. +- Watches with 768 KB (every target except the Forerunner 255 and 255S) run + two job steps per timer tick, which halves import and encoding times. +- Large 2D codes are drawn as runs (one rectangle per run), from a bitmap + painted in steps when there are too many runs for one frame. +- The barcode cache has a new format with 16-bit sizes; caches from 0.7 are + re-encoded once. + +### Fixed + +- Large 2D codes could stop the app with "Watchdog Tripped" on every watch: + the QR segmentation, Reed-Solomon blocks, function patterns and the final + mask; Data Matrix encodation, placement and drawing; Aztec bit encoding, + stuffing, the GF(4096) tables and generator; PDF417 compaction; the cache + packing; and drawing a code module by module. Every step is now bounded + and measured (`make watchdog`). An entry like that added from the phone + would have crashed the app during settings processing, at every start. +- A PDF417 code wider than 255 modules (big screens) was cached with a + wrong width. +- The Data Matrix placement grid used up to 90 KB; it now uses a byte + array (about 35 KB for the largest symbol). + ## [0.7.0] - 2026-10-20 Milestone M7: the phone settings forms. Entries can now be added and changed |
