You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace dual-sync-async persistence panic with Watch contract
Instead of panicking when a Persist implementation returns both
Completed and InProgress from the same ChannelManager instance,
define a clearer contract at the Watch trait level: a Watch
implementation must not return Completed for a channel update if
there are still pending InProgress updates for that channel. This
matches the pure-async interface where you can't complete an update
until all previous ones have completed.
This reverts the monitor_update_type tracking and panic checks from
0760f99, replacing them with a debug_assert that validates the
Watch contract. Persist implementors are expected to be consistent
(always sync or always async), so ChainMonitor naturally satisfies
this contract without code changes. Legacy tests that switch the
persister between modes mid-flight can opt out of the assertion via
Node::disable_monitor_completeness_assertion().
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
0 commit comments