Просмотр исходного кода

Correct stale docs: no resume cursor, no home-channel fallback

Two README claims had outlived their truth:

- 'Resume cursor support' - protocol v1 reserves resume_cursor and the
  adapter carries no such state; reconnects rely on duplicate-event
  suppression, and events missed during downtime are simply gone.
- 'First joined room' as the CHATTO_HOME_CHANNEL default (env table,
  Home Channel section, after-install.md step 2 and the plugin.yaml
  wizard prompt) - nothing implements that fallback. Unset means
  context-less cron/notification deliveries have no Chatto target and
  are not sent.
Paul Klumpp 1 неделя назад
Родитель
Сommit
287fc485d6
3 измененных файлов с 7 добавлено и 6 удалено
  1. 3 3
      README.md
  2. 3 2
      after-install.md
  3. 1 1
      plugin.yaml

+ 3 - 3
README.md

@@ -162,7 +162,7 @@ gateway:
 | `CHATTO_LOGIN` | Yes* | — | Chatto username (login) |
 | `CHATTO_LOGIN` | Yes* | — | Chatto username (login) |
 | `CHATTO_PASSWORD` | Yes* | — | Chatto password |
 | `CHATTO_PASSWORD` | Yes* | — | Chatto password |
 | `CHATTO_TOKEN` | No | — | Existing bearer token — alternative to login/password |
 | `CHATTO_TOKEN` | No | — | Existing bearer token — alternative to login/password |
-| `CHATTO_HOME_CHANNEL` | No | First joined room | Default delivery target for cron/notification output when there is no inbound conversation context to reply into. Not exempt from the mention lists. |
+| `CHATTO_HOME_CHANNEL` | No | _(none)_ | Default delivery target for cron/notification output when there is no inbound conversation context to reply into. Without it, context-less deliveries have no Chatto target and are not sent. Not exempt from the mention lists. |
 | `CHATTO_ALLOWED_USERS` | No | _(deny all)_ | Comma-separated Chatto logins (or user IDs) allowed to talk to the agent. Exact match, case-sensitive. |
 | `CHATTO_ALLOWED_USERS` | No | _(deny all)_ | Comma-separated Chatto logins (or user IDs) allowed to talk to the agent. Exact match, case-sensitive. |
 | `CHATTO_ALLOW_ALL_USERS` | No | `false` | Allow any Chatto user to talk to the agent (`true`/`false`) |
 | `CHATTO_ALLOW_ALL_USERS` | No | `false` | Allow any Chatto user to talk to the agent (`true`/`false`) |
 | `CHATTO_REQUIRE_MENTION_ROOMS` | No | _(silent everywhere)_ | Comma-separated room IDs where Hermes answers only when addressed (`@name`, `@all`, `@here`). A room on neither mention list stays silent. |
 | `CHATTO_REQUIRE_MENTION_ROOMS` | No | _(silent everywhere)_ | Comma-separated room IDs where Hermes answers only when addressed (`@name`, `@all`, `@here`). A room on neither mention list stays silent. |
@@ -327,7 +327,7 @@ The home channel is the default outbound target for proactive messages — cron
 - `CHATTO_HOME_CHANNEL` env var (room ID)
 - `CHATTO_HOME_CHANNEL` env var (room ID)
 - `config.yaml` → `gateway.platforms.chatto.extra.home_channel`
 - `config.yaml` → `gateway.platforms.chatto.extra.home_channel`
 
 
-If unset, the first joined room is used as the default home channel. The home channel follows the same participation rules as any room: a silent home channel still receives cron/notification posts, but the bot converses there only if it is listed in one of the mention lists too.
+Without a set home channel, context-less cron/notification deliveries have no Chatto target and are not sent — set one if you plan to use Hermes' proactive output. The home channel follows the same participation rules as any room: a silent home channel still receives cron/notification posts, but the bot converses there only if it is listed in one of the mention lists too.
 
 
 ### Managing Rooms over DM
 ### Managing Rooms over DM
 
 
@@ -438,7 +438,7 @@ grep -i "chatto\|websocket\|realtime" ~/.hermes/logs/gateway.log | tail -30
 
 
 - **Self-hosted friendly**: Works with any self-hosted Chatto instance. No cloud account or subscription required.
 - **Self-hosted friendly**: Works with any self-hosted Chatto instance. No cloud account or subscription required.
 - **Minimal dependencies**: Only requires `chattolib[realtime]>=0.4.20.post1`, which is vendored — nothing to install.
 - **Minimal dependencies**: Only requires `chattolib[realtime]>=0.4.20.post1`, which is vendored — nothing to install.
-- **Resume cursor support**: On reconnect, the adapter resumes from the last event cursor, so no messages are lost or replayed during transient disconnects.
+- **No message backfill**: Events missed while the gateway is down are gone — Chatto keeps no replay for the bot. Redelivered events after a reconnect are recognised and processed only once; anything genuinely new starts from the moment of reconnection.
 
 
 ## License
 ## License
 
 

+ 3 - 2
after-install.md

@@ -38,8 +38,9 @@ can live in either file. Environment variables take precedence over
    conversation context to reply into — the default outbound target, nothing
    conversation context to reply into — the default outbound target, nothing
    more. It follows the same participation rules as any room: a silent room
    more. It follows the same participation rules as any room: a silent room
    stays quiet, so list it in one of the mention room lists (see step 5) too
    stays quiet, so list it in one of the mention room lists (see step 5) too
-   if the bot should also converse in it. If unset (the usual case — the
-   installer only asks when you enter one), the first joined room is used:
+   if the bot should also converse in it. If unset, context-less deliveries
+   have no Chatto target and are not sent — set one if you plan to use
+   Hermes' proactive output:
 
 
    ```
    ```
    CHATTO_HOME_CHANNEL=ROOM_ID_HERE
    CHATTO_HOME_CHANNEL=ROOM_ID_HERE

+ 1 - 1
plugin.yaml

@@ -29,7 +29,7 @@ optional_env:
     prompt: "Existing bearer token (or empty)"
     prompt: "Existing bearer token (or empty)"
     password: true
     password: true
   - name: CHATTO_HOME_CHANNEL
   - name: CHATTO_HOME_CHANNEL
-    description: "Room ID for cron / notification delivery (defaults to the first joined room)"
+    description: "Room ID for cron / notification delivery (default: none — context-less deliveries are not sent without it)"
     prompt: "Home room ID (or empty)"
     prompt: "Home room ID (or empty)"
     password: false
     password: false
   # Asked before CHATTO_ALLOWED_USERS: a "yes" here makes the user list moot,
   # Asked before CHATTO_ALLOWED_USERS: a "yes" here makes the user list moot,