.. code:: console
onechat daemon
- onechat chat
+ onechat
+
+``onechat`` with no command is the same as ``onechat chat``. ``onechat
+help`` lists the commands.
The daemon owns the root agent in ``agent/`` in the data directory and
listens on the Unix socket ``onechat.sock`` there. In the client, each
``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
.. code:: console
nix build --out-link result-service
- systemctl --user link --force "$(realpath result-service/share/systemd/user/onechat.service)"
+ systemctl --user link --force "$PWD/result-service/share/systemd/user/onechat.service"
systemctl --user edit onechat.service
In the editor, set the data directory with this drop-in. Replace
systemctl --user daemon-reload
systemctl --user enable --now onechat.service
systemctl --user status onechat.service
- ONECHAT_DIR=DATA_DIR ./result-service/bin/onechat chat
+ ONECHAT_DIR=DATA_DIR ./result-service/bin/onechat
journalctl --user -u onechat.service -f
+After a pull, update the package and unit with:
+
+.. code:: console
+
+ git pull
+ bin/service-update
+
+The script builds with the same ``result-service`` link, reloads the
+user manager, and restarts the service only if it is active. The unit
+link follows ``result-service``, so no new link is needed.
+
The service starts with the user manager at login, not at boot without a
login. To stop it, or also remove its start at login:
memory tree summarizes it with model calls, which use the quota.
When the session holds a linked device, the daemon connects at its
-start, and after a network failure it 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.
+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 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.
***********
Schedules