]> git.giacomolli.uk - onechat/blobdiff - README.rst
Use both logs for WhatsApp import cutoffs
[onechat] / README.rst
index 36db09c371132db8ddb1455b901533b5935521dc..49963a10e4bae960b772da5067f0a5241dd7e83f 100644 (file)
@@ -497,9 +497,10 @@ 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
 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.
+minute at the most, and then gives all its unrouted batches to the root
+in one turn, not one turn for each chat. Routed batches wake their
+child. 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
 
 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
@@ -524,7 +525,11 @@ The root manages source routes with ``route(source, agent)``,
 source is ``whatsapp:CHAT-ID``, with the ID from ``whatsapp_find`` or a
 ``[WhatsApp]`` message, and the agent must be its child. The root keeps
 the map in ``agent/routes.json`` with mode 0600. Children and subagents
 source is ``whatsapp:CHAT-ID``, with the ID from ``whatsapp_find`` or a
 ``[WhatsApp]`` message, and the agent must be its child. The root keeps
 the map in ``agent/routes.json`` with mode 0600. Children and subagents
-have no route tools. There is no command to change routes.
+have no route tools. There is no command to change routes. Each routed
+batch enters only its child's log and wakes it, including a group batch
+with no mention. The durable agent queue prevents a second log entry
+after a restart. An unrouted source or a missing child uses the root. A
+queued batch whose child is removed while stopped goes to the root.
 
 When the session holds a linked device, the daemon connects at its
 start. If the first connection fails, it tries again after 2 seconds,
 
 When the session holds a linked device, the daemon connects at its
 start. If the first connection fails, it tries again after 2 seconds,
@@ -562,10 +567,11 @@ No network lookup is made.
 
 Each chat and local day becomes one work message marked ``(imported)``.
 Only messages before the first message of the earliest live WhatsApp
 
 Each chat and local day becomes one work message marked ``(imported)``.
 Only messages before the first message of the earliest live WhatsApp
-batch enter the import. Live times have minute precision, so the cutoff
-excludes that whole minute. A chat-day already imported is skipped.
-Overlapping chat-days in the supplied ZIPs are refused. Review the
-exports before import: their text goes to the model as chat history.
+batch for the same chat enter the import. Live times have minute
+precision, so the cutoff excludes that whole minute. A chat-day already
+imported is skipped. Overlapping chat-days in the supplied ZIPs are
+refused. Review the exports before import: their text goes to the model
+as chat history.
 
 The import merges the full log in date order and builds its tree with
 real compactor calls, the agent prompt, and the agent cache key. It uses
 
 The import merges the full log in date order and builds its tree with
 real compactor calls, the agent prompt, and the agent cache key. It uses