Show Your Work: Elyra 0.9.37
Elyra has kept a local ledger of every model turn for a while. 0.9.37 turns it into recommendations — switch, pin, or keep for each routing tier — and stamps every agent commit with an Elyra-Cost git trailer showing what it took to produce.
There's a question every team using AI coding tools eventually gets asked, usually by someone holding a budget: "What are we actually getting for this?" And there's a quieter question developers ask themselves every time they pick a model: "Is the expensive one really worth it here?"
Both questions have the same problem. The answer exists — it's in your own usage — but nobody has been writing it down where you can see it. Elyra 0.9.37 starts writing it down.
Why this release
Elyra has quietly kept a local ledger of every turn for a while now: which model ran, whether it succeeded, how many edits failed, what it cost, how long it took. You could read the raw numbers with /routing-stats. But raw numbers aren't decisions. Nobody looks at "glm-5.3: 142 turns, 97% success, $0.57 total" and immediately knows what to do.
Meanwhile, the money you spend disappears the moment the session ends. A commit lands in the repo with a nice message and zero indication that it took four model turns and forty cents — or four dollars — to produce.
This release turns both into something actionable: the ledger now makes recommendations, and every commit carries its receipt.
The ledger tells you what to change
/routing-stats still shows you the measurements. Now it ends with what they mean:
Tier suggestions (from your local ledger, last 30 days):
- fast: switch anthropic/claude-haiku-4-5 → zai/glm-5.3 — zai/glm-5.3: 97%
success over 142 turns at $0.004/turn vs anthropic/claude-haiku-4-5: 90%
at $0.010/turn
- balanced: pin anthropic/claude-sonnet-5 — 96% success over 120 turns at
$0.021/turn (next: openai/gpt-5: 95% at $0.012/turn)
- powerful: keep anthropic/claude-sonnet-5 — best alternative
anthropic/claude-opus-4-5: 97% at $0.050/turn is not meaningfully better
Apply with /settings → Smart routing, or set smartRoutingModels in settings.json.
Three verbs, each with its evidence. Switch when a measured alternative is meaningfully better — at least five points more success, or the same success at under 60% of the cost per turn. Pin when a tier has no pinned model but the data clearly favors one. Keep when your current choice holds up, with the numbers that say so.
The bar for "meaningfully better" is deliberate. A one-point difference over thirty turns is noise, and we won't nudge you to churn your setup over noise. Models with too few measured turns don't get to compete at all.
What makes this possible is something no vendor-owned agent can offer: the ledger compares across providers, on your work, and it never leaves your machine. elyra doctor routing gives you the same view from outside a session.
Every commit shows its receipt
When the agent commits, the commit now carries a standard git trailer:
$ git log -1
feat(billing): add proration for mid-cycle plan changes
Elyra-Cost: $0.42 (glm-5.3, 4 turns, 1 model switch)
That's spend since the previous commit, which models did the work, how many turns it took, and whether a model switch happened along the way. It's a trailer — the same mechanism as Signed-off-by or Co-Authored-By — so every git tool already knows how to display, filter, and ignore it.
Which means the budget question finally has a git log answer:
$ git log --format='%s%n%(trailers:key=Elyra-Cost,valueonly)' --since='1 month ago'
You'll see which features were cheap, which were expensive, and — combined with the recommendations above — whether the expensive ones needed to be.
Some care went into not being annoying. The trailer is injected into the actual git commit command the agent runs, so your -m "fix: handle a && b" survives intact. It skips --amend (the commit already has its receipt), --fixup and --squash (those messages get eaten by rebase), and it never doubles up. It's on by default, same as other tools' co-author trailers; gitCostTrailer: false turns it off if your team prefers clean history.
Compaction that cites instead of repeats
Last release introduced the project decision log — architecture decisions as files in your repo. This release closes a loop with it.
When Elyra compacts a long session, the summary used to re-explain every decision from scratch: "we chose Inertia over Livewire because..." followed by the full rationale. Now the summarizer is handed the list of decisions already on disk and told to reference them instead:
## Key Decisions
- Admin UI framework: see decision 2026-09-02-use-inertia-over-livewire
Shorter summaries, and — this is the part that matters — zero lost reasoning. The full context, alternatives, and consequences live in the decision file, one read away. Compaction stops being where the why goes to die.
The extraction step also learned not to re-record decisions that already exist, and manual /compact now persists any new ones it finds, just like automatic compaction does.
Also in the registry
DeepSeek V4.1 Flash arrived on the gateways, Grok 4.6 landed on Bedrock, Mercury 2.5 went GA, and a batch of :batch half-price variants appeared for GLM and Mistral. The stealth model omen-alpha we spotted on Copilot a few days ago has been withdrawn — codenames come and go.
Get it
elyra update
Then run /routing-stats and read the bottom of the report. Make your next commit. Look at it with git log -1. Your tooling just started showing its work — and so, in a sense, did you.