Releases / 0.2.9

Release 012

Release 012 · VEX 0.2.9

Your Lighter trades, on your own screen.

The AgentScan feed inside VEX (Settings and the Studio Activity card) now lists every Lighter perpetual and spot fill next to your swaps and bridges, with the whole record the venue wrote: what the fill did to the position, size, price, the settled dollar notional, both fees with their provenance, realized PnL, the leverage in force before the fill, and the market's last observed position beside it. Underneath, the fill ledger stops blaming itself under concurrent observers, and the leverage a fill was made at is recorded from the venue's own trade record rather than guessed later.

Since 0.2.8, 2 pull requests and 10 commits landed, both on the Lighter arc.

01 · Lighter in the local AgentScan

One feed, two ledgers.

Until now the in-app AgentScan feed read the swap and bridge ledger only. A Lighter deposit showed, the fill it funded did not, and a coding agent asking VEX for its own history was told, wrongly, that nothing had happened. The feed now reads the venue's fill ledger as a second arm and interleaves both by time in one page.

01

Every fill, with its position detail. A row reads PERP·OPEN (or INCREASE, REDUCE, CLOSE, FLIP; SPOT for a spot market), the Lighter mark, "Buy 0.0050 ETH @ 2,598.09", the venue's settled notional as a plain dollar figure, a leverage chip such as 10.00x when the ledger holds the fraction, and the time. Expanding it lists the side, size, price, quote notional and the whole dollar figure on lines that wrap, then the position before the fill, the entry quote before it, the realized PnL on a reducing fill, the leverage before the fill, the Vex fee and the exchange fee, the trade type, the venue, the block height, and the order, trade and intent ids.

02

Fees keep their provenance. A charged amount the venue has proven is shown as the charge, in its own asset; until then the fill's own estimate is shown with the estimate marker, the basis it was computed on and the tick it used. The two are never added, an unproven charge is never printed as zero, and a recorded charge is never replaced by an estimate, whatever its asset's decimals. An exchange rebate is called a rebate.

03

Position now, as a fact about then. Each perpetual fill carries the market's last observed position: signed size, entry price, unrealized and realized PnL, liquidation price, and the margin mode and leverage when the observation recorded them, always beside the time VEX last observed it. A market observed closed says closed; an observation whose stored details cannot be read says so instead of hiding. A spot fill shows no leverage and no position, because it has none.

04

Liquidations are named. A fill the venue made on the account, a liquidation, a deleverage or a market settlement, carries a chip that says so. It is not a trade you or the agent placed, and the feed does not dress it as one.

05

Scope stays with VEX. A fill is listed only when a Lighter onboarding of one of your inventory wallets resolved to the fill's account, and only when VEX has attributed the fill to an order it placed; a fill VEX observed but has not yet attributed is held back rather than shown as yours. Filters gain a "Lighter fills" kind and the lighter protocol.

02 · The fill ledger

Recorded, not guessed.

01

The leverage a fill was made at. The venue's trade record carries the account's initial margin fraction before the fill. VEX read it and dropped it; it is now stored on the fill, on the venue's own scale, and shown as the leverage before the fill. A value outside the venue's range is stored as unknown rather than clamped, and never lets a fill fail to record. Fills recorded before this release show "unknown" until a later observation of the same trade carries the fraction; nothing is backfilled by guessing.

02

Position observations carry the margin terms. The periodic position observation now records each position's initial margin fraction and margin mode, cross or isolated, alongside size, entry and PnL. What reaches AgentScan is unchanged and pinned by a test.

03

Two observers of one fill no longer argue. The order's own follow-up read and the account stream can observe the same fill milliseconds apart. The ledger keyed its conflict clause on one of the fill's two identities, so the second writer could hit the other and log a failed ledger write for a fill the ledger already held. Every identity now arbitrates, the loser resolves to "already held", and an observation that only enriched a held fill is counted as such rather than as a failure.

03 · Everything else

A link that resolves.

01

Your data stays yours, at a real address. The privacy link under the Superboard key and in the setup wizard pointed at a host that never existed. It now opens the privacy page of the public documentation, which says what stays on your machine, what leaves it and what is opt-in, and the desktop's external-link allowlist carries exactly that address and nothing wider.

02

Delivery to the public AgentScan. VEX has been holding every Lighter fill and position observation for the public AgentScan because the deployed server did not answer the capability check at the address the contract names. That is a routing fix on the server, submitted alongside this release; once it is live, every held row goes out on its next attempt with no action on your side.

04 · Before you update

Upgrade notes.

One new database migration runs automatically on first start, taking the schema from 161 to 162. Two changes you will feel: Lighter fills appear in the in-app AgentScan feed and in the Studio Activity card, and fills made before this release show their leverage as unknown until a later observation of the same trade carries it. No manual action is required.