You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(pj_base): add pj.data_processors.v1 data-only SDK service for plugin-created transforms (#125)
Adds the `pj.data_processors.v1` host service: a DATA-ONLY C ABI that lets a
toolbox plugin create catalog-resident "transform" nodes in the host. Only
strings cross the boundary (script source + input/output names + params JSON +
an id); the host owns all execution, so a transform survives plugin unload and
session reload — the originating plugin is needed only for re-editing.
- PJ_data_processors_host_vtable_t (create/remove/list/config), protocol_version 1,
struct_size-gated and ABI-appendable; all slots [main-thread], PJ_NOEXCEPT.
- sdk::DataProcessorsHostView C++ sugar + DataProcessorsHostService trait.
- Payload (script/params) is binary-safe (PJ_string_view_t {data,size}), so the
native "door" is WASM bytes through this same surface — a future host-owned
WASM/Python backend is purely additive and survives unload, deliberately NOT a
C++ kernel vtable that would dangle on DSO unload.
- The view now rejects an empty output list (transforms create named topics, so
>=1 output is required) before it ever reaches the vtable.
- Fake-host gtest suite (8 cases) incl. a binary-safe payload round-trip and the
empty-outputs guard.
Additive new service -> Conan MINOR (0.8.0 -> 0.9.0); abi/baseline.abi untouched.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments