openpencil/apps/web/server/api/ai
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
..
agent.ts V0.7.3 (#111) 2026-04-15 22:19:12 +08:00
chat.ts fix(ai): unwrap fetch error.cause for actionable network failures 2026-04-26 19:20:32 +08:00
connect-acp.ts V0.7.1 (#102) 2026-04-13 21:30:23 +08:00
connect-agent.ts V0.7.2-bugfix (#109) 2026-04-14 21:42:56 +08:00
generate.ts V0.7.2-bugfix (#109) 2026-04-14 21:42:56 +08:00
icon.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
image-generate.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
image-search.ts fix(ai): swallow image-search network failures into the existing fallback 2026-04-26 07:30:00 +08:00
image-service-test.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
install-agent.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
mcp-install.ts V0.7.3 (#111) 2026-04-15 22:19:12 +08:00
models.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
provider-models.ts fix(ai): unwrap fetch error.cause for actionable network failures 2026-04-26 19:20:32 +08:00
provider-url.ts fix(ai): unwrap fetch error.cause for actionable network failures 2026-04-26 19:20:32 +08:00
validate.ts V0.7.2-bugfix (#109) 2026-04-14 21:42:56 +08:00