diff --git a/CHANGELOG.md b/CHANGELOG.md index 54bab06..1a556c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,9 +25,28 @@ base packages. Nothing here changes a pin. `entrypoint-user.sh` and | Component | Baked in v1.9.4 | Next build | Why | |---|---|---|---| | pi-extensions | `25c1265` | **`143a214`** | `install.sh`: skip hook activation on a clone this user cannot configure (below) | +| mempalace-toolkit | `2167a1b` | **`975ab92`** | mailbox: an ask can declare `dormant_unless`, so deliberately-waiting work stops being announced (below) | +| pi-studio | `v0.9.60` (`e04fc7a`) | **`v0.9.61`** (`641aa32`) | upstream release, adopted as-is; `-studio` variant only | ### Added +- **Mailbox: an ask can declare its own dormancy (`mempalace-toolkit` `975ab92`)** + — a first-boot acceptance ask is planted deliberately unanswerable, describing + work that becomes possible only when the device is next recreated, and it must + stay owed until then because closing it early to tidy the mailbox is how that + work gets lost. `deriveOwed` could not tell that apart from neglected work, so + such an ask was announced at every session start and every poll for as long as + it was correctly waiting — three days running on `emb-7kj4vr4g` + (2026-09-28 → 2026-10-01) and across three consecutive releases before that. + An ask may now carry a `dormant_unless` predicate (`file_mtime` / `json_field` + against local paths) and is withheld from the *announced* owed-set while every + condition still matches its baseline, returning the moment any differs. + Withheld from the announcement, never from the mailbox: the wake-up injection + still lists dormant asks once per session. Unevaluable predicates announce the + ask — dormancy is proven, never assumed — and an ask without the key behaves + exactly as before. Nothing in the image changes except the bridge the + `MEMPALACE_TOOLKIT_REF=main` clone already tracks. + - **Four base packages: `sqlite3`, `bc`, `dc`, `bsdextrautils`** — requested 2026-09-28 after a session had to reach for `bc` and found it absent. 1311 KB total, and ZERO transitive packages: `libsqlite3-0`, `libreadline8t64`,