Releases / 0.3.1

Release 019

Current

Release 019 · VEX 0.3.1 · Kairos

Faster turns. Faster clicks.

Kairos focuses on the time between asking VEX to act and seeing it respond. The agent prepares turns faster, runs independent research together, sends leaner requests to the model, and spends fewer rounds repeating work. Buttons acknowledge your click sooner, the Lighter desk reuses work it already performed, and expensive password calculations move off the desktop’s main thread.

This release covers the work merged after 0.2.14. Codename Kairos · 221 commits · Seven database migrations

Published on GitHub ↗

01 · Agent runtime

Less waiting before the model starts.

01

Preparation runs together. Independent context, memory and runtime reads happen concurrently, reducing the preparation paid before each model request.

02

Market refreshes leave the critical path. The $VEX banner uses a dated snapshot with background refresh, so fetching its price no longer holds up every turn.

03

Known tools resolve immediately. Exact tool names resolve locally. Broader discovery has a bounded embedding wait and can continue through text matching when that service cannot answer.

04

Leaner model requests. Compact tool results, shorter protocol instructions and tighter tool descriptions reduce repeated payload size while retaining the facts required for execution and review.

05

Background work uses appropriate reasoning. Supporting calls can use the lowest reasoning effort their model supports. Your chat and mission reasoning choices remain separately controlled.

02 · Independent work

Research runs together.

01

Concurrent research reads. Up to three audited independent reads run together by default. Their results remain in the original call order.

02

Concurrent wallet balances. Independent balance and pricing reads run together. A source that misses its deadline is identified, and incomplete totals remain visibly partial.

03

Fewer wasted rounds. The agent receives a corrective nudge when it announces immediate work without performing it. Repeated market polling is bounded, and timestamps alone cannot make an unchanged result appear to be progress.

04

Bounded model waits. Separate deadlines cover the first response, silent streams, reasoning without an answer and the complete inference round. A stalled round gets one recovery attempt before VEX explains why it stopped.

05

Finish interrupted answers. Supported reasoning models receive additional answer headroom. A text answer cut off by the output ceiling can continue once and save as one joined response.

Parallel execution applies to audited reads. Signing and submission retain their existing sequencing, ownership and approval checks.

03 · Button response

Your click gets acknowledged sooner.

01

Busy on the first click. Approve, Reject and setup controls enter their pending state immediately, preventing repeated clicks or keyboard shortcuts from starting overlapping work.

02

Approval dispatch continues in the background. The desk acknowledges the committed dispatch state while execution continues. Its settled result arrives through an event, with a status fallback that never resends the action.

03

Less preparation between ticket and approval. Market, Limit and trigger previews reuse a consistent preparation snapshot. Recent desk data and live order-book reads reduce repeated requests.

04

Faster lifecycle preparation. Close, modify, cancel and paired TP/SL preparation overlap independent fresh reads. Close and paired TP/SL actions also share fee snapshots.

05

Results appear where you acted. Approval, rejection and close outcomes reach the desk without waiting for its next general refresh.

A responsive button reports that VEX accepted the action for processing. Execution success still depends on the action’s verified outcome.

04 · Desktop responsiveness

Keep the window answering.

01

Password calculations move off the main thread. Expensive key derivation runs asynchronously, using workers inside Electron, reducing freezes during vault and wallet operations.

02

Less repeated unlocked-session work. A bounded derived-key cache avoids recalculating the same password-derived key for repeated vault reads. Locking clears it; wallet removal and restoration still require fresh verification.

03

Reuse connections and helpers. A bounded database pool and resident Lighter signer helper reduce repeated initialization between actions.

04

An earlier first window. VEX opens its window while the runtime finishes preparing. Agent, tool and wallet actions remain gated until the required services are ready.

05

See the actual step. Turn activity distinguishes preparation, waiting for the model, reasoning, calling a tool, running it, writing and awaiting approval.

05 · Reasoning and missions

Spend thought where you choose.

01

Mission reasoning on the contract. New missions default to High. Choose another effort before accepting the contract; the card shows the level the selected model will actually use.

02

Choices survive resumption. Chat reasoning preferences persist across resumed turns and wakes. Mission effort is frozen into the accepted run, and a revised choice requires accepting the revised contract.

03

Cleaner mission progress. Missions park when waiting for a scheduled wake, avoid repeated continuation cues, and finish with a visible report and “Mission ended” result.

04

Optional concurrent wakes. Independent mission wakes can run concurrently when configured, while preserving exclusion for the same session or selected wallet. The default remains one wake at a time.

06 · Also in Kairos

More control at the desk and over your wallets.

01

Lower perpetual fees. VEX’s Lighter perpetual integrator fee drops from 0.10% to 0.02%, an 80% reduction, for maker and taker fills on Core and Robinhood Chain. Spot remains 0.25%; Lighter’s exchange fees remain separate.

02

Direct percentage closes. Prepare a 25%, 50%, 75% or 100% Market close from the position row. VEX calculates the exact rounded amount from the fresh position. Partial closes require confirmation; below-minimum amounts refuse before signing. Limit closes retain ticket preparation.

03

Cancel all from the desk. Account-wide cancellation prepares directly, with its scope presented for review.

04

Wallet management: remove and restore secondary wallets. Settings now offers Remove from VEX, with fresh password verification, exact-address system confirmation and a verified encrypted recovery copy. Removal frees an active slot; funds remain at the same address.

Primary wallets are protected. Active signing, unresolved execution and unsupported Lighter trading connections block removal. Dependent missions pause and old approvals remain invalid. Restoring requires fresh authorization and explicit selection in a new chat.

