Space multi-line command replies MESH_MULTI_SEND_DELAY_MS apart (v0.21.5)
CI / build + unit (pull_request) Failing after 21s
CI / build + unit (pull_request) Failing after 21s
Production incident: '#rss get lublin' returned an array of lines and CommandService sent each one back-to-back within the same second — on the real mesh 3 of 4 items were dropped in RF (the owner saw only the last one). CommandService.onRx now waits MESH_MULTI_SEND_DELAY_MS (new env, default 5000 = 5 s, read at construction like the other timing knobs) between consecutive lines of an array reply — no delay before the first line. The delay sits in the shared per-line loop, so both the respond() path and the legacy sendText fallback are covered by one await.
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
# Changelog
|
||||
|
||||
## v0.21.5 — 2026-09-26 10:26
|
||||
|
||||
- Multi-line command replies are now spaced apart: `CommandService.onRx` waits `MESH_MULTI_SEND_DELAY_MS` (new env, default **5000** = 5 s, read at construction) between consecutive lines of an array reply — no delay before the first line. Production incident: `#rss get lublin` sent its items back-to-back within the same second and 3 of 4 were dropped in RF (the owner saw only the last one); each packet now gets time to land.
|
||||
- Tests: 172 → 173 — a 3-line reply with an overridden short delay asserts all lines are sent, the first goes out immediately (no pre-delay), and each subsequent line lands ≥ the configured gap after the previous one; existing specs pin `MESH_MULTI_SEND_DELAY_MS=0` in `beforeEach` so they stay fast.
|
||||
|
||||
## v0.21.4 — 2026-09-26 09:51
|
||||
|
||||
- `LLM_TIMEOUT_MS` default raised from 60000 (60 s) to **180000** (3 min): production incident — `#rss get lublin` at 9:41 AM failed with "The operation was aborted due to timeout" because the local OpenAI-compatible server (qwen3.8-27b, uncontrollable reasoning tokens) was slow/busy on that call; the same endpoint answers a trivial prompt in ~1 s when idle, so this is latency variance, not a dead endpoint. Still env-overridable (`LLM_TIMEOUT_MS`), only the fallback changed.
|
||||
|
||||
Reference in New Issue
Block a user