@@ -553,12 +553,7 @@ export function createChannelProgressDraftGate(params: {
553553 onStart : ( ) => void | Promise < void > ;
554554 /** Delay before first work event starts a draft; second work event starts immediately. */
555555 initialDelayMs ?: number ;
556- /**
557- * Observes a timer-fired startup rejection. The explicit start/noteWork/startNow
558- * paths re-throw to their awaiting caller, but the timer path has no awaiter. When a
559- * caller does not supply this, the gate logs a warning at the helper boundary so the
560- * failure is never silently dropped regardless of which channel built the gate.
561- */
556+ /** Reports timer-fired startup failures, which have no awaiting caller. */
562557 onStartError ?: ( error : unknown ) => void ;
563558 /** Timer implementation, injectable for tests. */
564559 setTimeoutFn ?: typeof setTimeout ;
@@ -568,10 +563,7 @@ export function createChannelProgressDraftGate(params: {
568563 const initialDelayMs = params . initialDelayMs ?? DEFAULT_PROGRESS_DRAFT_INITIAL_DELAY_MS ;
569564 const setTimeoutFn = params . setTimeoutFn ?? setTimeout ;
570565 const clearTimeoutFn = params . clearTimeoutFn ?? clearTimeout ;
571- // Boundary default: callers that do not pass onStartError still get an observable
572- // warning for a swallowed timer-fired start failure instead of a silent drop. Use a
573- // lightweight console.warn (matching sibling typing.ts) rather than a structured
574- // logger import, so this SDK-exposed module does not widen its static import surface.
566+ // Timer starts have no awaiting caller, so preserve observability at this SDK boundary.
575567 const reportStartError =
576568 params . onStartError ??
577569 ( ( error : unknown ) => {
@@ -628,8 +620,7 @@ export function createChannelProgressDraftGate(params: {
628620 }
629621 timer = setTimeoutFn ( ( ) => {
630622 timer = undefined ;
631- // Timer start has no awaiter; route the rejection to the (defaulted) reporter so
632- // it is observed rather than silently dropped.
623+ // Explicit starts rethrow to callers; timer starts must report at the boundary.
633624 void start ( ) . catch ( ( error : unknown ) => {
634625 reportStartError ( error ) ;
635626 } ) ;
0 commit comments