]> 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
-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
@@ -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
-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,
@@ -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
-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