modern-fireman-99755
08/22/2026, 9:04 PMstraight-dog-12443
08/22/2026, 11:21 PMcalm-artist-7206
08/23/2026, 12:56 AMv1/completion, v1/responses, Gemini (their old API), and Anthropic.
Not sure off-hand why our deltas are apparently not; I wonder if we use or inherit some litellm class that doesn’t…, and the append-only log designcalm-artist-7206
08/23/2026, 1:00 AMMint the message's identity when the stream opens🤔 *c*an we do this nicely and safely, considering the append-only
EventLog? Store it in-memory in Conversation?
(still reading)calm-artist-7206
08/23/2026, 1:24 AMPublish after persist.Do I understand correctly, are we saying that we try to write a durable event, before it’s finished? (same as above, it would break the append-only invariant)
calm-artist-7206
08/23/2026, 1:38 AMcalm-artist-7206
08/23/2026, 1:43 AMIntroduce a new endpoint speaking an envelope that is not an event. The event itself does not change at all — same class, same validator, same bytes on disk. It rides inside the envelope as a payload. Everything the protocol needs now lives on the envelope, where adding a field costs nothing and breaks nobody.One thing that surprised me in Joe’s latest bug report was the number of events: we appear to count all streaming deltas ? It doesn’t seem correct, deltas are fleeting, not Events. If we’re willing to change the protocol, cool - and maybe we shouldn’t count them in the first place, so idk if they still need to be Events then… though maybe I’m missing something
modern-fireman-99755
08/23/2026, 8:21 AMOnly nit I can offer is because I've been in an ACP rabbit hole today.
I think you'll want to use messageId, which was added in 0.12.0.
You'd probably run into this doing the implementation even if it wasn't mentioned, tho.Yes. A problem was also that with ACP we didn't have the
messageId.
*c*an we do this nicely and safely, considering the append-onlyThis should be safe because minting isn't a write. The? Store it in-memory in Conversation?EventLog
EventLog never assigns ids, it receives events that already have one.
Do I understand correctly, are we saying that we try to write a durable event, before it’s finished?So today we announce an event on the socket before it's on disk, and if the append then raises we've already told the client about an event that doesn't exist. The change just swaps them so publish happens only on a successful append.
I wonder a bit if we really need to mask secrets contained inside the LLM response.I think we must do that 🙂 but I have strong opinions on this theme. Best case scenario, we block the LLM to read secrets when it is using tools. But this is difficult to maintain as we have a lot of tools, right?
One thing that surprised me in Joe’s latest bug report was the number of events: we appear to count all streaming deltas ? It doesn’t seem correct, deltas are fleeting, not Events.Yes. This is actually a bug. Now the problem is that the deltas are a subclass of events.