Skip to content

Remote comms: Fix Promise Resolution Tracking #662

@sirtimid

Description

@sirtimid

Problem: Promise resolutions sent via deliverNotify() can be lost if the connection drops before delivery. There's no persistent tracking of unresolved promises that have been sent to remotes, no retry mechanism for promise notifications after reconnection, and no timeout-based cleanup of promises that remain unresolved after 5 minutes.

Expected Behavior:

  • Track unresolved promises sent via deliverNotify() persistently
  • Retry delivery of promise notifications after reconnection
  • Implement timeout-based cleanup of promises that remain unresolved after 5 minutes
  • Ensure promise-based coordination between kernels remains reliable

Note: If #656 "Message Acknowledgment and Retransmission" is implemented, this issue can be simplified to use that general ACK mechanism instead of separate promise notification tracking. The general ACK system would cover promise notifications along with all other messages.

Implementation (if done separately):

  • Add persistent tracking of promise notifications sent via deliverNotify()
  • Track which promise notifications are awaiting delivery confirmation
  • Retry promise notifications after reconnection if not confirmed
  • Clean up promises that remain unresolved after 5 minutes
  • Store tracking in kernel store for persistence

Implementation (if using general ACK mechanism):

  • Use the general message ACK/retry system for promise notifications
  • Ensure promise notifications are included in ACK tracking
  • Verify timeout and retry behavior works for promise notifications specifically

Current behavior: deliverNotify() just sends the message via sendRemoteMessage() with no tracking or retry.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions