Skip to content
AbloAblo
Esc
navigateopen⌘Jpreview
On this page

v0.40.0

The price is a contract, and the pricing page derives from it

Ablo’s pricing now lives in one module: the tiers, the rate card, and the arithmetic that turns a month of usage into a bill. Each tier has a monthly floor, and metered usage is charged against that floor rather than added to it, so an organization pays the greater of the two and never both. Commits, reads, and claim creates roll into one metered axis. Concurrent connections are a capacity reservation, so they are capped rather than billed.

The published pricing page is generated from the same contract the meter charges against, and a CI gate fails any change that would let the page and the invoice disagree. The dashboard gains a billing page that shows the period’s usage and what it costs.

Tracks that refuse to write on a stale belief

A durable track can now carry onStale: 'reject'. The tracker’s next commit is refused until it has observed the change it was tracking, so an agent cannot write on the basis of a row it has been shown to be stale. The default stays notify, which reports the movement on the receipt and lets the commit through. Group premises now name the concrete row that moved rather than the group alone, so reconciliation starts from the exact conflict instead of a re-read of everything the group covers.

A CLI that fails in plain language

Every command that talks to Ablo’s control plane goes through one typed HTTP client. Failures arrive as named cli_ error codes with plain-language messages: a missing API key says how to log in, a missing connection string says where the CLI looked, an unreachable database says what refused the dial. Setting ABLO_JSON=1 switches command output to a machine-readable form for agents and scripts.

Was this page helpful?