aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
authorcirakg <cirakg@cirakg.xyz>2026-10-19 15:27:37 +0200
committercirakg <cirakg@cirakg.xyz>2026-10-19 15:27:37 +0200
commit97a366e8b7c540b246c7bf9d04625526cbdc88ba (patch)
tree131e2574a4ca927f99a6d82cc1117d45343e80b2 /CHANGELOG.md
parent8ac04a0c2f5cd949a45866f938bd1aa72fbe56e2 (diff)
docs: document the storage format and record M3 results; bump to 0.3.0v0.3.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md24
1 files changed, 24 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0cee853..c4a7737 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,30 @@ All notable changes to this project are documented here. The format follows
## [Unreleased]
+## [0.3.0] - 2026-10-19
+
+Milestone M3: storage, keys and PIN logic. Nothing user-visible yet; the
+screens come with M4.
+
+### Added
+
+- Storage (`source/storage/`): the vault (ordered entries, add, update, move,
+ remove, HOTP counter), the deterministic TLV codec, the record format (readable
+ header plus an encrypt-then-MAC box bound to the entry ID), the device key and
+ the PIN-wrapped master key, resumable PIN derivation, the wrong-PIN lockout
+ (trusted clock with an uptime fallback, optional erase after 10 failures), the
+ session with auto-lock and key wiping, the pending queue for locked entries,
+ schema migrations, the 150-entry cap and clean store-full errors.
+- `Bytes.toUtf8` with strict UTF-8 validation.
+- `docs/SECURITY.md`: the stored byte formats and what each protection is
+ tested by.
+- 34 Monkey C tests (65 in total per device) and storage benchmarks.
+
+### Changed
+
+- The PIN wrap and the lockout state are stored under their own keys (`w`,
+ `lk`) instead of inside the metadata (README 6.2 updated).
+
## [0.2.0] - 2026-10-18
Milestones M1 (prepared; your phone test pending) and M2: crypto and OTP core.