This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Summary
AI summaryUpdates Performance, fn, and idx across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds `localPlugins` config option for dev‑only plugin overlays. Adds `localPlugins` config option for dev‑only plugin overlays. Source: llm_adapter@2026-05-25 Confidence: high |
— |
| Feature | Medium |
Adds `ShortcutsService`, `<FocusContext>`, and `useFocusContext` for declarative keybindings. Adds `ShortcutsService`, `<FocusContext>`, and `useFocusContext` for declarative keybindings. Source: llm_adapter@2026-05-25 Confidence: high |
— |
| Feature | Medium |
Plugin views automatically inherit host app theme tokens via prelude listener. Plugin views automatically inherit host app theme tokens via prelude listener. Source: llm_adapter@2026-05-25 Confidence: low |
— |
| Performance | Medium |
Rewrites client‑side recording proxy to Immer‑style copy‑on‑write draft for massive speedup on large `update()` callbacks. Rewrites client‑side recording proxy to Immer‑style copy‑on‑write draft for massive speedup on large `update()` callbacks. Source: llm_adapter@2026-05-25 Confidence: high |
— |
| Bugfix | Medium |
Fixes migration filename collisions across branches by using `{tag}_{when}.ts` naming. Fixes migration filename collisions across branches by using `{tag}_{when}.ts` naming. Source: llm_adapter@2026-05-25 Confidence: high |
— |
| Bugfix | Medium |
Supports `root.delete` as a first‑class write op in Kyju, propagating deletes through replica and db reducers. Supports `root.delete` as a first‑class write op in Kyju, propagating deletes through replica and db reducers. Source: llm_adapter@2026-05-25 Confidence: high |
— |
Full changelog
Features
- New
localPluginsconfig option ondefineConfig({...}). Point it at one or more gitignored overlay files whose default export is a plugin entry (or array of entries) and they get merged intopluginsfor dev. Missing files are silently skipped; edits hot-reload likezenbu.config.ts; andbuild:source/build:electron/publish:sourceskip the overlay so dev-only plugins never ship.6147245 - New
ShortcutsServicefor declarative keybindings, plus a<FocusContext>component anduseFocusContexthook (from@zenbujs/core/react) for declaring named focus regions that filter shortcuts bywhenclause. Per-iframe prelude now wires up a shortcut bridge so bindings dispatch through the host.0745395 - Plugin views automatically inherit the host app's theme tokens via the new prelude theme listener — no plugin-side code needed.
0745395
Performance
- Rewrote the client-side recording proxy used by
client.update(fn)to an Immer-style copy-on-write draft. Reads/writes only cost what the caller touches instead of walking the full target on every trap, with cached child drafts so repeated reads stay===-stable. Largeupdate()callbacks over deep state see a multi-order-of-magnitude speedup on the hot path.57d90b9
Fixes
- Generated migration filenames no longer collide across branches. The old
{pad(idx)}_{tag}.tsscheme guaranteed merge conflicts (and silent overwrites) whenever two branches ranzen db generatefrom the same head. New migrations are written as{tag}_{when}.tswith the basename recorded in the journal; legacy{pad(idx)}_{tag}files keep loading unchanged, so existing migration directories are untouched until the nextgenerate.c7b4efb - Kyju now supports
root.deleteas a first-class write op alongsideroot.set, so deletes insideclient.update(fn)propagate through the replica and db reducers instead of being coerced intoset undefined.0745395
Contributors: @RobPruzan
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Zenbu.js
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]