summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
authorcirakg <cirakg@cirakg.xyz>2026-10-21 03:55:15 +0200
committercirakg <cirakg@cirakg.xyz>2026-10-21 03:55:15 +0200
commitf439beec17419ccbe0dc7643cc039079f15e04a0 (patch)
tree02863a95ba3d8af263a68586370319e5559b00a8 /CHANGELOG.md
parent56e0c351bb95cfdf63aa76ab8c5d725a694bad63 (diff)
docs: user guide, known limitations and M8 results; bump to 0.8.0v0.8.0
0.8.0 is the release candidate: 1.0.0 is tagged after the on-watch checklist (docs/TESTING.md). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md56
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