### CHANGELOG # 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.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## Unreleased ## [0.14.13] - 2026-06-23 ### Added - Add `WIREIT_WATCH=true` as an environment-variable escape hatch for enabling watch mode when a package runner does not forward `--watch`. ### Fixed - HTTP errors from the GitHub Actions cache service are no longer ever fatal, and should always continue gracefully with GitHub Actions caching temporarily disabled (previously only network errors and HTTP 429/503 errors failed gracefully). ## [0.14.12] - 2025-04-10 ### Fixed - Updated GitHub Actions caching to support its new v2 backend. See [#1297](https://github.com/google/wireit/issues/1297) and https://github.blog/changelog/2025-03-20-notification-of-upcoming-breaking-changes-in-github-actions/#decommissioned-cache-service-brownouts for background. ## [0.14.11] - 2025-02-07 ### Changed - Added `"wireit-"` prefix to GitHub Actions cache keys so that they can be identified more easily. ## [0.14.10] - 2025-01-28 ### Fixed - Fix a bug that may have resulted in Wireit attempting to open too many files at once (no known reports). - When an unexpected error occurs, the specific script that failed is now reported by the logger, instead of the less-useful entry-point script. - When an output file is deleted during output manifest generation, a more useful error message is reported instead of an unexpected error. ## [0.14.9] - 2024-09-03 ### Added - Add support for forcing the use of filesystem polling instead of OS events in watch mode. Set the environment variable `WIREIT_WATCH_STRATEGY=poll`, and optionally `WIREIT_WATCH_POLL_MS` (default `500`). ## [0.14.8] - 2024-08-22 ### Added - Added support for `node --run`, available in Node 22 and above (see https://nodejs.org/en/blog/announcements/v22-release-announce#running-packagejson-scripts). ## [0.14.7] - 2024-08-05 - When GitHub caching fails to initialize, more information is now shown about the error, and it is no longer fatal. ## [0.14.6] - 2024-08-05 ### Added - Added support for the `v2` version of the `google/wireit@setup-github-actions-caching` action, which provides improved security. All users are advised to upgrade to `google/wireit@setup-github-actions-caching/v2`. ## [0.14.5] - 2024-07-08 ### Fixed - Wireit will now shut down its child processes gracefully when receiving `SIGTERM`. Previously only `SIGINT` was listened for. ### Changed - Updated `engines` in `package.json` so that users of Node 16 and 17 will get install warnings (consistent with `0.13.0` which already raised the minimum supported version to Node 18). - Replaced `braces` dependency with smaller `brace-expansion` dependency. ## [0.14.4] - 2024-01-26 ### Fixed - When listing a symlink that points to a directory in `output` files, the symlink will now be directly cached as a symlink, instead of its children being cached. This also fixes an `file already exists, symlink` exception that could occur in the same situation. ## [0.14.3] - 2024-01-10 ### Fixed - Handle missing file errors thrown while trying to fingerprint an input file with a graceful abort. ## [0.14.2] - 2024-01-10 ### Added - Added a `default` option to the `env` setting for externally-provided environment variables to use when no value is provided. ### Changed - The default logger for non-interactive environments has been switched to the 'quiet-ci' logger. - The local cache strategy will now create copy-on-write files when supported. This can improve performance when copying output files either into the cache or restoring from out of it, as the files' underlying data doesn't need to be copied, only filesystem metadata. - Unhandled exceptions will now be handled more gracefully. ## [0.14.1] - 2023-10-20 ### Fixed - Fix our `npx wireit` detection so we continue to give a good error message with the latest version of `npm` when wireit is run this way. - Fix a bug where wireit would hang with an empty spinner after being killed with CTRL-C when running a service whose dependencies were still starting. ## [0.14.0] - 2023-09-12 ### Changed - The default logger has switched from 'simple'. It's 'quiet-ci' if the environment variable `CI` is set, otherwise it's 'quiet'. To switch back, set the environment variable WIREIT_LOGGER to 'simple'. ### Fixed - More reliably handle and report diagnostics for scripts with invalid configurations. Specifically fixed https://github.com/google/wireit/issues/803. - Gracefully handle errors from the GitHub download cache API. ## [0.13.0] - 2023-09-01 ### Changed - **[BREAKING]** Node 14 and Node 16 are no longer supported. Node 14 is past its end of life and Node 16 will be shortly. See the Node Release Schedule here:https://github.com/nodejs/Release#release-schedule. Node 18 will be supported until April 2025. ## [0.12.0] - 2023-09-01 ## Added - Added a `quiet-ci` logger with output optimized for non-interactive environments, like a continuous integration builder (e.g. GitHub Actions). Writes less often, doesn't show a spinner, doesn't use \r to try to writeover previous output, and only prints a new status line if there's been a change. ## Fixed - Don't write to Symbol.dispose if it's already present, as that throws an error if there's a native implementation. This fixes wireit in Node v20. ## [0.11.0] - 2023-08-30 ## Added - The `WIREIT_LOGGER` environment variable can now be used to control the system that writes output the the command line. - Added a new `quiet` logger that writes a single continuously updating line summarizing progress, and only passes along stdout and stderr from commands if there's a failure. ## [0.10.0] - 2023-07-10 ### Added - Added tracking of metrics for successful script executions. Metrics are emitted at the end of each run where at least one successful execution occurred. - Wireit now limits its number of file descriptors. This is to prevent crashes, and the default value of 200 should be high enough not to regress performance. Set the WIREIT_MAX_OPEN_FILES env variable to override the default. ## [0.9.5] - 2023-02-06 ### Changed - Better attribute socket errors, and don't crash when a socket is closed unexpectedly. ### Fixed - Fixed infinite loops that could occur in watch mode when a script failed, but still emitted output that was configured as the input files for another script. - Don't clear the console or emit "no-op" style log messages in watch mode for iterations that don't do anything useful. ## [0.9.4] - 2023-01-30 ### Changed - It is now allowed to define a wireit script without a corresponding entry in the `scripts` section. Such scripts cannot be directly invoked with `npm run