Five community fixes by @tashdroid, hardened and merged: local AI servers stop being routed through your proxy, the desktop app remembers its proxy settings, and Analytics finally tells your custom endpoints apart.
Fixed
- Local and LAN destinations bypass the outbound proxy (#963, fixes #951). Requests to localhost, 127.0.0.0/8, ::1, and private/LAN addresses (llama.cpp, Ollama, LM Studio) no longer ride the SOCKS/HTTP proxy — Tor setups stop rejecting them as raw IP literals. If you deliberately proxy local destinations (e.g. an
ssh -Dtunnel), setFREEAPI_PROXY_LOCAL_DESTINATIONS=trueto keep the old behavior. - Desktop proxy settings survive a restart (#962, fixes #949). The desktop app now rehydrates saved outbound proxy settings from the database at startup, before any network traffic, with tests pinning the boot sequence.
- Custom endpoints get their own identity everywhere in Analytics (#958, fixes #889). Provider breakdowns, recent errors, per-model stats, and the errors-by-provider chart now show each OpenAI-compatible endpoint by host (plus path when two share a host) instead of one merged "custom" bucket, and filtering by an endpoint returns exactly its traffic.
- Category charts show every provider label (#959, fixes #890). Provider and client charts no longer drop axis labels; label rotation adapts to how many categories there are, and the vertical errors-by-category chart is covered too.
- Release artifacts match the tag (#961, for #948). Desktop version aligned to 0.8.5, and tagged builds now fail fast if the packaged version doesn't match the tag.
Internal
- Per-model analytics no longer multiply counts when several relays register the same model (#958).
- The desktop release workflow verifies tag/version agreement before building, and installs with
npm ciso the lockfile check is meaningful (#961). - Client tests gain a real chart-rendering test (jsdom pinned to a Node 20-compatible major) (#959).