Skip to content

1.20.0

Latest

Choose a tag to compare

@github-actions github-actions released this 19 Oct 14:48

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