Skip to content

v0.4.0

Choose a tag to compare

@espetro espetro released this 17 Sep 08:02
· 183 commits to main since this release

Highlights

  • Web UI rewrite: Preact SPA in a new ui/ workspace (Vite + daisyUI), served by the Python server from the built bundle. AI answer mode with SSE streaming (tool steps, sources, related queries), DDG-style pill search bar with Search/AI toggle, virtualized continuous-scroll results, theme switcher, pagination, ?settings=open URL state.
  • AI answers end to end: POST /answer (SSE), GET /v1/models, answer caching, oxe[ai] optional extra (aisuite with openai/anthropic).
  • Settings API: GET/PUT /settings for the [ai] config section, POST /settings/test credential check, {env.NAME} interpolation.
  • Autocomplete & suggestions: GET /ac (DDG proxy), GET /suggest (own query history, OpenSearch format).
  • Pagination end to end; dev observability via OXE_DEV=1 JSON events.
  • Typed contracts: Pydantic response models, JSON error envelope, OpenAPI export with generated TS types.
  • Dashboard: /dashboard SPA page with GET /api/stats (searches/day, cache hit rate, latency percentiles).
  • Server: server.py split into an oxe/server/ package; SPA served via a minimal static mount + catch-all with content-negotiated 404s.

License

Relicensed from MIT to Apache 2.0 (Copyright Quino Terrasa).

Full changelog: https://github.com/espetro/oxe/blob/main/CHANGELOG.md