Repository navigation
0.19.0
0.19.0 (2026-08-18)
Do you remember? I don't, but personas will!
Knowing what it costs, and setting a limit
Models have a price, and until now Llooma pretended otherwise. Each model on a connection can carry its input and output cost per million tokens, with its own currency, set from the server's model panel. Shared models are marked green when priced and red when not, so nothing slips through unnoticed.
From that comes an allowance. An instance can set one for everybody and a different one per account, over a calendar month, week or day. Your Profile shows what you have spent, what is left, when it resets, and thirty days of spending as a chart.
Two decisions, a limit never cuts a conversation in half: the check happens before a turn starts, never in the middle of one. And an unpriced shared model is refused while a limit is in force, rather than quietly costing nothing. A model whose price nobody entered is not a free model, it is an unmeasured one, and treating it as free is how an allowance becomes decorative.
When the instance refuses, it says so properly and gives the administrator's address rather than an error code. Local mode counts too. There is nobody to limit there, but there is still something to know, so the same figures are kept in the browser.
Administrators get a Users tab of their own, beside Admin: the accounts on one side, what each of them spends on the other.
A Prompts tab
Everything Llooma adds behind your message was already yours to rewrite, but it lived in a dropdown at the foot of an already long Tools tab. Which is to say nowhere. It now has a tab of its own, in five folded sections. A prompt you have rewritten says so without being opened.
Three gaps closed along the way. The prompt that names your conversations is editable at last. So are the native tool descriptions, which ends a duplication that was being kept in step by hand between the prose path and the tool path. And the system prompt, global and per model, moves here from Chat, where it always belonged.
On a shared instance an administrator can share their prompts, locked or as a starting point. Everyone still sees the whole tab either way: a read-only field tells you what is being sent on your behalf, where a hidden one only tells you that something is. Shared as a starting point, the rewrites merge prompt by prompt, so rewriting one does not quietly discard the other nineteen.
Personas that remember
A persona can keep a few things about you between conversations. It writes them itself, and every write shows up in the conversation as a step you can see, exactly the way a web search does.
Two tiers. One block it rereads at the start of every message, for what is true most of the time, and notes carrying only a title and a line saying when each one matters, the note itself opened only when that line says it bears on the conversation. Everything always carried fits in 4000 characters. When it is full the persona has to merge two notes or forget one, and it is told so rather than being allowed to truncate quietly.
Open the persona in the Library and the memory is there in full, to correct or delete. That is the real safeguard: a memory you cannot read is one you cannot fix.
It belongs to the pair of you and that persona, and to nothing else. Exporting the persona does not carry it. Sharing the persona on an instance does not carry it, and cannot: the memory is not stored on the persona at all. Each account using a shared persona has its own, invisible to everybody else, the administrator included. It has its own row in Settings → Data, and an administrator can turn the feature off for the whole instance.
It needs a model that can call tools. Without one, the persona still receives what it remembers and still answers from it, but cannot write to it by itself.
Fixes
Starting a conversation with a persona could create an ordinary conversation instead: the write was still queued when the page read it back, and a blank conversation settled on top. The persona lost its voice, its greeting and its title. A persona with no model of its own now takes yours, instead of arriving with none at all.
Server-side turns went entirely uncounted. The meter was watching the browser relay, and in server mode the browser sends nothing through it. Counting now happens where the turn actually runs.
What an administrator shares goes through an allowlist. The whole persona object used to travel, conversation id included.
And a decimal comma no longer silently discards what you typed, in prices or in an account's allowance.
Before updating - Database migrations run at startup. Back up first: an earlier version will not read back what they write.
Bug Fixes
- credits: a label was swallowing the click, and the two panels now match (a90ba9f)
- credits: an unpriced shared model is a limit that does not apply (27d97df)
- credits: the allowance sits with the accounts, and an admin sees their own (a4d90d9)
- pricing: a price per model, on its own row, with a way back to unset (f311d86)
- pricing: arrows for labels, the unit against the figure, the row spread out (d0e61c6)
- pricing: both arrows lean the same way, and the figures fill the row (88f891b)
- pricing: one height for every control on the price row (23f073a)
- pricing: the unit in the box, an arrow on the label, and a comma is a decimal point (67e7ea4)
- pricing: the unit on every label, native spinners gone, reset on the row (7ee1f06)
- settings: fold what is rarely wanted, and say which side of a price is which (eb839ad)
- usage: count where the turn runs, not where the browser would have sent it (34445ed)
- usage: watch the stream on its way out instead of racing a copy of it (dc00975)
Features
- credits: a refusal says who to ask, with the address (88d87dc)
- credits: an allowance per account, folded, with its own period (b6b3814)
- credits: count what each account spends, and a limit that never cuts a turn (17d5547)
- prompts: one screen for everything the app says, and personas that remember what you tell them (d712c60)
- servers: record what a million tokens costs, per model and per connection (f4c108b)
- usage: the tokens beside the money, since the money rounds to nothing (13f4c1a)
- usage: thirty days of spend, a currency on the figure, and a ledger in local mode (7e2cde5)