]> git.giacomolli.uk - onechat/blobdiff - README.rst
Check test assertions with testifylint
[onechat] / README.rst
index 0cc4b1e194d9a7deaf3a32d8281b1c0bbc4b67de..9893fc40944ca89fc6675e97ebb724036d901b1a 100644 (file)
@@ -130,7 +130,9 @@ prompt cache key comes from it.
 ``workdir`` is an absolute path, and its default is the home directory.
 ``agent/instructions.md`` holds the user's instructions: who they are,
 how their files are organized, and how they want work done. The prompt
 ``workdir`` is an absolute path, and its default is the home directory.
 ``agent/instructions.md`` holds the user's instructions: who they are,
 how their files are organized, and how they want work done. The prompt
-ends with them, and a change applies at the next call.
+ends with them, and a change applies at the next call. The agent can
+propose a change to the file, and it makes the change only after the
+user agrees.
 
 **************
  User service
 
 **************
  User service
@@ -359,14 +361,53 @@ memory tree summarizes it with model calls, which use the quota.
 When the session holds a linked device, the daemon connects at its
 start. If the first connection fails, it tries again after 2 seconds,
 then doubles the wait up to 5 minutes. The inbox and commands stay
 When the session holds a linked device, the daemon connects at its
 start. If the first connection fails, it tries again after 2 seconds,
 then doubles the wait up to 5 minutes. The inbox and commands stay
-active during each wait. An unlink, logout, or pair command stops these
-retries. After a network failure of an open connection, the library
-connects again by itself. When a disconnection lasts 10 minutes, all
-clients get one notice, and one more when the connection comes back.
-When WhatsApp ends the connection for good, for example because another
-program uses the same session, all clients get a notice at once. When
-the user removes the device in the phone, the daemon deletes the session
-and tells all clients one time.
+active during each wait. An unlink or a logout stops these retries.
+After a network failure of an open connection, the library connects
+again by itself. When a disconnection lasts 10 minutes, all clients get
+one notice, and one more when the connection comes back. When WhatsApp
+ends the connection for good, for example because another program uses
+the same session, all clients get a notice at once. When the user
+removes the device in the phone, the daemon deletes the session and
+tells all clients one time.
+
+*************************
+ Import WhatsApp history
+*************************
+
+Stop the daemon and finish all subagents before an import. Export each
+chat from WhatsApp as a ZIP with ``_chat.txt``. Keep the chat name in
+the ZIP name, such as ``WhatsApp Chat - Example.zip``. Read the plan
+first:
+
+.. code:: console
+
+   onechat import -n CHAT.zip OTHER.zip
+   onechat import CHAT.zip OTHER.zip
+
+``-n`` makes no model call and prints the chats, chat-day batches, local
+dates, cutoff, text bytes, merged message count, and estimated calls.
+The import keeps multiline text, system lines, and omitted-media
+markers. It maps the session's profile name to ``You``. Without that
+name, it keeps the senders as written and says so in the plan. An exact,
+unambiguous local contact or batch name supplies the chat ID when known.
+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.
+
+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 probe's 660-call and 15-quota-point limits and prints the same usage
+report. Its estimate is about 1.3 calls per merged message, not a cost
+guarantee. A stopped or failed run leaves the agent unchanged. A new run
+starts over. Success keeps the other agent files and renames the old
+directory to ``agent-backup-TIMESTAMP`` before it installs the new one.
+Keep the backup until the new memory is checked, then start the daemon.
+Message IDs change to their positions in the merged log.
 
 ***********
  Schedules
 
 ***********
  Schedules