test+docs: prepublish hardening from review (failure paths, doc hygiene)
Coverage: - CF-002: demux skipped-bytes budget teardown test (268 MiB skip in-memory; a budgetless demux wedges in the 17th skip, the real one tears down) and the skip-hits-EOF arm (truncated oversized payload ends the loop). - CF-001: retryable CONNECTION_CLOSED pinned for subscribe write failures in both stream modes and single-stream publish request-frame failures; non-retryable INTERNAL pinned for mid-publish failures in both modes (deterministic FailOnFlushN write half). - Gateway: invoke_sink with with_deadline(None) completes a slow sink. Docs: - Fix broken intra-doc link on lib.rs's feature-gated gateway mention (rustdoc warned on default-feature builds). - Re-point 40 src/ references from the old alknet mono-repo ADR numbering (049/050/052/065/070/074/092) to this crate's numbering (021/011/034/007/008/009/005); drop into_sub_streams references removed by ADR-035. Verification: 565 default / 582 all-features (8 new), clippy -D warnings on default/gateway/all-features/wasm32, fmt clean, rustdoc warning-free on default and all-features, publish dry-run clean. Consumer-facing API continuity 0.1.1 -> 0.2.0 verified by compiling an API-surface probe against both versions.
This commit is contained in:
1 parent
d5fd548b8d
commit
ae372c0c7e
12 files changed
+418
-44
No files matched your search
@@ -382,7 +382,7 @@ impl Dispatcher {
|
||||
connection: Arc<CallConnection>,
|
||||
stream: crate::core::types::BiStream,
|
||||
) {
|
||||
// `stream` is a `BiStream` (ADR-092) — `AsyncRead + AsyncWrite + Send
|
||||
// `stream` is a `BiStream` (ADR-009) — `AsyncRead + AsyncWrite + Send
|
||||
// + Unpin`. Split into the read and write halves the call protocol's
|
||||
// frame reader/writer consume. The split is the stdlib idiom; no
|
||||
// per-handler wrapper.
|
||||
@@ -441,7 +441,7 @@ impl Dispatcher {
|
||||
/// for `Ok`, `call.error` for `Err`). On natural stream end (the stream
|
||||
/// returned `None` without the last item being an `Err`), write a
|
||||
/// `call.completed` frame. An `Err` envelope is terminal — the stream
|
||||
/// ends after it and we do NOT write `call.completed` (ADR-049 §6).
|
||||
/// ends after it and we do NOT write `call.completed` (ADR-021 §6).
|
||||
///
|
||||
/// If a frame write fails the pump stops early; the stream is dropped on
|
||||
/// return, releasing the handler's resources via `Drop` (ADR-016). A
|
||||
@@ -1477,7 +1477,7 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
// --- streaming dispatch branch (ADR-049 §6) ---------------------------
|
||||
// --- streaming dispatch branch (ADR-021 §6) ---------------------------
|
||||
|
||||
fn subscription_spec(name: &str, acl: AccessControl) -> OperationSpec {
|
||||
OperationSpec::new(
|
||||
|
||||
Reference in new issue
Block a user