fix(agent): handle partial room timestamps without crashing
This commit is contained in:
@@ -326,6 +326,14 @@ with `metadata.kind: "tool_call"`, matching Sybil's tool renderer. REST pages an
|
||||
socket messages are upserts keyed by stable `id`. Save each returned cursor after
|
||||
applying its entire frame, even when it contains no visible messages.
|
||||
|
||||
Both message frames and queued activity use the required message envelope and
|
||||
historical timestamp compatibility rules in [REST room history](./rest.md#get-v1agentmessages).
|
||||
Protected tool redaction preserves `createdAt`, a safe string `content`, and
|
||||
available lifecycle metadata; it does not remove the row's identity or replay
|
||||
metadata. Partial tool results may omit `args`/`startedAt`; merge them without
|
||||
losing a known creation time or downgrading a completed tool on replay. Validate
|
||||
and normalize all rows before applying a frame or advancing its cursor.
|
||||
|
||||
Clients may send `{ "type": "ping" }` (receiving `{ "type": "pong" }`) or
|
||||
`{ "type": "subscribe", "after": "44" }` to change the replay cursor. Transport
|
||||
ping/pong heartbeats detect dead connections. Other writes belong on REST.
|
||||
|
||||
Reference in New Issue
Block a user