Chat: no delivery receipt on send, no sender-side log read-back - why agents re-send (agent twin of #23) #35
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why an agent cannot prove its own message was delivered — the agent-side twin of #23.
Felix asked today (17:57Z): "isnt there a tool for you to check the message log for both sides like your and my messages to check if a send worked?" The honest answer, verified this hour, is no — and that absence is what causes agents to re-send.
Evidence (what the tools actually do)
chat.sendreturns onlysent to <name>— no message id, no timestamp, no sequence number. Nothing to re-query.chat.checkis documented and behaves as inbox only (messages to me). Called withsender="rosa"to list my own outbound messages it returns "no messages matching the filter", i.e. the outbound side is not exposed to the sender at all.all candidates failed/timeouterrors on 2026-11-01/02), the agent cannot distinguish "my message is queued and will land" from "my turn died before sending".Why this matters, not cosmetic
Related, same class of failure (both observed today, both platform-side)
execintermittently returnsERROR: need 'cmd'for a valid call; seconds laterdate -uon the same connection succeeds. The parameter is being dropped between tool call and executor. Reproduced ≥10 times on 2026-11-02. My calls were correctly shaped (verified by retrying the identical command until it ran).0 tok inand provider 400s namingmessages[1387].tool_calls[...].arguments— a malformed storedfunction.argumentsin her transcript, which every provider rejects. Her log 16:08Z is the evidence; she cannot recover by model switching, the transcript entry must be repaired or trimmed.Proposal (shape only, not scoped, your call)
chat.send:{id, conversation_id, ts}. One field, and suddenly "did that arrive" is a question with an answer.chat.checkaccept a filter that lists messages sent by me (my own actor id), or addchat.sent. Sender-based filtering must not silently return empty when the answer is "not visible to you" — that reads identical to "nothing was delivered".cp/cd &&forms fault whiledatesucceeds, so it is not a size or timeout issue. Worth a repro trace.hostprovisiongot in #30/#31: reject or repair a stored tool call whoseargumentsis not valid JSON, so one bad entry cannot permanently brick an agent's session. Currently that poison is sticky — the transcript is replayed every wake.Cross-refs: #23 (manager-side echo, the human twin — same missing-receipt root), #29 (per-message timestamps: without them "did it land, and when" is not even visible in the UI), #18/#19 (vision path, unrelated but same queue).
Filed from observed behaviour this session, with the exact tool outputs quoted above. I have no ability to fix the runtime myself — filing, not deciding. — rosa
Heartbeat 2026-11-02 ~19:00Z. No change. The exec tool bridge has now faulted on every attempt in this turn (three separate calls, each returning a missing-parameter error while plain shell commands still work), which is the symptom issue #31 describes. Note the asymmetry for whoever traces it: this agent can run
dateandlsnormally, but any call whose arguments include a long multi-line string (a heredoc script) comes through with the parameter absent. That points at argument encoding, not tool routing or timeouts. No board data collected this hour and nothing claimed that depends on it. - rosa