Commit Graph

6 Commits

Author SHA1 Message Date
cj-vana
0010842ac2 forge: add patch 10 — widen coordinator delays ~25%
Bumps base/jitter/hop_step/cap/TTL ~25% for more reliable token
suppression at the multi-hop edge. Bumps BOT_PREFS_VERSION 4 -> 5 to
force re-default of hop_step_ms on existing bots. Test bumped
many_hops.path_hash_count 10 -> 20 so the cap-check still trips with
the new 15000ms cap.
2026-05-16 20:31:20 -06:00
cj-vana
b7cc1dc0ca forge: add patch 9 — widen hop-step + drop "ack " from test response
- BOT_HOP_STEP_MILLIS_DEFAULT 1500 -> 2500
- BOT_HOP_BIAS_MAX_MILLIS 8000 -> 12000
- BOT_RESPONSE_PENDING_TTL_MILLIS 45000 -> 60000
- BOT_PREFS_VERSION 3 -> 4 (forces re-default of hop_step_ms on existing
  bots that saved the old 1500 value)
- writeAckResponse + executeTest: drop the literal "ack " prefix so test
  responses now start with "@[sender] ..."

Field test showed two bots with token-matching `[1865]` responses both
firing because the far bot scheduled its reply before the near bot's
reply could propagate back through the mesh. New hop step gives ~5-8 s
of margin at the 4-hop boundary.
2026-05-16 20:05:31 -06:00
cj-vana
064904e596 forge: add patch 8 — drop [MCBOT] advert suffix
The auto-discovery of known bots via the suffix only fed DM suppression,
which is moot since DMs are encrypted to one recipient. Channel
coordination now lands via patch 7's request token mechanism, which
doesn't need the suffix. Removes the marker, writeBotAdvertName,
isBotAdvertName, autoLearnKnownBotAdvert, and getAdvertNodeName; reverts
all four advert sites to use _prefs.node_name directly. Removes the
test_bot_advert_marker host test. Manual 'bot known add' from CLI still
works for explicit DM suppression.
2026-05-16 19:55:44 -06:00
cj-vana
c13e5474dd forge: add patch 7 — request token prefix for inter-bot suppression
Bots now prefix every response with a 4-hex request token derived from
the request fingerprint. Peers parsing the prefix can suppress their own
pending response for the same request, fixing duplicate replies on #bot
even for commands whose response text varies per bot (ack/test/hello/
status/roll/dice/path/trace/stats/time/lora/id/neighbors).

Patches 0001-0006 re-exported (cosmetic series-count bump 1/6 -> 1/7).
2026-05-16 19:33:16 -06:00
cj-vana
852fcc4bff forge: patch 6 fix — apply auto-overwrite default after loadPrefs
Move the AUTO_ADD_OVERWRITE_OLDEST assignment to after _store->loadPrefs()
so existing bots with autoadd_config=0 saved on flash get the bit set on
every boot. Previously the assignment was in the constructor (before
load), so loadPrefs() would overwrite our default with the persisted
zero, meaning the fix only took effect on factory-fresh prefs.
2026-05-16 19:07:27 -06:00
cj-vana
707f492a05 forge: add patch 6 — bot advert marker + auto-overwrite
- All self-advert paths (CMD_SEND_SELF_ADVERT, CMD_EXPORT_CONTACT,
  MyMesh::advert()) now use bot advert name with [MCBOT] suffix when
  bot_prefs.enabled, via new getAdvertNodeName() helper
- Initial flood advert at 120s after boot instead of 24h, so other
  nodes see [MCBOT] in the contact name shortly after the bot boots
- AUTO_ADD_OVERWRITE_OLDEST set by default on CMESH_BOT builds, so
  bots don't silently stop accepting contacts when the table fills

Patches 0001-0005 re-exported (cosmetic series-count bump 1/5 -> 1/6).
2026-05-16 18:59:03 -06:00