docs: state that a blank flood_scopes list does not mirror region

A blank list still answers channel commands as ordinary global FLOOD. The web viewer text implied the reply would follow the sender's scope.
This commit is contained in:
agessaman committed 2026-09-22 16:56:08 -07:00
1 parent 9d39f953e7
commit 1e7951b3a5
2 files changed
+8 -5

No files matched your search

+1 -1
View File
@@ -79,7 +79,7 @@ translation catalog is absent.
- **`channel_keywords`** – Optional. When set (comma-separated command/keyword names), only those triggers are answered **in channels**; DMs always get all triggers. Use this to reduce channel traffic by making heavy triggers (e.g. `wx`, `satpass`, `joke`) DM-only. Leave empty or omit to allow all triggers in monitored channels. Per-command **`channels = `** (empty) in a command’s section also forces that command to be DM-only; see `config.ini.example` for examples (e.g. `[Joke_Command]`).
- **`max_response_hops`** - Default: 64 (code fallback); 7 in the shipped config templates. The bot will ignore messages that have traveled more than this number of hops. A value at or below 10 is recommended — in most meshes, anything higher is almost never an intentional message meant to trigger this bot, so lowering it keeps the bot from amplifying long flood traffic (#161).
- **`outgoing_flood_scope_override`** – Optional. Fixed regional scope for outbound channel sends when no per-message scope is passed to `send_channel_message`. When **not set** (default), replies use **`reply_scope`** from inbound TC_FLOOD correlation (auto-mirror). When **set** (e.g. `#west`), that scope is used for proactive sends (webhooks, scheduled messages, feeds) and whenever `reply_scope` is unset. It does **not** override an explicit `reply_scope` on a reply. Unscoped FLOOD uses global flood unless this override or `reply_scope` applies.
- **`flood_scopes`** – Optional. Comma-separated list of named scopes the bot will **accept and reply to**. When set, this acts as an allowlist: only TC_FLOOD messages matching one of these scopes receive a reply, and the reply is sent using the same scope as the incoming message (auto-mirror via `reply_scope`). Regular (unscoped) FLOOD messages are blocked unless `*` is included in the list. Leave empty or omit to accept all messages regardless of scope. **Auto-mirror requires correct RF correlation** (TC_FLOOD / GRP_TXT in the RF cache); if correlation fails, the bot will not use a stale ADVERT or other packet for scope and may ignore the message when `*` is not listed.
- **`flood_scopes`** – Optional. Comma-separated list of named scopes the bot will **accept and reply to**. When set, this acts as an allowlist: only TC_FLOOD messages matching one of these scopes receive a reply, and the reply is sent using the same scope as the incoming message (auto-mirror via `reply_scope`). Regular (unscoped) FLOOD messages are blocked unless `*` is included in the list. Leave empty or omit to accept all messages regardless of scope; replies then go out as ordinary global FLOOD and do not mirror the sender's region. Mirroring needs the region name listed (for example `*,#home`). The `*` entry keeps unscoped flood allowed. The bot matches the inbound transport code by HMAC against those names and cannot recover a region name from the 16-bit code alone. **Auto-mirror requires correct RF correlation** (TC_FLOOD / GRP_TXT in the RF cache); if correlation fails, the bot will not use a stale ADVERT or other packet for scope and may ignore the message when `*` is not listed.
### outgoing_flood_scope_override vs flood_scopes
+7 -4
View File
@@ -310,10 +310,13 @@ window; older days stay frozen at the value recorded then.
from or written to the radio. This is a different setting from the radio's
Default Region Scope above: this one decides what the bot sends and answers,
that one is the radio's fallback for anything the bot leaves unscoped
- *Which scopes the bot replies to*: `flood_scopes`. Either "reply whatever
the scope" (the key is left empty, which is also the default) or an
allowlist of named regions, optionally including unscoped FLOOD via the
"also reply to unscoped messages" box, which is the `*` entry
- *Which scopes the bot replies to*: `flood_scopes`. Left empty (the default),
the bot still answers channel commands, but replies go out as ordinary
global FLOOD and do not mirror the sender's region. An allowlist of named
regions enables mirroring for those names (for example `*,#home`); the
"also reply to unscoped messages" box is the `*` entry that keeps unscoped
FLOOD allowed. The bot matches inbound transport codes by HMAC against
those names and cannot recover a region name from the 16-bit code alone
- *Default outgoing scope*: `outgoing_flood_scope_override`, used for sends
that carry no scope of their own (scheduled messages, feeds, webhooks) and
for replies whose incoming scope could not be matched. Blank means global