Removal uses the theme’s red danger treatment; recovery appears separately. Recovery copies retain encrypted keys, so removal does not claim permanent erasure.

05

Lock VEX. Lock through the app controls or ⌘⇧L / Ctrl⇧L. Lock clears unlocked-session caches and requires unlocking again. It refuses while protected signing work is active.

07 · Performance and verification

Measure the time VEX controls.

In an owner-run sample of four read-only chats, covering ten inference attempts:

Owner-run sample · four read-only chats, ten inference attempts
Preparation before inferenceEarlier baselineMeasured after optimization
Median707 ms27.5 ms
95th percentile3,022 ms287 ms

These measurements cover VEX’s preparation before the model request. Provider response time and reasoning time vary separately.

New runtime measurements distinguish preparation, model waiting, reasoning, tool execution, persistence and desktop stalls. Timing records exclude prompts, tool arguments, results and secrets.

All nine CI checks passed on the merged main commit, including 25,190 core tests, desktop suites on Linux, macOS and Windows, 853 real PostgreSQL tests, packaging and bridge checks, and 161 end-to-end tests with no failed or flaky cases. Existing optional and platform-specific skips remain. Main CI results.

08 · Before you update

Upgrade notes.

Seven migrations, 171 through 177, apply automatically on first launch. They add runtime measurements, runner ownership tokens, saved reasoning effort, desktop-stall measurements, improved Lighter position facts and reviewed gateway identities.

Existing accepted mission contracts retain the reasoning effort bound to their acceptance. New missions default to High.

Encrypted wallet recovery remains local. Retain the recovery files and their encryption password; restoration does not revive old session selections or approvals.

Experimental reasoning replay, market-read preloading, aggressive tool-schema pruning and row projection remain disabled by default.

09 · Bug fixes

Fixes carried into Kairos since 0.2.14.

Chat and agent execution

  • Stop now ends a silent model request promptly and closes its provider connection.
  • Stop also reaches critical-compaction waits.
  • Failed stall recovery ends the turn instead of resending the original request again.
  • Continued answers avoid repeated sections and preserve the cut-off notice when completion remains uncertain.
  • Truncated or malformed tool-call batches cannot execute, including batches ended by the output limit.
  • Tool calls written as ordinary assistant text are caught.
  • Previously discovered tools rebuild from the conversation after a restart.
  • The stale bundled embedding-service endpoint is repaired.
  • Loop-stop messages identify the actual reason the loop was stopped.
  • An unanswered chain receipt remains pending under a bounded wait, without resending the bridge transaction.

Missions and runtime ownership

  • Interrupted wake claims no longer consume a wake without completing its corresponding run transition.
  • Recovery re-arms affected parked runs once.
  • Repeated text-only continuation cues and idle mission spinning are reduced.
  • Missions finish correctly after delivering a staged Board.
  • Final mission results appear in the conversation.
  • The turn clock stops when a mission finishes or parks on a tool round.
  • A stale runner cannot continue writing after losing its ownership claim.
  • A replacement runner checks unresolved money state before dispatching new work.
  • Database and connection waits are bounded, with reserved capacity for Stop.

Desktop and approvals

  • Reduced-motion unlock no longer leaves the transition curtain covering the app.
  • Failed approval-list reads show an unknown state and Retry instead of a false all-clear.
  • Repeated approval shortcuts, duplicate clicks and setup clicks cannot start overlapping actions.
  • Partial-close review is clearer, and stale desk errors clear correctly.
  • Expensive diagnostic profiling is prevented from recurring and creating additional stalls.
  • Timing reports separate retries, timeouts and preparation correctly, and retain unknown token usage when no usage arrived.

Lighter trading, deposits and history

  • Expired order and paired TP/SL approvals retire when evidence proves that reservation, signing and submission never occurred.
  • Wallet ownership is rechecked immediately before order, lifecycle and paired TP/SL signing.
  • Percentage-close tool contracts match the exact close behavior.
  • Trade history retains proven position effects when realized PnL is unavailable, and incomplete fill observations can be checked again.
  • Reviewed Core and Robinhood Chain gateway replacements are recognized while historical withdrawal and claim identities remain preserved.
  • Robinhood Chain deposit approval checks use native desktop networking for the exact official RPC, resolving its challenge-response failure.
  • A deposit already confirmed by background reconciliation no longer produces a false confirmation conflict. Matching receipt and workflow evidence is required, and credit is never downgraded or resubmitted.
  • A real owner-approved Robinhood Chain deposit was verified against its chain receipt, Lighter’s credit evidence and the resulting portfolio.

DexScreener and discovery

  • Updated feed handling restores affected five-second candles, daily and longer candles, socket trade history and token insight.
  • Token-screening maximums apply to summed token rows.
  • Missing boosts values count as zero when evaluating thresholds.
  • Combined reactions and insight parameters validate correctly.
  • Unsupported market-cap and FDV rankings are refused.
  • Trade-history deadlines bound each page request, and partial results identify the actual walk cutoff.
  • KyberSwap discovery guidance again describes its multi-DEX aggregation capability.

Full trader-profile data remains unavailable in measured DexScreener responses; that provider limitation is recorded.

Security and wallet safeguards

  • Vulnerable production dependency paths are updated, including the WebSocket transport used inside Electron.
  • Explicit locking refuses during protected signing work.
  • Wallet removal and recovery refuse malformed inventory instead of replacing unrelated configuration with defaults.
  • Interrupted removal is reconciled before signing becomes available.
  • Restoring a removed wallet cannot reactivate its old approvals, mission authority or session identity.