Pulp Engine v0.50.0 — Release Notes
Editor authoring release: six new capabilities for template authors, plus the supply-chain and renderer readiness work originally staged for v0.49.0 (which was never tagged). v0.50.0 absorbs all changes since v0.48.1.
What changed
1. Collapsible property groups
The properties panel now organises node settings into collapsible groups (Style, Pagination, Expression override, etc.). Groups remember their open/closed state per node selection and reset when a different node is selected.
2. Per-node comments
Template authors can attach a free-text comment (up to 500 characters) to any
node. Comments are stored in node.meta.comment and are visible in two places:
- Properties panel — expandable comment section with character counter and clear button; auto-saves on blur
- Canvas — popover on the node badge; shows a
*indicator when a comment is present
Comments are purely editorial — they do not affect rendering.
3. Node templates / favorites
Commonly used node configurations can be saved as reusable block templates for quick insertion. The block palette and template picker dialogs provide the management UI.
4. Template linting with hint severity and dismissals
A new hint severity level sits below warning and error. Hints surface best-
practice suggestions — wide tables, deep nesting, unlabelled sections, unused
schema fields, heading level skips, images without alt text, and empty else
branches.
Each hint carries a fingerprint. Authors can dismiss individual hints per
template, stored in localStorage. Dismissed hints do not reappear until the
underlying condition changes.
5. Visual expression builder
Conditional nodes now offer a visual JEXL expression builder alongside the raw text editor. The builder supports four pattern types:
- Comparison —
field == value(six operators) - Arithmetic —
field * quantity(four operators) - Concatenation — multiple field/literal segments
- Ternary —
condition ? trueValue : falseValue
The builder auto-detects the pattern from existing JEXL text, shows a live
preview against the current sample data, and suggests fields from inputSchema.
6. Handlebars playground
An interactive testing environment for Handlebars expressions, accessible from the editor toolbar. Features:
- Live evaluation against current preview data (with field mappings applied)
- Debounced evaluation (200 ms)
- Helper reference panel listing available helpers with examples
- Expression history (last 10, persisted in
localStorage) - Auto-populates with content from the selected text or heading node
7. Supply-chain baseline and vulnerability scanning (carried from v0.49.0 prep)
handlebars→^4.7.9,fastify→^5.8.3— clears allpnpm auditfindings- CI runs blocking
pnpm audit --prod --audit-level=moderate - Trivy image scanning in CI and release workflows, with release scan artifacts
- Dependabot configured for weekly npm and GitHub Actions updates
8. Renderer readiness (carried from v0.49.0 prep)
GET /health/readyincludes renderer status alongside storage and asset binary checkspulp_engine_renderer_statusPrometheus metric for render-path healthcompose.container.yamlAPI healthcheck now uses/health/readyvalidate-deploy.shreports renderer readiness status
9. CI release-gate fix
ci.ymlnow fetches tags before runningcheck-version.mjs, resolving a workflow contradiction where the version check could not pass both CI and release pipelines on the same release commit
Validation
CI-verified — expected on the release commit after push:
ci, test-file-mode, test-sqlserver, test-e2e, test-e2e-auth,
docker-build-smoke, plus the release workflow’s check-ci, docker, and
scan jobs after tagging.
Locally verified:
pnpm --filter @pulp-engine/editor typecheck— passedpnpm --filter @pulp-engine/editor test— passednode scripts/check-version.mjs— passed after tagging
Not verified:
- Full local release rehearsal was not performed
- SQL Server runtime path and E2E suites remain CI-covered
- Docker image build not tested locally
Upgrade
No intentional API-breaking changes. All new functionality is editor-only — no server environment variables, API endpoints, or deployment topology changes.
The docs/release-v0.49.0.md file has been removed because v0.49.0 was never
tagged. Its content is absorbed into this release.
docker pull ghcr.io/troycoderboy/pulp-engine:v0.50.0
docker pull ghcr.io/troycoderboy/pulp-engine-worker:v0.50.0
docker pull ghcr.io/troycoderboy/pulp-engine-controller:v0.50.0