# Changelog All notable changes to this project will be documented in this file. The format is based on **[Keep a Changelog](https://keepachangelog.com/en/1.1.0/)**, and this project adheres to **[Semantic Versioning](https://semver.org/spec/v2.0.0.html)**. --- ## [Unreleased] - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.3.3] - 2026-06-28 - **Added** - (placeholder) - **Changed** - Refreshed the published `@plasius/gpu-shared` and `@plasius/gpu-lock-free-queue` dependencies to their latest released versions. - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.3.2] - 2026-06-22 - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.3.1] - 2026-06-22 - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.3.0] - 2026-06-17 - **Added** - Added ADR-0009 documenting drain-until-empty worker invocation semantics for queue-backed GPU execution. - **Changed** - Changed the published worker WGSL entry point so each invocation keeps dequeuing runnable jobs until the queue is empty by default. - Added the `WORKER_MAX_JOBS_PER_INVOCATION` WGSL override constant so callers can optionally bound per-invocation work. - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.2.1] - 2026-06-17 - **Added** - Added `createWavefrontRendererPassManifest(...)` and `wavefrontRendererStageFamilies` for queue-backed wavefront renderer pass DAGs, including BVH leaf sorting/materialization, BVH build levels, breadth-first bounce stages, accumulation, and denoise joins. - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.16] - 2026-06-01 - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.15] - 2026-05-13 - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.14] - 2026-05-13 - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.13] - 2026-04-02 - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.12] - 2026-03-23 - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.11] - 2026-03-15 - **Added** - ADR, TDR, and test-first planning coverage for snapshot-driven scene-preparation DAG manifests in the ray-tracing-first world pipeline. - Added `createScenePreparationManifest(...)` plus scene-preparation representation-band and stage-family exports for snapshot-driven chunk DAG planning. - Added contract tests covering stable snapshot roots, multi-chunk priority lanes, local joins, and render-preparation safety guards. - **Changed** - TDR-0004 now reflects the implemented scene-preparation manifest helper. - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.10] - 2026-03-14 - **Added** - (placeholder) - **Changed** - DAG queue guidance now treats package manifests as explicit multi-root DAG node definitions with priority-lane mapping, rather than loose dependency hints. - Raised the minimum `@plasius/gpu-lock-free-queue` dependency to `^0.2.14` so published installs resolve the new DAG graph metadata through npm. - Updated GitHub Actions workflows to run JavaScript actions on Node 24, refreshed core workflow action versions, and switched Codecov uploads to the Codecov CLI. - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.9] - 2026-03-13 - **Added** - ADR and TDR guidance describing `@plasius/gpu-worker` as the preferred discrete execution plane for current and future `@plasius/gpu-*` compute packages. - Design documentation for multi-package worker coordination and future effect package expansion. - Optional `createWorkerLoop` telemetry hooks for dispatch samples and per-tick summaries with shared `frameId` correlation support. - `queueMode: "dag"` support for loading and assembling against multi-root DAG-ready queue helpers from `@plasius/gpu-lock-free-queue`. - ADR, TDR, and design documentation for flat versus DAG queue assembly contracts. - **Changed** - README guidance now points package authors toward worker-job manifests, `@plasius/gpu-performance` budget coordination, and optional `@plasius/gpu-debug` instrumentation. - Worker assembly now guarantees a `complete_job(job_index)` hook is present so flat and DAG queue assets share the same worker completion path. - Queue package resolution now uses the published npm release `@plasius/gpu-lock-free-queue@^0.2.13` instead of the temporary GitHub fallback. - Updated patch-level eslint tooling to the latest versions allowed by the current semver ranges. - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.8] - 2026-03-04 - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.4] - 2026-03-01 - **Added** - `lint`, `typecheck`, and security audit scripts for local and CI enforcement. - **Changed** - CI now fails early on lint/typecheck/runtime dependency audit before build/test. - **Fixed** - Pack-check regex cleanup to remove an unnecessary path escape. - **Security** - Runtime dependency vulnerability checks are now enforced in CI. ## [0.1.3] - 2026-02-28 - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.2] - 2026-01-24 - **Added** - `loadJobWgsl` to register multiple job WGSL modules and receive `job_type` ids. - Job-aware `assembleWorkerWgsl` that appends registered jobs and generates a dispatch wrapper. - Optional debug mode for WGSL identifier clash detection during assembly. - `loadQueueWgsl` helper that can apply queue compatibility renames during load. - `createWorkerLoop` helper to drive worker/job compute dispatch at max or throttled rates. - Demo denoise job WGSL (`demo/jobs/denoise.wgsl`) with a compute pass + present shader. - Temporal denoise history buffer in the demo to stabilize jittered lighting. - **Changed** - Demo visuals now render a campfire scene with deferred lighting (G-buffer + fullscreen lighting pass). - Demo now builds per-type worklists from queue jobs and uses indirect draws for render jobs alongside physics jobs. - `src/worker.wgsl` is now a minimal worker template; demo kernels live in `demo/jobs/*.wgsl`. - Demo job shaders are split into `demo/jobs/common.wgsl`, `demo/jobs/physics.job.wgsl`, and `demo/jobs/render.job.wgsl`. - Demo lighting sampling now uses screen-space jitter to avoid world-space banding artifacts. - `assembleWorkerWgsl` can now consume a registry or explicit job list and emit a dispatching `process_job`. - `assembleWorkerWgsl` now applies queue compatibility renames (e.g., `JobMeta` -> `JobDesc`) by default. - **Fixed** - Reduced diagonal banding artifacts in the demo lighting pass. - **Security** - (placeholder) ## [0.1.1] - 2026-01-23 - **Added** - `assembleWorkerWgsl` now accepts optional queue WGSL overrides for local demos. - **Changed** - Demo now simulates millions of instanced objects with range checks, bounding spheres/AABBs, and face contact stats. - **Breaking:** Queue bindings updated to remove the payload arena and use payload offsets into caller-managed buffers. - Demo updated to match the new payload-handle layout. - **Breaking:** Queue bindings now use job metadata and a variable-size payload arena. - Worker job payloads are read from the output payload buffer using `output_stride`. - Demo updated to emit job metadata and payload buffers. - **Fixed** - Demo can load a local queue WGSL to avoid mismatched dependency versions. - **Security** - (placeholder) ## [0.1.0] - 2026-01-22 - **Added** - (placeholder) - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) ## [0.1.0-beta.1] - 2026-01-22 - **Added** - Unit tests for WGSL loading/assembly with coverage output for CI. - **Changed** - Build outputs now ship as ESM and CJS bundles with the WGSL asset in `dist/`. - **Fixed** - CJS builds no longer warn on `import.meta` when resolving `worker.wgsl`. - **Security** - (placeholder) ## [0.1.0-beta.1] - **Added** - Initial beta release with lock-free GPU job queue integration. - WGSL worker module and helper utilities. - Ray tracing demo. --- ## Release process (maintainers) 1. Update `CHANGELOG.md` under **Unreleased** with user-visible changes. 2. Bump version in `package.json` following SemVer (major/minor/patch). 3. Move entries from **Unreleased** to a new version section with the current date. 4. Tag the release in Git (`vX.Y.Z`) and push tags. 5. Publish to npm (via CI/CD or `npm publish`). > Tip: Use Conventional Commits in PR titles/bodies to make changelog updates easier. --- [Unreleased]: https://github.com/Plasius-LTD/gpu-worker/compare/v0.3.3...HEAD [0.1.0-beta.1]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.0-beta.1 [0.1.0]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.0 [0.1.2]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.2 ## [0.1.2] - 2026-02-11 - **Added** - Initial release. - **Changed** - (placeholder) - **Fixed** - (placeholder) - **Security** - (placeholder) [0.1.3]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.3 [0.1.4]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.4 [0.1.8]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.8 [0.1.9]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.9 [0.1.10]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.10 [0.1.11]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.11 [0.1.12]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.12 [0.1.13]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.13 [0.1.14]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.14 [0.1.15]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.15 [0.1.16]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.1.16 [0.3.0]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.3.0 [0.3.1]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.3.1 [0.3.2]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.3.2 [0.3.3]: https://github.com/Plasius-LTD/gpu-worker/releases/tag/v0.3.3