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
The cockpit reads the raw event tail in two requests on any log size
and states why a causality trace is empty, riding the since=latest
shortcut and the absence notes below.
The hub now remembers directed chats that reached no live connection:
a bounded per-target ledger (biggest blackhole first, stalest target
evicted beyond 200, cleared the moment the addressed name connects)
rides the state snapshot as dead_letters, so the dashboard and the
cockpit can show "N messages, nobody listening" instead of leaving
the blackhole invisible. Honest scope: an entry attests only that no
live connection matched at send time — feed-history draining remains
the doctor's addressee check.
Directed-message blackholes are now visible and drainable. syn inbox --as NAME (repeatable; standing set via the comma-separated $SYN_ALIASES) drains additional identities — a role name like project/coordinator alongside the resolved one — each under its own
cursor, so no reader ever consumes another's delta. And synapse doctor gained an addressee check: recent directed traffic whose
target has no inbox cursor, no live waiter, and no live connection is
reported with message counts and the drain command, because a message
nobody reads otherwise waits for a human to relay it — the exact
failure the bus exists to remove.
/events.json accepts since=latest — the tail shortcut that starts
at the log's end instead of walking a large history to catch up.
A present: false causality-feed answer now carries a note naming
which absence it is: an event recorded but outside the coordination
causal graph (chatter carries no causal edges), or no event at that
sequence at all.