mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-07-21 12:09:29 +00:00
Change WakuMessage from a value object to a ref object so assignments, async-closure captures, and Result/Option bind-outs cost a pointer + refcount instead of deep-copying the three seqs + string. - structural `==` (nil-aware, field-wise) so message equality assertions keep working under ref identity - `clone()` explicit deep copy for the rare mutate-a-held-message case - rewrite `ensureTimestampSet` to be non-mutating (clone when unset) instead of `result = message; result.timestamp = ...`, which under ref semantics would mutate the shared input - new unit tests: structural == incl. nil, clone independence, ensureTimestampSet same-ref/fresh-ref behaviour Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>