Skip to content

Releases: xinyao27/jevonian

v0.7.2

Choose a tag to compare

@xinyao27 xinyao27 released this 09 Oct 11:06

What's changed

Added

  • Time-window schedules. A task can run different models at different times of day, for example cheaper models during an off-peak discount. The config holds a time zone and named daily windows; a task lists its own models for a window. The first window that contains the current time wins, and a window whose end is before its start runs past midnight. Time zone data is embedded, so a Windows host needs no system copy.
  • Schedule card on Models & Routing. Shows which window is active, when it changes next, and which models each task runs under each window. Edit schedule sets the time zone and the windows; Customize on a task has Models by time. The card refreshes every minute and warns about overlap or a window an earlier one hides completely. Windows reorder by drag or with the up and down buttons.
  • Quick-start guides for Claude Code, OpenCode and PI Agent.

Changed

  • thinking_budget is clamped when max_completion_tokens is constrained, so an over-large budget no longer fails the request.

Fixed

  • Windows could not start. The ledger SQLite URL was invalid for C:\... paths.
  • Claude login returned HTTP 400. context_management made every Sonnet and Opus request fail through the claude-subscription provider.
  • Dashboard file types no longer come from the Windows registry.
  • A model that only a window listed kept its per-provider order.
  • The schedule reported the wrong next change when a later window was hidden.
  • Automatic tasks showed the wrong models while a window was active.
  • JEVONIAN_PORT was ignored before the first config file existed.

v0.7.1

Choose a tag to compare

@xinyao27 xinyao27 released this 09 Oct 08:18

What's changed

Fixed

  • Devin keeps its prompt cache across turns. The Devin egress stopped sending the routing session id, so every turn looked like a new conversation and Devin reset its cache (hit rate fell from ~93% to ~30%). The session id now rides the Connect-RPC request again.
  • Antigravity reports its cache reads. The Gemini fold dropped cachedContentTokenCount, so Antigravity logged zero cache reads on every turn. It now surfaces as prompt_tokens_details.cached_tokens on both the streaming and non-streaming paths.
  • Cache coverage is no longer understated. The Connect-RPC hosts changed their usage convention at the Go engine cutover; every row was still labeled exclusive, so the dashboard divided by the wrong denominator. Each row's convention is now derived from the translator that produced it, and a per-startup reconcile labels legacy rows and corrects rows the cutover mislabeled. Devin's reported coverage rises from 70.5% to 91.1%.
  • Non-streaming Anthropic clients see cache reads. Folding a Chat completion back into a Messages reply reported an inclusive input_tokens and dropped the cached share; it now splits uncached input from cache_read_input_tokens, matching the streaming path.
  • Active status pill uses the default text color.

v0.7.0

Choose a tag to compare

@xinyao27 xinyao27 released this 08 Oct 15:03

What's changed

  • Rebuilt web UI on Cloudflare Kumo. Overview, logs, providers, routing, keys, and activity now share one component set and one type scale.
  • Agent tool turns no longer fail over to chatgpt-web. That provider has no tool channel and rejects any request with tools with HTTP 400. Routing withholds it whenever a turn carries tools, and records a tools skip note.
  • Collapsed sidebar fixes. Icons center correctly, and the hover bar sits on the pane edge instead of painting a line across the icon column.
  • Sidebar stays in the viewport. The app shell is pinned to h-svh with internal scrolling.
  • Usage heatmap fills its card. Cells scale across the full width, and month labels render in full.

v0.6.6

Choose a tag to compare

@xinyao27 xinyao27 released this 08 Oct 05:52
v0.6.6

v0.6.5

Choose a tag to compare

@xinyao27 xinyao27 released this 08 Oct 05:03

What's changed

  • Overview dashboard rebuild with usage, models, and cost cards
  • Provider logos in routing and provider lists
  • Provider usage cards show connected sources; list rows are more compact
  • Logs request detail opens in a Sheet
  • Responses sampling params (temperature / top_p) no longer leak upstream; client 400s stay honest

v0.6.4

Choose a tag to compare

@xinyao27 xinyao27 released this 08 Oct 02:22

What's changed

Added

  • Prompt cache coverage in the Logs view: each row shows the share of input tokens served from the prompt cache, and the activity chart reports the same ratio for the window.

Changed

  • Logs filters moved into a dropdown beside the search box, so the table gets the full page width. The funnel button shows a count when filters are active.

Fixed

  • Logs table columns no longer overlap; columns clip to the available width.

Full changelog: https://github.com/xinyao27/jevonian/blob/main/CHANGELOG.md

v0.6.3

Choose a tag to compare

@xinyao27 xinyao27 released this 06 Oct 12:04

What's changed

  • Added quota reset controls and live reset data to the dashboard.
  • Restored the dependency update command.

v0.6.2

Choose a tag to compare

@xinyao27 xinyao27 released this 06 Oct 10:10

What's changed

  • CLI output now uses consistent terminal styling. JSON and redirected output stay plain.
  • Removed the Kev decision brain, CLI command, and deployment code.

v0.6.1

Choose a tag to compare

@xinyao27 xinyao27 released this 06 Oct 01:14

What's changed

  • macOS LaunchAgent heals after the Node→Go cutover. Missing or same-package dist/cli.mjs entries are rewritten onto the Go binary by any CLI command, restart, or update.
  • jevonian update fails closed when the native binary cannot be re-downloaded after an npm wipe.
  • status / doctor show the LaunchAgent binary path and warn when it is missing or has no pid.
  • Logs list latency without TTFT (detail view still has first-token timing).

Upgrading from 0.5.x / 0.6.0

  1. npm i -g jevonian@latest (or jevonian update) after npm publish
  2. Run any jevonian command (or jevonian restart)
  3. If 0.6.0 still refuses takeover: jevonian stop --uninstall && jevonian start

v0.6.0

Choose a tag to compare

@xinyao27 xinyao27 released this 06 Oct 00:52

What's changed

Changed

  • Jevonian is now a native Go binary. The router, CLI, and dashboard server were rewritten from TypeScript to Go. Every command, flag, config key, HTTP endpoint, and ledger field works as before. Startup is faster: jevonian doctor takes ~0.16s instead of ~0.57s.
  • The npm package is now a small launcher. npm i -g jevonian installs bin/jevonian.js, which downloads the platform binary from this release and verifies its SHA-256 against checksums.txt. No router code runs in Node.
  • The dashboard is embedded in the binary and served at / — no separate web files needed.
  • The ledger is now SQLite. On first start the binary imports the existing ledger.jsonl into ledger.sqlite and moves on.
  • Provider quirks live in each provider's adapter. The attempt loop no longer type-switches on providers, so adding a provider doesn't edit the loop.

Fixed

  • A quota error inside a folded Responses stream fails over again — response.failed with a quota or rate limit moves the turn to the next provider; other failures return 502 instead of 200.
  • jevonian update keeps the background service working — an npm update now re-downloads the binary before the service restarts.
  • The Freebuff waiting room no longer marks the account as spent — it waits out the host-supplied delay instead.
  • Error messages no longer break inside a character — truncation happens at character boundaries, so non-ASCII text stays readable.
  • A mistyped command suggests the closest match — jevonian docter → "Did you mean jevonian doctor?".

Upgrading

An existing background service still runs the old Node build. Run jevonian stop --uninstall, then jevonian start, so the LaunchAgent runs the new binary.