Add `listeningGroups` config option (per-channel, same pattern as `instantGroups`) where the bot periodically reads group messages and sends them to the Letta agent for memory updates, but force-suppresses response delivery unless the bot is explicitly mentioned. - Add `isListeningMode` field to `InboundMessage` - Add `listeningGroups` to all 5 channel configs - Map `listeningGroups` to env vars in `configToEnv()` - Rename `fixInstantGroupIds` to `fixLargeGroupIds` to also fix `listeningGroups` entries (Discord snowflake precision fix) - Build `listeningGroupIds` set and pass to bot - Tag messages as listening mode in `processGroupBatch()` when group is in listening mode and bot wasn't mentioned - In `processMessage()`: skip typing indicator, heartbeat target update, recovery error messages, and force-suppress response delivery for listening mode messages - Add `[OBSERVATION ONLY]` header to batch envelope for listening mode - Document in lettabot.example.yaml Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1.8 KiB
1.8 KiB