Skip to content

v1.2.0

Choose a tag to compare

@carbogninalberto carbogninalberto released this 22 Jan 22:18
· 10 commits to main since this release

Security

  • fix(security): set body limit to 50mb to prevents memory exhaustion from oversized payloads
  • fix(security): replace shell cleanup with node fs apis that eliminates command injection
    surface
  • fix(security): sanitize error responses, strips stack traces and internals from
    client-facing errors
  • fix(security): validate locale input

Performance

  • fix(performance): parallelize page reset, runs cleanup operations concurrently between
    renders
  • fix(performance): optimize sharp pipeline, reduces unnecessary buffer copies in image
    processing
  • fix(performance): add html capture resource cache, avoids redundant network requests for
    repeated resources
  • fix(performance): fix video double io, eliminates redundant file read/write in video
    capture
  • fix(performance): remove single-process chrome flag

Memory

  • fix(memory): free screenshot buffer after sharp init
  • fix(memory): aggressive page reset, clears page state more thoroughly to prevent leaks
  • fix(memory): add 500mb html capture limit, prevents OOM on large pages
  • fix(memory): fix video file orphaning, ensures temp files are cleaned up
  • fix(memory): fix video deletion race condition
  • fix(memory): reduce capture function params
  • fix(memory): lazy-load cookie constants

Scalability

  • fix(scalability): dynamic pool sizing, adjusts browser pool based on system resources
  • fix(scalability): configurable recycling thresholds, environment variable driven instance
    recycling
  • fix(scalability): block startup until warmup, gates requests until pool is ready

Code Quality

  • fix(code): consistent error handling, unified error handling across all render types
  • fix(code): handle in-flight requests on shutdown
  • fix(code): add shutdown timeout
  • fix(code): fix validation error parsing
  • fix(code): handle malformed json in get config
  • fix(code): extract magic numbers to constants
  • fix(code): remove unused cache properties
  • fix(config): env-var driven configuration
  • fix(code): structured logging with pino
  • docs: add comprehensive jsdoc

Refactoring

  • refactor(browser-pool): remove dynamic scaling logic and related properties
  • refactor(browser-pool): remove shutdown handler and improve promise handling

Testing

  • feat(unit tests): add comprehensive unite test suite for rendering and browser pool
    functionality
  • feat(tests): implement end-to-end tests for API rendering and add new test configurations, validates output format correctness via magic bytes (PNG, JPEG, WebP, PDF, MP4)
  • feat(ci): add GitHub Actions workflow for unit and end-to-end testing, runs on every push with 95% coverage gate and Docker-based E2E

Dependencies

  • chore(deps): update dependencies in package.json and package-lock.json
  • chore(deps): add @vitest/coverage-v8 and update package.json scripts for coverage testing