docs(reviews): consumer-findings ledger for alkhttp-as-consumer findings (CF-001 write-failure retryability)

This commit is contained in:
glm-5.3-flash committed 2026-08-29 09:43:17 +00:00
1 parent 570fea76f4
commit 4c99b877e3
1 file changed
+40
+40
View File
@@ -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)