Describe the bug
Buzz Desktop can render an agent response before the human message that triggered it when the sender's device clock is slightly ahead of the relay/agent clock.
Nostr's signed created_at should remain intact, but using it directly as the presentation-order key makes a successful agent response look missing. In the observed case, the agent reacted and replied normally, but its answer appeared above the question inside the thread.
Steps to reproduce
- Use Buzz Desktop on a device whose clock is approximately 30–40 seconds ahead of the relay/agent host.
- Open a channel thread containing an agent.
- Send a reply that triggers the agent.
- Wait for the agent to publish its response.
- Inspect the thread ordering.
The agent's response appears before the triggering human message because the response has an earlier signed created_at, despite arriving at the relay later.
Expected behavior
The visible timeline should preserve causal/live message order under modest client clock skew, so an agent response does not appear before the message that triggered it.
This should not require rewriting the sender-signed Nostr event or its created_at. Possible approaches include a separate relay receipt sequence/timestamp for presentation ordering, a skew-corrected local observation key, or another stable ordering mechanism that retains authored time as metadata.
Version and platform
- Buzz version: 0.4.26
- OS: macOS 26.5.2, arm64
- Self-hosted relay source revision:
c2a4ee711e481bb427d6cf8cd8b2c7329d1508c
Logs / additional context
Observed relay records (UTC):
| Event |
Relay received_at |
Signed created_at |
| Human thread reply |
2026-07-27 09:45:09.251015 |
2026-07-27 09:45:46 |
| Agent response |
2026-07-27 09:45:44.040725 |
2026-07-27 09:45:43 |
The relay received the human message first and the agent answer about 35 seconds later. Sorting by signed created_at reverses them, placing the agent answer three seconds before the human question.
Both events were kind 9 replies anchored to the same thread root. The agent also published processing reactions, confirming that delivery and execution succeeded; only the resulting timeline presentation was misleading.
Related but not duplicate:
Neither addresses visible message/thread ordering under sender clock skew.
Describe the bug
Buzz Desktop can render an agent response before the human message that triggered it when the sender's device clock is slightly ahead of the relay/agent clock.
Nostr's signed
created_atshould remain intact, but using it directly as the presentation-order key makes a successful agent response look missing. In the observed case, the agent reacted and replied normally, but its answer appeared above the question inside the thread.Steps to reproduce
The agent's response appears before the triggering human message because the response has an earlier signed
created_at, despite arriving at the relay later.Expected behavior
The visible timeline should preserve causal/live message order under modest client clock skew, so an agent response does not appear before the message that triggered it.
This should not require rewriting the sender-signed Nostr event or its
created_at. Possible approaches include a separate relay receipt sequence/timestamp for presentation ordering, a skew-corrected local observation key, or another stable ordering mechanism that retains authored time as metadata.Version and platform
c2a4ee711e481bb427d6cf8cd8b2c7329d1508cLogs / additional context
Observed relay records (UTC):
received_atcreated_at2026-07-27 09:45:09.2510152026-07-27 09:45:462026-07-27 09:45:44.0407252026-07-27 09:45:43The relay received the human message first and the agent answer about 35 seconds later. Sorting by signed
created_atreverses them, placing the agent answer three seconds before the human question.Both events were kind
9replies anchored to the same thread root. The agent also published processing reactions, confirming that delivery and execution succeeded; only the resulting timeline presentation was misleading.Related but not duplicate:
Neither addresses visible message/thread ordering under sender clock skew.