forge: allow prefixless firmware bot dms

This commit is contained in:
cj-vana
2026-05-15 20:10:23 -06:00
parent 98d2dc556d
commit 6b7de37630
5 changed files with 31 additions and 6 deletions

View File

@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: cj-vana <cj@depth23.online>
Date: Fri, 15 May 2026 11:44:21 -0600
Subject: [PATCH 1/2] Add companion radio firmware bot command parity
Subject: [PATCH 1/3] Add companion radio firmware bot command parity
---
.../companion_radio/BotCommandRegistry.cpp | 121 ++

View File

@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: cj-vana <cj@depth23.online>
Date: Fri, 15 May 2026 19:58:42 -0600
Subject: [PATCH 2/2] Harden firmware bot response coordination
Subject: [PATCH 2/3] Harden firmware bot response coordination
---
examples/companion_radio/BotCommands.cpp | 2 +-

View File

@@ -0,0 +1,22 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: cj-vana <cj@depth23.online>
Date: Fri, 15 May 2026 20:09:58 -0600
Subject: [PATCH 3/3] Allow prefixless firmware bot DMs
---
examples/companion_radio/BotPolicy.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/companion_radio/BotPolicy.cpp b/examples/companion_radio/BotPolicy.cpp
index 33de45f8..7d0e6029 100644
--- a/examples/companion_radio/BotPolicy.cpp
+++ b/examples/companion_radio/BotPolicy.cpp
@@ -75,7 +75,7 @@ bool isEmergency(BotChannelKind kind) {
}
bool isPrefixlessCommandAllowed(BotChannelKind kind) {
- return kind == BOT_CHANNEL_BOT || kind == BOT_CHANNEL_TESTING;
+ return kind == BOT_CHANNEL_DM || kind == BOT_CHANNEL_BOT || kind == BOT_CHANNEL_TESTING;
}
}

View File

@@ -57,6 +57,7 @@ static void test_channel_policy() {
assert(BotPolicy::classifyChannel(NULL, 0, true) == BOT_CHANNEL_DM);
assert(BotPolicy::decide(BOT_CHANNEL_DM) == BOT_POLICY_ALLOW_NORMAL);
assert(BotPolicy::isNormalAllowed(BOT_CHANNEL_DM));
assert(BotPolicy::isPrefixlessCommandAllowed(BOT_CHANNEL_DM));
assert(BotPolicy::classifyChannel("Public", 6, false) == BOT_CHANNEL_PUBLIC);
assert(BotPolicy::classifyChannel("public", 6, false) == BOT_CHANNEL_OTHER);
assert(BotPolicy::classifyChannel("#Public", 7, false) == BOT_CHANNEL_OTHER);
@@ -81,7 +82,6 @@ static void test_channel_policy() {
assert(BotPolicy::classifyChannel("#botnet", 7, false) == BOT_CHANNEL_OTHER);
assert(BotPolicy::decide(BOT_CHANNEL_OTHER) == BOT_POLICY_IGNORE);
assert(!BotPolicy::isPrefixlessCommandAllowed(BOT_CHANNEL_OTHER));
assert(!BotPolicy::isPrefixlessCommandAllowed(BOT_CHANNEL_DM));
}
static void test_bot_prefs_defaults() {
@@ -327,7 +327,8 @@ static void test_parse_command() {
assert(command.id == BOT_COMMAND_PING);
assert(parse_channel_command(BOT_CHANNEL_TESTING, "ping", &command));
assert(command.id == BOT_COMMAND_PING);
assert(!parse_channel_command(BOT_CHANNEL_DM, "ping", &command));
assert(parse_channel_command(BOT_CHANNEL_DM, "ping", &command));
assert(command.id == BOT_COMMAND_PING);
assert(!parse_channel_command(BOT_CHANNEL_PUBLIC, "ping", &command));
assert(!parse_channel_command(BOT_CHANNEL_OTHER, "ping", &command));
assert(!parse_channel_command(BOT_CHANNEL_EMERGENCY, "ping", &command));
@@ -336,7 +337,9 @@ static void test_parse_command() {
assert(FirmwareBot::parseCommand("status please", 13, &command, true));
assert(command.id == BOT_COMMAND_STATUS);
assert(strcmp(command.args, "please") == 0);
assert(!parse_channel_command(BOT_CHANNEL_DM, "status please", &command));
assert(parse_channel_command(BOT_CHANNEL_DM, "status please", &command));
assert(command.id == BOT_COMMAND_STATUS);
assert(strcmp(command.args, "please") == 0);
assert(!parse_channel_command(BOT_CHANNEL_PUBLIC, "status please", &command));
assert(!parse_channel_command(BOT_CHANNEL_BOT, "random prose", &command));
assert(!FirmwareBot::parseCommand("random prose", 12, &command, true));