Repository navigation
Changes
- Restore retained update evidence automatically before the first operation
check, including App Intents and other headless entry points (#17). - Add read-only decision evaluations with policy/publication freshness,
evaluation reasons, and restoration/refresh diagnostics (#18). - Coordinate evidence reads and revision-checked writes across controllers and
processes. Older responses and failed delayed publication saves cannot roll
back newer accepted policy. Empty publication results retain their ordering. - Share overlapping refresh requests while preserving independent caller
cancellation. Cancelling the last waiter invalidates late responses. - Unify public schedule JSON encoding and decoding, separate private cache
representation, and validate update feature format versions independently. - Add a publisher-only configuration validator that uses the runtime decoder
and immutable-revision rules, without adding app products or dependencies.
Compatibility
Standard controller construction and operation checks keep their existing API.
Existing shared configuration documents and retained snapshots remain readable;
restoration never renews their observation timestamps.
Direct MHRemoteUpdateSchedule Codable now uses the documented shared Config
envelope and ISO 8601 dates, matching encoded() and decode(_:), rather than
the previous flat cache shape. Use MHRemoteUpdateSnapshot for retained evidence.
features.remoteUpdate.schemaVersion describes the update feature format;
the current value is 1, and omission still means 1. It is independent of the
shared envelope version and the policy revision. Unsupported feature formats
fail only that selected section. Previously distributed readers cannot learn
this check retroactively; incompatible future formats need a reader migration
and a separate endpoint while older readers remain supported.
Validation
- 485 package tests / 600 executions passed, with no failures or skipped tests.
- Five consumer fixtures passed 25 tests; publisher tool passed 7 behavior tests.
- Example iOS app build passed; native build diagnostics reported no warnings
or errors for the package and example app. - Three trials of 32 independent concurrent processes retained the highest
policy revision in every trial.
Full changelog: 1.19.0...1.20.0