diff options
| author | cirakg <cirakg@cirakg.xyz> | 2026-10-20 01:51:05 +0200 |
|---|---|---|
| committer | cirakg <cirakg@cirakg.xyz> | 2026-10-20 01:51:05 +0200 |
| commit | 0edb4bb6d76939aa456cbbc8deafeed50fd6182d (patch) | |
| tree | 3f22349f6d64ff0fa33b6ff9bbcc10584f8b152c /CHANGELOG.md | |
| parent | 42f9331e693f5058fcfcd7aef5a92cabc04c20ee (diff) | |
docs: record M5 results; bump to 0.5.0v0.5.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'CHANGELOG.md')
| -rw-r--r-- | CHANGELOG.md | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 75f3850..0e0acca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,44 @@ All notable changes to this project are documented here. The format follows ## [Unreleased] +## [0.5.0] - 2026-10-20 + +Milestone M5: import. You can now add entries by pasting `otpauth://` links or +an unencrypted Aegis JSON export into the new Import group of the app settings. + +### Added + +- `source/import/`: + - A streaming JSON tokenizer: strict, with depth and length limits; skips + icons natively; reports incomplete input. + - The Aegis reader: database versions 1-3, groups, encrypted exports + refused, duplicate fields rejected. + - The `otpauth://` parser: run-together URIs, `;` separators, Steam forms, + issuer mismatch notes. + - The import job: Replace mode, the duplicate and replacement checks, a + multi-part buffer sealed with the device key (32 KB, 24 h), and a report. +- `source/settings/`: + - The settings processor: the Import form, applied after the first frame + and on every settings change. It clears the fields, writes the status, + remembers form hashes and opens the results screen. + - The results store; the list shows "Results ready" until they're read. +- The Import group in the phone settings (8 text fields, mode, "Require PIN", + "Import now", result). +- An 8-byte keyed secret fingerprint in every record header, to find + duplicates of locked entries while locked (docs/SECURITY.md). +- Seeded fuzz corpus (`tools/gen_fuzz_corpus.py`, `make corpus`); 29 Monkey C + and 5 Python tests. The UI flow imports 100 entries through the settings + form and checks the peak memory. + +### Changed + +- Info screens space out their items; the results screen is titled "Results". + +### Deferred + +- Google Authenticator `otpauth-migration://` exports (README 11.1): the + importer explains that they aren't supported yet. + ## [0.4.0] - 2026-10-19 Milestone M4: the screens. The app is usable in the simulator with demo |
