openpencil/apps
Kayshen-X f61ca2072b fix(ai): unwrap fetch error.cause for actionable network failures
Custom OpenAI-compatible providers surfaced Node's opaque
`TypeError: fetch failed` whenever the upstream HTTP call failed
(#121) — DNS, TLS handshake, connection refused, timeout — all
collapsed to the same useless string. The actual reason was already
on `error.cause` as a SystemError but never reached the user.

Add `formatFetchError()` that walks the cause chain (including
AggregateError emitted when undici tries multiple A records and each
attempt fails) and prefixes the SystemError code so users see
`ENOTFOUND: getaddrinfo ENOTFOUND api.foo.com` or
`ECONNREFUSED: connect ECONNREFUSED 127.0.0.1:443` instead of
`fetch failed`. Wire it into the model-list proxy (most common
trigger from the AI Settings dialog) and the builtin chat stream.

Closes #121
2026-04-26 19:20:32 +08:00
..
cli docs: drop op export from CLI docs and clarify pen-mcp usage 2026-04-26 19:20:14 +08:00
desktop docs: drop op export from CLI docs and clarify pen-mcp usage 2026-04-26 19:20:14 +08:00
web fix(ai): unwrap fetch error.cause for actionable network failures 2026-04-26 19:20:32 +08:00