v0.31.0 — friendly DeepSeek 5xx + full i18n sweep
Headline
A Mac user reported a DeepSeek 503 day where Reasonix showed a wall of raw DeepSeek 503: <html>... and they couldn't tell if our agent had crashed or the upstream API was down. Two threads of work fell out of that single bug:
-
Friendly outage notice with reachability probe — when
/chat/completionsreturns 5xx (after retry.ts has already retried 4× with backoff),formatLoopErrornow spawns a 1.5s/user/balanceprobe and renders one of three messages:- no probe → generic outage notice
- reachable → "DS main API up but /chat is failing — their problem"
- unreachable → "DS or your network is down — check network"
All three say "this is a DeepSeek-side problem, not Reasonix" and link https://status.deepseek.com.
-
Full i18n sweep — ~150 hardcoded English strings across 8 files moved into namespaced i18n keys with zh-CN translations.
loop.tsyields, hook outcome formatter, force-summary fallbacks, App.tsx slash output, slash handlers, dashboard plan idle pill — all properly localized. The setup wizard now opens with a language picker defaulting todetectSystemLanguage(), so a Chinese user with a misreporting locale doesn't have to discover/languageafter finishing setup in English.
The other half is dashboard parity — picker modals (sessions / checkpoint / MCP marketplace), viewer modal for /replay, plus cockpit / budget gauge / model picker / loop control panel / /pro one-shot — closing buckets B–E of the #369 web-parity tracker.
Install
npm install -g reasonix@0.31.0Full changelog
See CHANGELOG.md for the full breakdown across features / i18n / bug fixes / docs.