Added
- Bounded list pagination.
GET /sessionsandGET /webhooks(and the matching agent tools) now acceptlimit(1–1000, default 1000) andoffsetquery parameters, so large deployments can page through results instead of receiving an unbounded list. (#496) - Concurrent-session cap. New
MAX_CONCURRENT_SESSIONSenv (default0= unlimited) caps how many WhatsApp engines may run or initialize at once, protecting memory/Chromium-constrained hosts. (#496) - Configurable Redis connect timeout. New
REDIS_CONNECT_TIMEOUT_MS(default5000) bounds how long the queue and cache connections wait when reaching Redis. (#496)
Fixed
- Webhook delivery during a Redis outage. The webhook queue producer now fails fast instead of buffering indefinitely when Redis is unreachable, falling back to direct (signed, idempotent) delivery; the queue Worker keeps its offline queue so it still tolerates brief reconnects. (#496)
- Accurate session stats at scale.
GET /sessions/statsaggregates status counts in the database, so totals stay correct on deployments with more sessions than the list cap. (#496) - Plugin storage key safety & portability. Plugin storage keys are validated and encoded to filesystem-safe filenames (JID-style keys now work on Windows), with backward-compatible reads/deletes of pre-existing files. (#496)
Changed
- Refreshed project documentation, roadmap, and testing strategy against the current baseline. (#496)