- Custom directives API —
@json-render/corenow supports custom directives viadefineDirective, letting you declare new JSON shapes (like$format,$math) that resolve to computed values at render time. Directives compose naturally — nest$formatover$mathover$stateand they resolve inside-out. All four renderers (React, Vue, Svelte, Solid) have built-in directive resolution (#279) @json-render/directives— New package shipping seven ready-made directives:$format(date, currency, number, percent viaIntl),$math(add, subtract, multiply, divide, mod, min, max, round, floor, ceil, abs),$concat,$count,$truncate,$pluralize, and$join. Also exportscreateI18nDirectivefor$ttranslation keys with{{param}}interpolation, andstandardDirectivesfor one-line registration (#279)
- Example READMEs — Added documentation to the chat, dashboard, game-engine, and no-ai examples (#277)
- @ctate
- Devtools — Five new packages for inspecting json-render apps in the browser:
@json-render/devtools(framework-agnostic core), plus@json-render/devtools-react,@json-render/devtools-vue,@json-render/devtools-svelte, and@json-render/devtools-solidadapters. Drop<JsonRenderDevtools />into your app to get a shadow-DOM-isolated panel with six tabs (Spec, State, Actions, Stream, Catalog, Pick), a DOM picker that maps clicked elements back to spec keys viadata-jr-key, a capped event store, and server-side stream tap utilities. Floating toggle orCmd/Ctrl+Shift+J, tree-shakes tonullin production (#273) - Devtools example — New
examples/devtoolsNext.js demo showing the full devtools panel wired up to an AI chat endpoint and a component catalog (#273) - Action observer and devtools flag in core —
@json-render/corenow exposes an action observer and a devtools enablement flag that adapters use to mirror actions and stream events into the panel (#273)
- Zod 4 schema formatting —
formatZodTypenow correctly handlesz.record(),z.default(), andz.literal()types from Zod 4, which previously produced incorrect or empty output in generated prompts and schemas (#239)
- Zod 4 test coverage — Added unit tests for
formatZodTypecovering record, default, and literal types to guard against regressions (#272)
- @ctate
- @mvanhorn
- Gaussian Splatting — Added
GaussianSplatcomponent to@json-render/react-three-fiber, bringing the component count to 20. Composable with all existing R3F components (lights, controls, post-processing) via drei's Splat loader (#259) - Standalone gsplat example — Experimental demo app showcasing Gaussian Splatting with gsplat.js (no Three.js dependency), featuring scene selector, live JSON spec viewer, and progress indicator (#259)
- R3F gsplat example — Demo app with five scenes: splat showroom, splat with primitives, multi-splat, post-processing effects, and animated floating splat (#259)
- AI output quality — Improved prompt output and schema generation for more reliable AI-generated specs (#268)
- @ctate
- @willmanzoli
- Release process — Switched from Changesets to a manual single-PR release workflow with changelog markers and automatic npm publish on version bump