From ee2330f727c6d5f6341527e4c57880d5ced66ac1 Mon Sep 17 00:00:00 2001 From: Dwiki Riyadi Date: Mon, 12 Oct 2026 12:59:04 +0700 Subject: [PATCH] docs: sync the Guide with the Dart S3 network configuration findings Kotlin's S3 decisions carry over, ErrorBodyReader reads a decoded map or a JSON string, Retry-After seconds are capped for the web, and the sinew_network -> sinew_models edge. Co-Authored-By: Claude Opus 5.5 --- .../development/guide/02-packages/06-network.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/internal/development/guide/02-packages/06-network.mdx b/docs/internal/development/guide/02-packages/06-network.mdx index 94780cc..370a8ef 100644 --- a/docs/internal/development/guide/02-packages/06-network.mdx +++ b/docs/internal/development/guide/02-packages/06-network.mdx @@ -834,4 +834,13 @@ The connection fails during the TLS handshake if the server's chain doesn't lead ::: +:::tip[Settled during S3 (2026-10-12)] + +- **Kotlin S3's decisions carry over** (see the base note): `SinewConfig` fails fast, the default reader's rules, `HttpStatusError` is internal (in `src/`, not exported), `Retry-After` reads seconds or IMF-fixdate only, and the token source ends a rejected session itself. +- **`ErrorBodyReader.read(int status, Object? body)`**: Dio has usually decoded JSON into a `Map`, so the standard reader takes a `Map` or a JSON `String`. `ErrorBodyReader.standard` is the default; `ErrorBodyReader.from((status, body) => …)` wraps a function. +- **`Retry-After` seconds are capped at 10 digits.** On the web, Dart integers are doubles, so a huge value wouldn't overflow to `null` as it does on the VM; a mutation run in Chrome showed the difference. +- **`sinew_network -> sinew_models` is an allowed edge**, as for `sinew_paging` and `sinew_riverpod`: Dart has no transitive re-export like Kotlin's `api()`, and the package uses `SinewException`, `Result` and `Envelope` directly. + +::: +