Pulp Engine Document Rendering
Get started
Release v0.50.0

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:

  • Comparisonfield == value (six operators)
  • Arithmeticfield * quantity (four operators)
  • Concatenation — multiple field/literal segments
  • Ternarycondition ? 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 all pnpm audit findings
  • 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/ready includes renderer status alongside storage and asset binary checks
  • pulp_engine_renderer_status Prometheus metric for render-path health
  • compose.container.yaml API healthcheck now uses /health/ready
  • validate-deploy.sh reports renderer readiness status

9. CI release-gate fix

  • ci.yml now fetches tags before running check-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 — passed
  • pnpm --filter @pulp-engine/editor test — passed
  • node 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