Small Releases, Big Comfort: Elyra 0.9.27 → 0.9.31
Five releases in under two weeks, none of them a headline on its own. Two-way extension management, visibility into forgotten sessions, a 400 error that taught us about prompt-cache anatomy, warnings that only fire once, and a model registry that kept pace with Grok 4.6, GLM 5.3 and Gemini 3.7 Flash.
We shipped five releases in under two weeks. None of them is a headline-grabber on its own — no new subsystem, no grand feature. But together they tell a story about what we think a daily-driver tool owes you: it should clean up after itself, fail loudly never and quietly never, and keep pace with a model landscape that refuses to sit still. Here's the sum of it, with the why behind each piece.
Why these releases
Three things prompted this run. First, we noticed that adopting things in Elyra was easy but un-adopting them wasn't — extensions went in with two keystrokes and came out with homework. Second, a few of you reported battery and memory concerns, so we measured instead of guessing. And third, a genuine bug: everyone logged in with a Claude subscription suddenly hit a cryptic 400 error. That one taught us something about our own request anatomy, and the fix is a nice little story.
Uninstall is now as easy as install (0.9.27)
The /ext browser used to be a one-way door: space to mark, enter to install. Removing an extension meant leaving your session and typing elyra remove npm:@elyracode/... from memory. Friction like that means cleanup never happens.
Now space toggles the change you want: [x] to install something you don't have, [-] (in red) to remove something you do. Enter applies the whole batch:
Extensions (1 to install, 2 to remove)
[x] lsp-rust Rust LSP: go-to-definition, diagnostics
→ [-] ✓ anna Presentations: slides, terminal demos
[-] ✓ youtrack YouTrack: issues, comments, tags
[ ] ✓ laravel Deep Laravel understanding
✓ = installed · space marks [x] install / [-] remove
Installed @elyracode/lsp-rust. Removed @elyracode/anna, @elyracode/youtrack.
Run /reload to apply the changes.
One mental model, one keypress, one pass.
Find your forgotten sessions (0.9.27)
When we investigated the battery reports, the data surprised us: an idle Elyra uses essentially zero CPU. The real cost was forgotten instances — sessions started in a tmux pane days ago, each quietly holding a few hundred megabytes, sometimes with a language server or headless browser still attached.
So we built visibility instead of guesswork:
$ elyra doctor resources
Running Elyra instances:
PID 48213 up 2h 14m CPU 3m 12s mem 310 MB
└─ intelephense (PHP LSP) mem 145 MB
PID 17902 up 3d 6h CPU 1m 44s mem 288 MB ⚠ looks forgotten
└─ chromium (headless) mem 412 MB
⚠ If you no longer need it: kill 17902
No automatic killing, no magic — just the list. Seeing it once is usually enough to build the habit.
The 400 error that counted to five (0.9.29)
If you logged in with Claude Pro/Max OAuth, you may have hit this:
Error: 400
"A maximum of 4 blocks with cache_control may be provided. Found 5."
Here's the anatomy: Anthropic allows four prompt-cache markers per request. We place them strategically — system prompt, last tool definition, first and last user message. That's four. But OAuth requests include an extra identity block, and it carried a marker too. Five. Boom.
The fix is satisfying because it costs nothing: prompt caching is prefix-based, so a marker on the system prompt already covers every block before it. The identity block's marker was pure waste. We removed it, added a regression test that counts markers across the whole payload, and shipped the hotfix same-day. Your cache hit rate is unchanged; the 400 is gone.
Warnings that respect you (0.9.30)
Speaking of subscription auth: Elyra warns you that third-party usage draws from Anthropic's paid extra usage rather than your plan limits. Useful information — exactly once. It used to reappear every single session, because the "already shown" flag lived in memory.
Now it's persisted per install. You get the heads-up once, and then your tool trusts that you read it. (The warnings.anthropicExtraUsage: false kill switch still exists if you want total silence.)
Keeping pace with the models (0.9.28–0.9.31)
The model world didn't pause while we did housekeeping, and the registry kept up:
Grok 4.6 landed — first as a rumor we checked and couldn't confirm, then for real days later. $2/$6, 500K context. It's now the xAI default.
GLM 5.3 arrived on z.ai's coding plan with a 1M context window, and is now the zai default.
Gemini 3.7 Flash joined on Google, Vertex, and gateways — a strong candidate for the cheap tier in smart routing at $0.75/$3.75.
Google retired the Gemini 2.0 series, Cloudflare's gateway dropped its legacy catalog, and prices moved (GLM 5.2 down ~60%, kimi-k3 on Copilot up 3–4x — check your pinned tiers).
And a small vanity fix along the way: the OAuth callback page in your browser now greets you with the Elyra constellation instead of a leftover placeholder logo. Details matter.
Get it
elyra update
Then try /ext and mark a [-] or two, run elyra doctor resources and see what you find, and enjoy logging in without arithmetic errors.