-
feat(bnp): codeless .bnp artifacts — declarative plugins with no wasm (WO-WZ-020)
released this
2026-07-04 03:30:00 +00:00 | 22 commits to main since this releasePluginManifest gains
codeless(additive, buf-breaking clean): an artifact
with NO plugin.wasm that the host runs entirely.ninja plugin build
classifies by repo shape — no Go source → codeless (manifest synthesized from
plugin.mod + optional manifest.yaml: theme presets, fonts, settings schema,
master pages, CSS, icon packs, deps); Go source → wasm as always. New
--codelessflag asserts the expectation.Both artifact kinds now pack the declarative dirs: blocks/ (the cms
blocks.yaml manifest-FS layout — definition-backed blocks), templates/, and
seed/ (seed.json: settings/media/pages/menu items, applied host-side via the
WO-WZ-019 provisioner). The packer structurally validates blocks.yaml and
seed.json (schema JSON validity, file presence, traversal safety); full
semantic validation stays host-side at install.ninja plugin verify: plugin.wasm is required exactly when NOT codeless; a
codeless manifest declaring any computing hook (http/jobs/load/unload/media/
RAG/tags/filters/services/guest blocks/data_dir) is rejected —
CodelessHookViolation mirrors the cms reader check (lockstep duplication).Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Downloads