Pulp Engine Document Rendering
Get started
Release v0.52.1

Release v0.52.1

Date: 2026-04-04

Dev toolchain major version upgrades: ESLint 10 and TypeScript 6.


Changed

ESLint 9 → 10

  • eslint 9.39.4 → 10.2.0, @eslint/js 9.39.4 → 10.0.1
  • ESLint 10’s new preserve-caught-error recommended rule flagged 5 catch-and-rethrow sites that discarded the original error. All now attach { cause } for proper error chain preservation.
  • eslint-plugin-react-hooks 7.0.1 does not yet declare ESLint 10 in its peer range. A scoped peerDependencyRules override (^10) suppresses the warning until the plugin publishes an update.

TypeScript 5 → 6

  • typescript 5.9.3 → 6.0.2 across root and all 10 workspace packages.
  • tsconfig.base.json: added "types": ["node"] (TS6 defaults types to []), removed esModuleInterop and allowSyntheticDefaultImports (always-on in TS6).
  • apps/editor/e2e/tsconfig.json: migrated off deprecated "moduleResolution": "node""bundler".
  • apps/editor test: replaced global.URL with globalThis.URL (TS6 types: [] default removed Node ambient global from browser configs).
  • apps/api test: added explicit Promise<never> return type on a throwing override (TS6 stricter return-type inference).
  • @types/node added as explicit root devDependency (previously relied on transitive hoisting from apps/api).

Other

  • Warmup crash resilience: buildServer now catches a rejected warmup() promise instead of letting it crash the process. New test (s-c2) covers this path.
  • CI: added PULP_ENGINE_DISABLE_SANDBOX and PUPPETEER_EXECUTABLE_PATH for GitHub Actions Linux runners.
  • Test guards: afterAll hooks in schema validation tests now check app exists before cleanup.
  • Removed stale package-lock.json (repo uses pnpm exclusively).

Upgrade notes

  • Node.js requirement: ESLint 10 requires ^20.19.0 || ^22.13.0 || >=24.0.0. CI and Docker use Node 22.
  • No application behaviour changes. All changes are dev-toolchain and test infrastructure.