Releases / 0.2.12

Release 015

Current

Release 015 · VEX 0.2.12

Approvals you can actually read.

The pending-approval card now holds still while you decide: the title pins, the rest of the window blurs, and an opaque header keeps the request in view as the card scrolls. Lighter withdrawal, deposit and claim cards are cut down to the fields a human needs to check. A Full access session now means on Lighter what it already meant everywhere else, and installs whose Lighter activity never reached AgentScan start reporting it.

Since 0.2.11, 3 pull requests and 14 commits landed, across the approval surface and the Lighter integration.

01 · The approval card holds still

Nothing shifts under your cursor.

A card whose title and action buttons cannot be on screen at the same time defeats the point of an approval: you are asked to sign something you can no longer see, or to decide without losing sight of what it is. Until now a long card scrolled its own title away before you reached Approve or Reject. Each change here was tuned against a real Lighter withdrawal on screen, not from a static read of the stylesheet.

01

The title pins. The moment a decision is pending, the card's header sticks to the top of the approvals region, so what you are deciding on stays in view while you scroll its detail. The header is opaque, so the rows scrolling underneath never show through it.

02

The rest of the window steps back. While at least one approval is pending, the transcript, composer and sidebar dim and softly blur behind the card, with the same mask the app already uses behind dialogs and the image lightbox. It is a cue, not a lock: everything behind it stays reachable, and the run is already paused either way.

03

Room for one long card. The approvals region can now grow to three quarters of the window before it scrolls, up from forty percent. A stack of pending approvals still cannot push the composer off screen; a single long card now fits its title and its Approve and Reject buttons on screen together.

02 · Cards you can read

What to review, not what is bound.

A Lighter withdrawal binds thirty-five fields because the app must re-verify every one of them before the withdrawal executes. The card rendered all thirty-five. Reviewing and binding are different jobs, and the card now shows only the first.

01

Withdrawal: eight rows, not thirty-five. Action, your wallet, destination, network, amount, account balance, open positions and when the funds become claimable. The gateway addresses, code hashes and account indices the app binds behind the card are still bound and re-verified against the stored intent before anything executes; they never needed to be read.

02

Deposit and claim, the same way. A deposit card names the action, wallet, destination, network and amount, plus the one non-obvious fact: whether this deposit also spends a separate token allowance. A withdrawal-claim card names the recipient, network, amount and the network fee ceiling.

03

Balance and positions on the withdrawal card. The two questions the agent's own reasoning usually answers in the transcript, but the card did not: is this a partial or a full drain, and are there open positions that make pulling collateral riskier right now.

03 · Full access, honored on Lighter

The setting finally does what it says.

Every other trading protocol in Vex honors the session permission you pick when you create a session: Restricted stops every mutating call for your approval, Full access auto-executes without prompting per call. Lighter alone re-imposed the approval card on every mutating call regardless, a stance from its first, deliberately conservative release. Granting Full access for a Lighter mission was a no-op. This release brings Lighter under the same permission model the rest of the app trusts, and that is a change you should know about before you pick Full access on a Lighter session.

01

What changes. In a Full access session, order create and the OCO path it dispatches to, cancel, modify, cancel all, close position, deposit, withdraw, withdrawal claim, key registration and fee authorization run without a card, the way every other trading protocol in Vex already did. A Restricted session is unchanged on all ten: every one still stops for your approval and is bound to that exact approval before it executes.

02

What does not change. Each intent's own expiry is still enforced under both permissions, an auto-approved call still cannot act on an intent nothing prepared, and the decision is recorded for audit with a reason naming the auto-approval rather than a human. How Full access is granted and shown is untouched; the setting now does on Lighter what its own description promised.

03

One latent bug closed on the way. Fee authorization compared the recorded approval against the call's approval in a way that would have failed a legitimate Full access call. It is fixed with the same change.

04 · Lighter activity reaches AgentScan

A default left behind, now caught up.

If you linked Vex to Superboard on 0.2.8 or later and your Lighter trades never showed up there, this is why. AgentScan itself was never at fault; the app's own schema had drifted from what its own reporting code required, and it failed closed and silent instead of loud.

01

The gap. When the Lighter reporting vocabulary arrived, the migration walked existing installs forward but left the column default behind. Every install that linked to AgentScan after that point, including brand-new ones, was stamped one version too low, and its Lighter fills and funding legs were silently never queued for reporting. Nothing was held with a reason; the rows were simply never created.

02

The fix. Migration 164 sets the default for new installs and sweeps forward any install still stuck below it. An affected install starts reporting its Lighter activity on the first reporting tick after updating. That backlog is labeled as live activity rather than backfill, because the backfill marker was already consumed even though it queued nothing.

05 · Before you update

Upgrade notes.

Migration 164 changes one column default in the local reporting state and runs automatically on first start. No manual action is required.

Two things you will feel. A session created with Full access now executes Lighter orders, deposits, withdrawals, claims, key registrations and fee authorizations without an approval card, exactly as its description says; if you relied on Lighter prompting anyway, create your Lighter sessions as Restricted. And an install that was stuck below the Lighter reporting vocabulary will report its Lighter history to AgentScan on the first tick after updating, labeled as live activity rather than backfill.