Published release

MOMM 1.15.0

Explicit signed updates and recovery, per-harness receipts, protocol acceptance, stricter completion evidence, CLI maintenance and attributed version history. Fresh-install testing then found an updater staging defect; use the 1.15.1 correction and bootstrap guidance.

Published 2026-09-13 · Tag momm-1.15.0

Original source record ↗

MOMM 1.15.0 — explicit updates and clearer evidence

Final compatibility fixes preserve existing CSV download columns, deduplicate identical decisions imported from overlapping evidence stores, and retain keyboard focus and accurate report-derived titles in the public ledger. Malformed shared fragments and legacy orphan entries have explicit regression coverage.

Updater receipt writes now share the update exclusion claim. Rollback retains harness scopes explicitly added after an update; an implicit stable-channel downgrade is refused and requires an explicit version choice instead.

These notes were prepared for the release candidate. Publication is complete only after the safety matrix, privacy review and signed-tag verification. Check the canonical release record and signature before installing; this file is not proof that the tag exists.

Changes

Evidence corrections

The existing 2026-09-04 public snapshot remains the source—not a fresh run: 153 run records, 139 stored reports, 366 successful log responses versus 343 stored responses (23 summary-only), and 570 decision records. Those decisions are 302 applied, 251 rejected, 8 deferred and 9 historical unclassified rows. 31 coalition/multiple-route decisions are kept separate from individual routes. These are this project's development records, not an independent benchmark.

Public report hashes now cover canonical sanitized JSON. The older stored-file hash is explicitly labeled private-source provenance, not public-byte verification. Malformed imports and conflicting duplicate run IDs fail visibly.

Verification and limitations

Updater fixtures use disposable real Git repositories and actual installers. They cover manifest-only behavior, non-mutating preview, protocol refusal, unsigned-tag rejection, bad hashes, dirty files, pinning, failed relinking, per-harness scope, wrong post-relink commits, helper-code provenance, offline recovery, opt-outs, stale claims, changed ignore rules, trust-environment overrides and archive installation. Browser checks cover desktop/mobile layout and actual ledger rendering; fake speech tests confirm missing/remote voices never play. Positive transaction fixtures replace the signature service deliberately; the release workflow and final live verification must exercise the real signer.

The updater does not claim recovery from deleted repositories, missing Git objects, damaged storage or missing harness prerequisites. It refuses local edits and an existing update claim; after a crash, independently confirm no updater is running before removing only that claim and retrying recovery. It also refuses an unrelated concurrent checkout. Legacy unsigned releases require an explicit bootstrap; they are not update targets or retroactively signed.

The controlled lifecycle test runs real authored failing/passing tests with synthetic peer replies, without provider calls. It is not proof that every harness obeys the protocol. Record validation cannot establish that an observation is truthful or a chosen test adequate; no peer snippet is executed automatically. This release does not solve every reviewer reliability issue. See the maintained roadmap for large-input route failures, independently detached processes and unsupported source/media lifecycle binding. No API-key support, repository split, telemetry collection or marketing outreach was added.

← All version notes