From 4c99b877e39fd11bca03224854f9850bda81de0d Mon Sep 17 00:00:00 2001 From: "glm-5.3-flash" Date: Sat, 29 Aug 2026 09:43:17 +0000 Subject: [PATCH] docs(reviews): consumer-findings ledger for alkhttp-as-consumer findings (CF-001 write-failure retryability) --- docs/reviews/consumer-findings-ledger.md | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 docs/reviews/consumer-findings-ledger.md diff --git a/docs/reviews/consumer-findings-ledger.md b/docs/reviews/consumer-findings-ledger.md new file mode 100644 index 0000000..dca8b61 --- /dev/null +++ b/docs/reviews/consumer-findings-ledger.md @@ -0,0 +1,40 @@ +# Consumer findings ledger — alkhttp consuming alkcall + +Findings from writing the first real consumer (alkhttp) against alkcall. +alkcall is deliberately minimal; expect missing features and edge-case +bugs to surface here first. Extract items into alkcall tasks/reviews as +the project sees fit. + +Format: date | found-in (alkhttp context) | severity | status. + +--- + +## Open + +### CF-001 — `call_single_stream` write-failure maps to non-retryable `INTERNAL` (2026-08-29) + +- **Found in:** alkhttp `from_wss` drop-monitor race tests (WS-02/CON-02, + review-001-ws-eof-signal). When the transport mux dies mid-call, the + write path fails fast and alkcall's `call_single_stream` write-failure + mapping produces a non-retryable + `INTERNAL: failed to write request frame` — even though the call never + reached the producer and a reconnect/retry would be safe. +- **Impact:** consumers that drop connections under load (WS EOF, network + flaps) get non-retryable errors for in-flight calls that are provably + not processed. Callers must either tolerate-or-discriminate two + envelope shapes for the same transport-death race, or miss retry + opportunities. +- **Suggested direction:** classify write failures that occur before any + response frame could arrive as retryable (`CONNECTION_CLOSED` or + equivalent) — or expose the distinction so consumers can decide. +- **alkhttp side:** the race test tolerates both outcomes for now + (asserts retryable only when the call is provably in-flight). If/when + alkcall fixes the mapping, alkhttp's ws-eof-signal test should tighten + back to retryable-only. +- **Status:** open — no alkcall change made. + +--- + +## Resolved + +(empty) \ No newline at end of file