You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#167's acceptance criterion "flush succeeds from a handler" currently holds by composition of per-layer pins (sentry, metrics, cachecontrol, gzip each pinned individually); nothing pins the composed property. A wrapper inserted into rest.New tomorrow without FlushError/Flusher/Unwrap breaks handler flushes in production with every existing test green.
One internal test assembling the New-shaped stack (sentry → metrics → auth → sentryLabel → gzip → cacheControl → flushing probe handler) over a real server: flush succeeds, prefix streams.
Error-path fakes: a delegate whose FlushError returns a genuine I/O error (propagated verbatim through gzip's FlushError), and a write-failing base under gz.Flush() itself (early return, sticky gzip.Writer error, Close-path log backstop).
Surfaced by the wave-1 review (#167, PR #171).
#167's acceptance criterion "flush succeeds from a handler" currently holds by composition of per-layer pins (sentry, metrics, cachecontrol, gzip each pinned individually); nothing pins the composed property. A wrapper inserted into
rest.Newtomorrow without FlushError/Flusher/Unwrap breaks handler flushes in production with every existing test green.New-shaped stack (sentry → metrics → auth → sentryLabel → gzip → cacheControl → flushing probe handler) over a real server: flush succeeds, prefix streams.FlushError() erroror doesn't intercept flush at all — never bareFlush(), whose errors the controller's Flusher branch silently swallows.FlushErrorreturns a genuine I/O error (propagated verbatim through gzip's FlushError), and a write-failing base undergz.Flush()itself (early return, sticky gzip.Writer error, Close-path log backstop).🤖 Generated with Claude Code