Skip to content

fix(cli): Avoid abort listener fanout#336

Merged
dcramer merged 1 commit into
mainfrom
fix/abort-listener-fanout
May 20, 2026
Merged

fix(cli): Avoid abort listener fanout#336
dcramer merged 1 commit into
mainfrom
fix/abort-listener-fanout

Conversation

@dcramer
Copy link
Copy Markdown
Member

@dcramer dcramer commented May 20, 2026

Warden now shares fail-fast and circuit-breaker abort listeners across composed skill tasks instead of attaching one listener per task to the same shared signal. Large runs with many matched triggers no longer trip Node's MaxListenersExceededWarning while preserving abort propagation for SIGINT, fail-fast, and provider circuit breaker stops.

Abort Composition

Task-specific abort controllers are still composed with shared run-level abort sources, but shared sources are listened to once and then fan out internally. Reused task abort controllers are cached so repeated references do not add duplicate listeners.

Regression Coverage

The task runner tests now assert listener counts stay bounded for 12 composed tasks and that abort propagation still reaches every composed task controller.

Share abort listeners across composed skill tasks so large trigger sets do not attach one listener per task to the same fail-fast or circuit-breaker signal.

Co-Authored-By: GPT-5 <[email protected]>
@dcramer dcramer force-pushed the fix/abort-listener-fanout branch from b9987e6 to 67a959e Compare May 20, 2026 17:38
@dcramer dcramer marked this pull request as ready for review May 20, 2026 17:39
@dcramer dcramer merged commit 527310a into main May 20, 2026
19 checks passed
@dcramer dcramer deleted the fix/abort-listener-fanout branch May 20, 2026 17:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant