X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/56d959f2d573eef1be5c04d0bf1659fa30d36e7c..38a9b0502a1ccefc6ccb3472c4a21805b222caa6:/README.rst?ds=inline diff --git a/README.rst b/README.rst index b17cd64..457cb19 100644 --- a/README.rst +++ b/README.rst @@ -237,6 +237,24 @@ private chat holds the phone number of the contact, such as ``15550002222@s.whatsapp.net``, and the ID of a group can hold the number of the person who made it. +While the daemon is stopped or disconnected, the WhatsApp servers keep +the messages for the linked device and send them at the next connection. +They keep them only for a limited time, so a long stop can lose +messages. These messages form batches by their original times, as live +messages do. The daemon waits for the end of this catch-up, or one +minute at the most, and then gives all its batches to the agent in one +turn, not one turn for each chat. The batches of ``whatsapp/state.json`` +at the start wait for the first catch-up in the same way. + +The agent finds a chat with the tool ``whatsapp_find``: it gives the +contacts and the groups whose name holds a text, with no regard to case +and accents, with their IDs. The names of the contacts come from the +session, and the names of the groups from WhatsApp, kept in memory for +one hour. The names arrive from the phone some minutes after the link, +and until then the tool says that they are not ready. Without a link, +the tool tells the agent to ask the user to run ``/whatsapp pair +PHONE``. Only the agent has the WhatsApp tools, not its subagents. + Each batch of a group goes to the chat, also with no turn, and the memory tree summarizes it with model calls, which use the quota.