Skip to content

feat(net): Timeout resilience layer (Slice 1, PR 2) #77

Description

@NotAProfDev

Slice 1 PR 2 of the net-http resilience layers (spec: docs/superpowers/specs/2026-07-04-net-http-timeout-layer-design.md; ADR-0031 §1). Builds on the RateLimit layer (#76).

  • Timeout<S, T> + TimeoutLayer<T> (impl net-api::Layer): bounds the send (inner call -> response), not the pacing-permit wait — a response-future race against Timer::sleep, HttpError::Timeout on the deadline (inner future dropped)
  • RequestTimeout(Duration) per-request override extension; absent -> layer default (not fail-closed — the global deadline still applies)
  • Body-transparent (Response<B> untouched); a streaming-body TimeoutBody is deferred (inert on IBKR's buffered traffic). No new dependency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions