docs: bridge-wide media-send throttle gedocumenteerd (wat/waarom/waar)

AGENTS.md + README: staged-ghost-race mitigatie — bridge serialiseert alle
media-sends (MEDIA_SEND_DELAY_MS, 500), bot pauzeert niet. Verwijst naar
vault Whatsapp rest-api.md + Dienst media bezorgtest.md.
This commit is contained in:
Eddy de Vink 2026-09-26 22:52:13 +02:00
commit 214893205b
2 changed files with 16 additions and 8 deletions

View file

@ -181,11 +181,16 @@ Sommige mediabestand-verzendingen keren `success` + message-ID terug maar worden
- **Pruning** na `ACK_PRUNED_AFTER_MS` (30 min); de check-loop is **activity-driven** (draait alleen bij openstaande tracking, geen polling in rust).
- Vereiste aan de bridge: `message_ack` staat sinds 2026-09-24 in wwebjs-api `.env` **niet** meer in `DISABLED_CALLBACKS`; container is daarvoor herstart.
- Env-vars: `ACK_STUCK_TIMEOUT_MS` (default 300000), `ACK_PRUNED_AFTER_MS` (default 1800000), `ACK_CHECK_INTERVAL_MS` (default 30000).
- **Media-pacing zit bridge-breed** (wwebjs-api, niet de bot): de bridge serialiseert
media-sends en wacht `MEDIA_SEND_DELAY_MS` (bridge-.env) tussen twee sends — de
wwebjs-media-pipeline is EEN chromium-tab; opeenvolgende media-sends (van wélke client
ook: dienst-bot, EBS, rss-forward) overlappen anders → staged-ghost-race. De bot zelf
pauzeert niet meer.
- **Media-pacing zit bridge-breed** (wwebjs-api, niet de bot): bij een staged-ghost-race
(2026-09-26, dienst 5219 blz 2) overlappen opeenvolgende media-sends in de ene
chromium-tab en verliest de 2e (bestaat in store + ack2 maar wordt nooit verzonden).
De bridge serialiseert nu álle media-sends over alle sessies/clients door één keten
(`serializeMediaSend` in `wwebjs-api-build-p25/src/utils.js`) en wacht
**`MEDIA_SEND_DELAY_MS`** (bridge-`.env`: `/home/aiaiaiaiagent/wwebjs-api/.env`, nu `500`)
ná elke media-send. De bot zelf pauzeert **niet**. Config/code/waarom volledig
gedocumenteerd in vault [[Whatsapp rest-api]] ("Bridge-wide media-send throttle") en
[[Dienst media bezorgtest]] (RCA 2026-09-26). Tijdelijke mitigatie — permanente fix
(fork: send óf echt transmetteren óf zichtbaar falen) staat nog open.
Logregels: `[ack] track <id> (<bestand> → <chat>)`, `[ack] delivered ack=<n> <id>`, `[ack] pruned <n> stale entries`.

View file

@ -191,9 +191,12 @@ sessie — zie AGENTS.md). De bot detecteert dit via `message_ack`-events en waa
| `ACK_PRUNED_AFTER_MS` | Stale tracking opruimen | `1800000` (30 min) |
| `ACK_CHECK_INTERVAL_MS` | Checkinterval (alleen actief bij pending) | `30000` |
> **Media-pacing:** zit bridge-breed (wwebjs-api), niet in de bot — zie AGENTS.md. De bot
> pauzeert niet tussen media-sends; de bridge serialiseert ze met `MEDIA_SEND_DELAY_MS`
> (bridge `.env`).
> **🛡️ Media-pacing zit bridge-breed (2026-09-26), niet in de bot.** Staged-ghost-race:
> de wwebjs-media-pipeline is één tab; een direct-opvolgende media-send (van elke client)
> overlapt en de 2e verliest (in store + ack2 maar nooit verzonden). De bridge serialiseert
> nu alle media-sends over alle sessies en wacht `MEDIA_SEND_DELAY_MS` (bridge `.env`, 500)
> ertussen. De bot pauzeert niet. Details/config/locatie: zie AGENTS.md en vault "Whatsapp
> rest-api.md". Tijdelijke mitigatie; permanente fix (fork) staat open.
Opvallende logregels: `[ack] track …`, `[ack] delivered ack=…`, `[ack] pruned …`.