v5.16.1
3·6·9 repetitions saved from the iPhone app now use the same canonical civil-day format as the production journal. A repetition that was protected locally after the earlier server error can replay safely when Miracle reopens.
The failed request rolled back completely and never advanced the journal or any related practice. The iPhone retained the exact repetition in its protected Sync outbox, so it can be retried without entering it again.
After the server accepts the repetition, Miracle advances the 3·6·9 session normally and returns the canonical saved state to the iPhone.
One short email when something meaningful ships. No streaks required.