Skip to content

engine: seq-0 fan-out events (reactions, receipts, action results) deduped only by a bounded 512-entry msg_id window #292

Description

@willwashburn

Severity: medium · relay crates/broker/src/node_control.rs:522-570 (FleetDeliveryBook, explicit comment at :531-536); engine side: ephemeral seq:0 frames from nodeDeliver.ts

Reactions, read-receipts, and action results all share seq: 0 and are deduped only by msg_id within a 512-entry FIFO window on the broker (the seq cursor can't dedup them). A redelivered seq-0 frame after 512 intervening seq-0 frames can be re-injected into the agent.

The engine-side fix is the durable one: assign real per-agent seqs to these fan-out events (folding them into the mailbox cursor), or dedup them by delivery_id (unique) instead of a bounded msg_id window. Related: the completion fan-back at-most-once issue — both stem from the ephemeral seq:0 side-channel bypassing the mailbox's guarantees.


Found during a multi-agent cross-repo architecture review of the relay tool/protocol.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions