TauriTavern/src-tauri
Darkatse 7b5ce7b517 refactor(http): classify outbound transport failures in one place
Only chat completions, embeddings and SearXNG classified transport
failures, and none logged the cause, so a report showed only reqwest's
top-level message. Other requests, from TTS and image generation to
tokenizer downloads, imports, update checks and Git, turned the same
failures into internal errors with their own text.

The classifier moves from tt-adapter-provider-http to tt-adapter-http
(upstream), and every outbound request goes through it. It logs each
failure once with its code, the sanitized endpoint and the cause chain,
without reqwest's top-level message, which carries the full URL.
Callers judge only status codes and response format. DomainError wraps
UpstreamFailure transparently, and the frontend uses one localized
message for invoke errors and chat error messages.

The Git HTTP bridge puts the failure below its io::Error payload:
io::Error::source() skips the payload and gix wraps some I/O errors
transparently, so an interrupted ls-refs body surfaced as an internal
error.
2026-11-10 01:53:15 -05:00
..
.cargo ci: audit dependency advisories weekly 2026-11-07 17:48:32 -05:00
crates refactor(http): classify outbound transport failures in one place 2026-11-10 01:53:15 -05:00
resources/tokenizers chore (Resource Compression): Compress embedded tokenizer resources to optimize application size. 2026-04-10 22:15:02 -04:00
.gitignore chore(gitignore): ignore the crate-local Cargo target 2026-10-05 19:53:32 -04:00
Cargo.lock refactor(http): classify outbound transport failures in one place 2026-11-10 01:53:15 -05:00
Cargo.toml test(perf): replay the frontend's host calls against the Rust backend 2026-10-27 20:54:31 -04:00