Files
OmniRoute/open-sse/services/sessionPool
Paijo 39a673b7d6 fix(pollinations/duckduckgo): wire session pool for fingerprint rotation (#3049)
* fix(pollinations): wire session pool + add idle pruning

PollinationsExecutor.getPool() returned null because poolConfig was
never set. Now sets DEFAULT_POOL_CONFIG in constructor so anonymous
requests get fingerprint rotation and 429 cooldown management.

Also:
- Use acquireBlocking() instead of acquire() to wait for available session
- Add startAutoPrune() for periodic idle session cleanup (5min idle timeout)
- Improve execute() error handling with proper finally block

* fix(duckduckgo-web): wire session pool for fingerprint rotation

DuckDuckGoWebExecutor had poolConfig set but never called getPool()
in execute(). Added session acquisition via acquireBlocking() and
merges fingerprint headers into fetch calls for rate limit evasion.

* fix: address PR #3049 review comments

- duckduckgo-web: fix session leak (add finally release), fix race
  condition (report status before release), remove duplicate sessionHeaders
- pollinations: fix race condition (move release to finally, report before)

* fix: address all PR #3049 review comments

- duckduckgo-web: add pool reporting on 429/500 early returns (was missing)
- duckduckgo-web: add sessionHeaders to retry fetch on 401/403
- sessionPool: add .unref() to setInterval to prevent keeping process alive

---------

Co-authored-by: oyi77 <oyi77@users.noreply.github.com>
2026-06-01 19:46:58 -03:00
..