mirror of
https://github.com/unraid/api.git
synced 2025-12-31 05:29:48 -06:00
345e83bfb0904381d784fc77b3dcd3ad7e53d898
356 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
345e83bfb0 |
feat: upgrade nuxt-custom-elements (#1461)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added new modal dialogs and UI components, including activation steps, OS update feedback, and expanded notification management. * Introduced a plugin to configure internationalization, state management, and Apollo client support in web components. * Added a new Log Viewer page with a streamlined interface for viewing logs. * **Improvements** * Centralized Pinia state management by consolidating all stores to use a shared global Pinia instance. * Simplified component templates by removing redundant internationalization host wrappers. * Enhanced ESLint configuration with stricter rules and global variable declarations. * Refined custom element build process to prevent jQuery conflicts and optimize minification. * Updated component imports and templates for consistent structure and maintainability. * Streamlined log viewer dropdowns using simplified select components with improved formatting. * Improved notification sidebar with filtering by importance and modular components. * Replaced legacy notification popups with new UI components and added automatic root session creation for localhost requests. * Updated OS version display and user profile UI with refined styling and component usage. * **Bug Fixes** * Fixed component tag capitalization and improved type annotations across components. * **Chores** * Updated development dependencies including ESLint plugins and build tools. * Removed deprecated log viewer patch class and cleaned up related test fixtures. * Removed unused imports and simplified Apollo client setup. * Cleaned up test mocks and removed obsolete i18n host component tests. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1210730229632804 --------- Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com> Co-authored-by: Zack Spear <zackspear@users.noreply.github.com> |
||
|
|
f542c8e0bd |
fix: parsing of ssoEnabled in state.php (#1455)
read `ssoSubIds` in state.php from `api.json` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a new query to check if Single Sign-On (SSO) is enabled. * Updated UI components to dynamically reflect SSO availability via live data. * **Refactor** * Streamlined internal handling of SSO status detection for improved reliability and maintainability. * **Tests** * Enhanced tests for SSO button behavior with mocked live data and added edge case coverage for SSO callback handling. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
038c582aed |
fix: flash backup integration with Unraid Connect config (#1448)
read `username` from connect.json & drop minigraphConnected check --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1210592838407162 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved reliability of configuration file handling for backup and API features. * Resolved potential false negatives when checking connection status by updating connection verification logic. * **Chores** * Centralized configuration paths for easier future updates. * Minor formatting improvements for better readability. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
3cfe9fe9ee |
build: replace hash with build increment in slackware txz pkg (#1449)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Introduced support for specifying and propagating a build number throughout the build process, including command-line options and workflow inputs. * TXZ package naming and URLs now include the build number for improved traceability. * **Improvements** * Enhanced robustness in locating TXZ files with improved fallback logic, especially in CI environments. * Improved flexibility and validation of environment schema for plugin builds. * **Style** * Minor formatting corrections for consistency and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1210677942019563 |
||
|
|
e539d7f603 |
chore: remove rclone (#1447)
since unraid will ship with it natively, starting at 7.2. rclone support is not planned for earlier releases. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Removed an unnecessary step from the build process, streamlining operations. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
a8566e9e5a |
build: fix doinst.sh compatibility with installpkg --root (#1446)
- Isolate plugin concerns into `.plg` plugin & api file modifiers instead of the api's slackware package. ## Summary by CodeRabbit * **New Features** * Installation process modularized into package installation, post-install setup with verification, and service startup with cleanup. * Added logging and error detection during installation, including symlink verification. * Created required log directory to support service dependencies. * Integrated nginx service with reload capability triggered by configuration changes. * Added automatic patching of nginx configuration and hosts file to improve security and iframe compatibility. * Enhanced file modification system to handle side effects and trigger nginx reloads as needed. * **Refactor** * Restructured installation scripts for clarity; setup scripts now separate steps. * Removed legacy installation logic and deprecated related scripts. * Enabled hard link addition during package creation. * Simplified installation scripts by removing conditional branching and detailed logging. * Streamlined API environment setup by removing redundant post-install steps. * Updated dependency injection to explicitly provide nginx service token. * Improved patch application error reporting with file path details. * **Chores** * Disabled legacy scripts to streamline installation. * Removed `.gitignore` to track previously ignored files. * Updated tests to include new dependencies and relaxed logger assertions. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1210661184127051 |
||
|
|
5ba4479663 |
chore: rm obsolete style block from myservers1.php (#1435)
Complement to https://github.com/unraid/webgui/pull/2270 Compared our dynamix.my.servers with the webgui's and made the corresponding changes. activation code logic was omitted because it has already been written into the api. python script used for comparison: https://gist.github.com/pujitm/43a4d2fc35c74f51c70cc66fe1909e6c ```py #!/usr/bin/env python3 """ Directory comparison script that recursively compares two directories and shows files that exist in one but not the other, plus diffs for common files. """ import os import sys import subprocess from pathlib import Path from typing import Set, Tuple def get_all_files(directory: str) -> Set[str]: """Get all files in a directory recursively, returning relative paths.""" files = set() dir_path = Path(directory) if not dir_path.exists(): print(f"Error: Directory '{directory}' does not exist") return files for root, dirs, filenames in os.walk(directory): for filename in filenames: full_path = Path(root) / filename # Get relative path from the base directory relative_path = full_path.relative_to(dir_path) files.add(str(relative_path)) return files def compare_directories(dir1: str, dir2: str) -> Tuple[Set[str], Set[str], Set[str]]: """ Compare two directories and return files in each directory. Returns: - files only in dir1 - files only in dir2 - files in both directories """ files1 = get_all_files(dir1) files2 = get_all_files(dir2) only_in_dir1 = files1 - files2 only_in_dir2 = files2 - files1 in_both = files1 & files2 return only_in_dir1, only_in_dir2, in_both def run_diff(file1_path: str, file2_path: str, relative_path: str) -> bool: """ Run diff on two files and print the output. Returns True if files are different, False if identical. """ try: # Use diff -u for unified diff format result = subprocess.run( ['diff', '-u', file1_path, file2_path], capture_output=True, text=True ) if result.returncode == 0: # Files are identical return False elif result.returncode == 1: # Files are different print(f"\n--- Diff for: {relative_path} ---") print(result.stdout) return True else: # Error occurred print(f"\nError running diff on {relative_path}: {result.stderr}") return False except FileNotFoundError: print(f"\nError: 'diff' command not found. Please install diffutils.") return False except Exception as e: print(f"\nError comparing {relative_path}: {e}") return False def compare_file_contents(dir1: str, dir2: str, common_files: Set[str]) -> Tuple[int, int]: """ Compare contents of files that exist in both directories. Returns (identical_count, different_count). """ identical_count = 0 different_count = 0 print(f"\nComparing contents of {len(common_files)} common files...") print("=" * 60) for relative_path in sorted(common_files): file1_path = os.path.join(dir1, relative_path) file2_path = os.path.join(dir2, relative_path) if run_diff(file1_path, file2_path, relative_path): different_count += 1 else: identical_count += 1 return identical_count, different_count def main(): if len(sys.argv) < 3: print("Usage: python compare_directories.py <directory1> <directory2> [--no-diff]") print("Example: python compare_directories.py /path/to/dir1 /path/to/dir2") print("Use --no-diff to skip content comparison") sys.exit(1) dir1 = sys.argv[1] dir2 = sys.argv[2] skip_diff = '--no-diff' in sys.argv print(f"Comparing directories:") print(f" Directory 1: {dir1}") print(f" Directory 2: {dir2}") print("=" * 60) only_in_dir1, only_in_dir2, in_both = compare_directories(dir1, dir2) print(f"\nFiles only in '{dir1}' ({len(only_in_dir1)} files):") if only_in_dir1: for file in sorted(only_in_dir1): print(f" - {file}") else: print(" (none)") print(f"\nFiles only in '{dir2}' ({len(only_in_dir2)} files):") if only_in_dir2: for file in sorted(only_in_dir2): print(f" - {file}") else: print(" (none)") print(f"\nFiles in both directories ({len(in_both)} files):") if in_both: for file in sorted(in_both): print(f" - {file}") else: print(" (none)") # Compare file contents if requested and there are common files identical_count = 0 different_count = 0 if not skip_diff and in_both: identical_count, different_count = compare_file_contents(dir1, dir2, in_both) print("\n" + "=" * 60) print(f"Summary:") print(f" Total files in '{dir1}': {len(only_in_dir1) + len(in_both)}") print(f" Total files in '{dir2}': {len(only_in_dir2) + len(in_both)}") print(f" Files only in '{dir1}': {len(only_in_dir1)}") print(f" Files only in '{dir2}': {len(only_in_dir2)}") print(f" Files in both: {len(in_both)}") if not skip_diff and in_both: print(f" Identical files: {identical_count}") print(f" Different files: {different_count}") if __name__ == "__main__": main() ``` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added support for extracting and displaying activation code data, including partner information and logos, when relevant. - **Style** - Removed embedded CSS styling from the server management interface header. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
68df344a4b |
fix(deps): update all non-major dependencies (#1399)
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [lucide-vue-next](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next)) | [`^0.511.0` -> `^0.519.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.511.0/0.519.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [node](https://nodejs.org) ([source](https://redirect.github.com/nodejs/node)) | `22.15.1` -> `22.16.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | minor | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.11.0` -> `10.12.1`](https://renovatebot.com/diffs/npm/pnpm/10.11.0/10.12.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | packageManager | minor | | [vuetify-nuxt-module](https://redirect.github.com/vuetifyjs/nuxt-module) | [`0.18.6` -> `0.18.7`](https://renovatebot.com/diffs/npm/vuetify-nuxt-module/0.18.6/0.18.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | --- ### Release Notes <details> <summary>lucide-icons/lucide (lucide-vue-next)</summary> ### [`v0.519.0`](https://redirect.github.com/lucide-icons/lucide/compare/0.518.0...0.519.0) [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.518.0...0.519.0) ### [`v0.518.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.518.0): Version 0.518.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.517.0...0.518.0) #### What's Changed - fix(icons): updated `egg` and `egg-off` icons by [@​jamiemlaw](https://redirect.github.com/jamiemlaw) in [https://github.com/lucide-icons/lucide/pull/3299](https://redirect.github.com/lucide-icons/lucide/pull/3299) - fix(icons): renamed `*-help` and `*-question` icons to `*-question-mark` by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/2540](https://redirect.github.com/lucide-icons/lucide/pull/2540) - chore(scripts): Refactor scripts to typescript by [@​ericfennis](https://redirect.github.com/ericfennis) in [https://github.com/lucide-icons/lucide/pull/3316](https://redirect.github.com/lucide-icons/lucide/pull/3316) - feat(icons): added `drone` icon by [@​shopped](https://redirect.github.com/shopped) in [https://github.com/lucide-icons/lucide/pull/3247](https://redirect.github.com/lucide-icons/lucide/pull/3247) #### New Contributors - [@​shopped](https://redirect.github.com/shopped) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3247](https://redirect.github.com/lucide-icons/lucide/pull/3247) **Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.517.0...0.518.0 ### [`v0.517.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.517.0): Version 0.517.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.516.0...0.517.0) #### What's Changed - feat(icons): adds `barrel` icon by [@​karsa-mistmere](https://redirect.github.com/karsa-mistmere) in [https://github.com/lucide-icons/lucide/pull/1955](https://redirect.github.com/lucide-icons/lucide/pull/1955) **Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.516.0...0.517.0 ### [`v0.516.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.516.0): Version 0.516.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.515.0...0.516.0) #### What's Changed - fix(icons): changed `stamp` icon by [@​jamiemlaw](https://redirect.github.com/jamiemlaw) in [https://github.com/lucide-icons/lucide/pull/3310](https://redirect.github.com/lucide-icons/lucide/pull/3310) - fix(icons): changed `pocket` icon by [@​jamiemlaw](https://redirect.github.com/jamiemlaw) in [https://github.com/lucide-icons/lucide/pull/3304](https://redirect.github.com/lucide-icons/lucide/pull/3304) - fix(icons): changed `mic` icon by [@​jamiemlaw](https://redirect.github.com/jamiemlaw) in [https://github.com/lucide-icons/lucide/pull/3301](https://redirect.github.com/lucide-icons/lucide/pull/3301) - fix(icons): changed `radio` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3293](https://redirect.github.com/lucide-icons/lucide/pull/3293) - fix: some typos for categories by [@​npv12](https://redirect.github.com/npv12) in [https://github.com/lucide-icons/lucide/pull/3319](https://redirect.github.com/lucide-icons/lucide/pull/3319) - perf(docs): optimize IconsOverview initial render - 50% faster load times by [@​epifaniofrancisco](https://redirect.github.com/epifaniofrancisco) in [https://github.com/lucide-icons/lucide/pull/3282](https://redirect.github.com/lucide-icons/lucide/pull/3282) - fix(docs): remove flex-direction CSS causing absolute stroke width toggle positioning issue ([#​3308](https://redirect.github.com/lucide-icons/lucide/issues/3308)) by [@​epifaniofrancisco](https://redirect.github.com/epifaniofrancisco) in [https://github.com/lucide-icons/lucide/pull/3317](https://redirect.github.com/lucide-icons/lucide/pull/3317) - feat(icons): added `wifi-cog` icon by [@​luisdlopera](https://redirect.github.com/luisdlopera) in [https://github.com/lucide-icons/lucide/pull/3133](https://redirect.github.com/lucide-icons/lucide/pull/3133) #### New Contributors - [@​npv12](https://redirect.github.com/npv12) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3319](https://redirect.github.com/lucide-icons/lucide/pull/3319) **Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.515.0...0.516.0 ### [`v0.515.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.515.0): Version 0.515.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.514.0...0.515.0) #### What's Changed - fix(icons): changed `house-plus` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3238](https://redirect.github.com/lucide-icons/lucide/pull/3238) - fix(icons): changed `radiation` icon by [@​jamiemlaw](https://redirect.github.com/jamiemlaw) in [https://github.com/lucide-icons/lucide/pull/3303](https://redirect.github.com/lucide-icons/lucide/pull/3303) - feat(icons): added `rectangle-circle` icon by [@​zefir-git](https://redirect.github.com/zefir-git) in [https://github.com/lucide-icons/lucide/pull/3245](https://redirect.github.com/lucide-icons/lucide/pull/3245) #### New Contributors - [@​zefir-git](https://redirect.github.com/zefir-git) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3245](https://redirect.github.com/lucide-icons/lucide/pull/3245) **Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.514.0...0.515.0 ### [`v0.514.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.514.0): Version 0.514.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.513.0...0.514.0) #### What's Changed - fix(icons): changed `trophy` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/2475](https://redirect.github.com/lucide-icons/lucide/pull/2475) - fix(pull-request-icon-preview): pinned and --forced svgson installati… by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3289](https://redirect.github.com/lucide-icons/lucide/pull/3289) - chore(metadata): added tag to `bandage` icon by [@​jamiemlaw](https://redirect.github.com/jamiemlaw) in [https://github.com/lucide-icons/lucide/pull/3300](https://redirect.github.com/lucide-icons/lucide/pull/3300) - fix(icons): changed `settings-2` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/2974](https://redirect.github.com/lucide-icons/lucide/pull/2974) - fix(docs): [#​2984](https://redirect.github.com/lucide-icons/lucide/issues/2984) absoluteStrokeWidth not resetting with Reset button by [@​epifaniofrancisco](https://redirect.github.com/epifaniofrancisco) in [https://github.com/lucide-icons/lucide/pull/3261](https://redirect.github.com/lucide-icons/lucide/pull/3261) - feat(icons): added book-alert icon by [@​domasmark](https://redirect.github.com/domasmark) in [https://github.com/lucide-icons/lucide/pull/3249](https://redirect.github.com/lucide-icons/lucide/pull/3249) #### New Contributors - [@​domasmark](https://redirect.github.com/domasmark) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3249](https://redirect.github.com/lucide-icons/lucide/pull/3249) **Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.513.0...0.514.0 ### [`v0.513.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.513.0): Version 0.513.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.512.0...0.513.0) #### What's Changed - feat(icons): Add sim card icon from lab by [@​ericfennis](https://redirect.github.com/ericfennis) in [https://github.com/lucide-icons/lucide/pull/3275](https://redirect.github.com/lucide-icons/lucide/pull/3275) **Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.512.0...0.513.0 ### [`v0.512.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.512.0): Version 0.512.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.511.0...0.512.0) #### What's Changed - feat(icons): added `circle-pound-sterling` icon by [@​lieonlion](https://redirect.github.com/lieonlion) in [https://github.com/lucide-icons/lucide/pull/2822](https://redirect.github.com/lucide-icons/lucide/pull/2822) - build(deps-dev): bump vite from 6.3.2 to 6.3.4 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/lucide-icons/lucide/pull/3181](https://redirect.github.com/lucide-icons/lucide/pull/3181) - docs(docs): added testing website locally instructions by [@​briz123](https://redirect.github.com/briz123) in [https://github.com/lucide-icons/lucide/pull/3124](https://redirect.github.com/lucide-icons/lucide/pull/3124) - build(deps-dev): bump vite from 6.0.7 to 6.1.6 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/lucide-icons/lucide/pull/3236](https://redirect.github.com/lucide-icons/lucide/pull/3236) - fix(icons): changed `square-check-big` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3156](https://redirect.github.com/lucide-icons/lucide/pull/3156) - fix(icons): changed `list-collapse` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3081](https://redirect.github.com/lucide-icons/lucide/pull/3081) - fix(icons): changed `battery-*` icons by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3083](https://redirect.github.com/lucide-icons/lucide/pull/3083) - fix(icons): changed `paperclip` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/2956](https://redirect.github.com/lucide-icons/lucide/pull/2956) - fix(icons): changed `eraser` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3076](https://redirect.github.com/lucide-icons/lucide/pull/3076) - feat(icons): Add `cloud-check` icon by [@​lscheibel](https://redirect.github.com/lscheibel) in [https://github.com/lucide-icons/lucide/pull/2612](https://redirect.github.com/lucide-icons/lucide/pull/2612) - feat(icon): add `id-card-lanyard` icon by [@​python2911](https://redirect.github.com/python2911) in [https://github.com/lucide-icons/lucide/pull/2898](https://redirect.github.com/lucide-icons/lucide/pull/2898) - feat(angular): update peer dependencies for Angular to support version 20.x by [@​JeevanMahesha](https://redirect.github.com/JeevanMahesha) in [https://github.com/lucide-icons/lucide/pull/3273](https://redirect.github.com/lucide-icons/lucide/pull/3273) - fix(icons): changed `file-badge` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/2934](https://redirect.github.com/lucide-icons/lucide/pull/2934) - feat(icons): added `grid-3x2` icon by [@​qubrat](https://redirect.github.com/qubrat) in [https://github.com/lucide-icons/lucide/pull/3216](https://redirect.github.com/lucide-icons/lucide/pull/3216) #### New Contributors - [@​lieonlion](https://redirect.github.com/lieonlion) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2822](https://redirect.github.com/lucide-icons/lucide/pull/2822) - [@​python2911](https://redirect.github.com/python2911) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2898](https://redirect.github.com/lucide-icons/lucide/pull/2898) - [@​JeevanMahesha](https://redirect.github.com/JeevanMahesha) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3273](https://redirect.github.com/lucide-icons/lucide/pull/3273) - [@​qubrat](https://redirect.github.com/qubrat) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3216](https://redirect.github.com/lucide-icons/lucide/pull/3216) **Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.511.0...0.512.0 </details> <details> <summary>nodejs/node (node)</summary> ### [`v22.16.0`](https://redirect.github.com/nodejs/node/releases/tag/v22.16.0): 2025-05-21, Version 22.16.0 'Jod' (LTS), @​aduh95 [Compare Source](https://redirect.github.com/nodejs/node/compare/v22.15.1...v22.16.0) ##### Notable Changes - \[[`c3ceaebb7a`](https://redirect.github.com/nodejs/node/commit/c3ceaebb7a)] - **deps**: update timezone to 2025b (Node.js GitHub Bot) [#​57857](https://redirect.github.com/nodejs/node/pull/57857) - \[[`5059a746ec`](https://redirect.github.com/nodejs/node/commit/5059a746ec)] - **doc**: add dario-piotrowicz to collaborators (Dario Piotrowicz) [#​58102](https://redirect.github.com/nodejs/node/pull/58102) - \[[`c8ceaaf397`](https://redirect.github.com/nodejs/node/commit/c8ceaaf397)] - **(SEMVER-MINOR)** **doc**: graduate multiple experimental apis (James M Snell) [#​57765](https://redirect.github.com/nodejs/node/pull/57765) - \[[`e21b37d9df`](https://redirect.github.com/nodejs/node/commit/e21b37d9df)] - **(SEMVER-MINOR)** **esm**: graduate import.meta properties (James M Snell) [#​58011](https://redirect.github.com/nodejs/node/pull/58011) - \[[`832640c35e`](https://redirect.github.com/nodejs/node/commit/832640c35e)] - **(SEMVER-MINOR)** **esm**: support top-level Wasm without package type (Guy Bedford) [#​57610](https://redirect.github.com/nodejs/node/pull/57610) - \[[`c510391d2f`](https://redirect.github.com/nodejs/node/commit/c510391d2f)] - **(SEMVER-MINOR)** **sqlite**: add StatementSync.prototype.columns() (Colin Ihrig) [#​57490](https://redirect.github.com/nodejs/node/pull/57490) - \[[`5d1230bec0`](https://redirect.github.com/nodejs/node/commit/5d1230bec0)] - **(SEMVER-MINOR)** **src**: set default config as `node.config.json` (Marco Ippolito) [#​57171](https://redirect.github.com/nodejs/node/pull/57171) - \[[`30bb1ccbb0`](https://redirect.github.com/nodejs/node/commit/30bb1ccbb0)] - **(SEMVER-MINOR)** **src**: create `THROW_ERR_OPTIONS_BEFORE_BOOTSTRAPPING` (Marco Ippolito) [#​57016](https://redirect.github.com/nodejs/node/pull/57016) - \[[`0350c6f478`](https://redirect.github.com/nodejs/node/commit/0350c6f478)] - **(SEMVER-MINOR)** **src**: add config file support (Marco Ippolito) [#​57016](https://redirect.github.com/nodejs/node/pull/57016) - \[[`e1d3a9e192`](https://redirect.github.com/nodejs/node/commit/e1d3a9e192)] - **(SEMVER-MINOR)** **src**: add ExecutionAsyncId getter for any Context (Attila Szegedi) [#​57820](https://redirect.github.com/nodejs/node/pull/57820) - \[[`0ec912f452`](https://redirect.github.com/nodejs/node/commit/0ec912f452)] - **(SEMVER-MINOR)** **stream**: preserve AsyncLocalStorage context in finished() (Gürgün Dayıoğlu) [#​57865](https://redirect.github.com/nodejs/node/pull/57865) - \[[`43490c8797`](https://redirect.github.com/nodejs/node/commit/43490c8797)] - **(SEMVER-MINOR)** **util**: add `types.isFloat16Array()` (Livia Medeiros) [#​57879](https://redirect.github.com/nodejs/node/pull/57879) - \[[`dda6ca9172`](https://redirect.github.com/nodejs/node/commit/dda6ca9172)] - **(SEMVER-MINOR)** **worker**: add worker.getHeapStatistics() (Matteo Collina) [#​57888](https://redirect.github.com/nodejs/node/pull/57888) ##### Commits - \[[`4252dc798c`](https://redirect.github.com/nodejs/node/commit/4252dc798c)] - **assert**: support `Float16Array` in loose deep equality checks (Livia Medeiros) [#​57881](https://redirect.github.com/nodejs/node/pull/57881) - \[[`1c7396b078`](https://redirect.github.com/nodejs/node/commit/1c7396b078)] - **assert,util**: fix constructor lookup in deep equal comparison (Ruben Bridgewater) [#​57876](https://redirect.github.com/nodejs/node/pull/57876) - \[[`1ded5f25c8`](https://redirect.github.com/nodejs/node/commit/1ded5f25c8)] - **assert,util**: improve deep object comparison performance (Ruben Bridgewater) [#​57648](https://redirect.github.com/nodejs/node/pull/57648) - \[[`696b5f85ca`](https://redirect.github.com/nodejs/node/commit/696b5f85ca)] - **assert,util**: improve unequal number comparison performance (Ruben Bridgewater) [#​57619](https://redirect.github.com/nodejs/node/pull/57619) - \[[`775ee4d40f`](https://redirect.github.com/nodejs/node/commit/775ee4d40f)] - **assert,util**: improve array comparison (Ruben Bridgewater) [#​57619](https://redirect.github.com/nodejs/node/pull/57619) - \[[`3766992ba4`](https://redirect.github.com/nodejs/node/commit/3766992ba4)] - **benchmark**: add sqlite prepare select get (Vinícius Lourenço) [#​58040](https://redirect.github.com/nodejs/node/pull/58040) - \[[`8390276be3`](https://redirect.github.com/nodejs/node/commit/8390276be3)] - **benchmark**: add sqlite prepare select all (Vinícius Lourenço) [#​58040](https://redirect.github.com/nodejs/node/pull/58040) - \[[`6a9b79e5c1`](https://redirect.github.com/nodejs/node/commit/6a9b79e5c1)] - **benchmark**: add sqlite is transaction (Vinícius Lourenço) [#​58040](https://redirect.github.com/nodejs/node/pull/58040) - \[[`f689f98344`](https://redirect.github.com/nodejs/node/commit/f689f98344)] - **benchmark**: add sqlite prepare insert (Vinícius Lourenço) [#​58040](https://redirect.github.com/nodejs/node/pull/58040) - \[[`14a82804d7`](https://redirect.github.com/nodejs/node/commit/14a82804d7)] - **benchmark**: disambiguate `filename` and `dirname` read perf (Antoine du Hamel) [#​58056](https://redirect.github.com/nodejs/node/pull/58056) - \[[`e7e8256d35`](https://redirect.github.com/nodejs/node/commit/e7e8256d35)] - **buffer**: avoid creating unnecessary environment (Yagiz Nizipli) [#​58053](https://redirect.github.com/nodejs/node/pull/58053) - \[[`d7d8e8e994`](https://redirect.github.com/nodejs/node/commit/d7d8e8e994)] - **buffer**: define global v8::CFunction objects as const (Mert Can Altin) [#​57676](https://redirect.github.com/nodejs/node/pull/57676) - \[[`f37633e85a`](https://redirect.github.com/nodejs/node/commit/f37633e85a)] - **build**: use `$(BUILDTYPE)` when cleaning coverage files (Aviv Keller) [#​57995](https://redirect.github.com/nodejs/node/pull/57995) - \[[`e5bf67fe77`](https://redirect.github.com/nodejs/node/commit/e5bf67fe77)] - **build**: define python when generating `out/Makefile` (Aviv Keller) [#​57970](https://redirect.github.com/nodejs/node/pull/57970) - \[[`718f874ae0`](https://redirect.github.com/nodejs/node/commit/718f874ae0)] - **build**: fix zstd libname (Antoine du Hamel) [#​57999](https://redirect.github.com/nodejs/node/pull/57999) - \[[`53c5fdcae1`](https://redirect.github.com/nodejs/node/commit/53c5fdcae1)] - **crypto**: fix cross-realm `SharedArrayBuffer` validation (Antoine du Hamel) [#​57974](https://redirect.github.com/nodejs/node/pull/57974) - \[[`78f4ffee5d`](https://redirect.github.com/nodejs/node/commit/78f4ffee5d)] - **crypto**: fix cross-realm check of `ArrayBuffer` (Felipe Forbeck) [#​57828](https://redirect.github.com/nodejs/node/pull/57828) - \[[`f606352b63`](https://redirect.github.com/nodejs/node/commit/f606352b63)] - **crypto**: forbid passing `Float16Array` to `getRandomValues()` (Livia Medeiros) [#​57880](https://redirect.github.com/nodejs/node/pull/57880) - \[[`23c4e941c2`](https://redirect.github.com/nodejs/node/commit/23c4e941c2)] - **crypto**: remove BoringSSL dh-primes addition (Shelley Vohr) [#​57023](https://redirect.github.com/nodejs/node/pull/57023) - \[[`8339d9bc14`](https://redirect.github.com/nodejs/node/commit/8339d9bc14)] - **deps**: V8: cherry-pick [`f915fa4`](https://redirect.github.com/nodejs/node/commit/f915fa4c9f41) (Chengzhong Wu) [#​55484](https://redirect.github.com/nodejs/node/pull/55484) - \[[`c2111dd126`](https://redirect.github.com/nodejs/node/commit/c2111dd126)] - **deps**: V8: backport [`e5dbbba`](https://redirect.github.com/nodejs/node/commit/e5dbbbadcbff) (Darshan Sen) [#​58120](https://redirect.github.com/nodejs/node/pull/58120) - \[[`4cc49be951`](https://redirect.github.com/nodejs/node/commit/4cc49be951)] - **deps**: update zstd to 1.5.7 (Node.js GitHub Bot) [#​57940](https://redirect.github.com/nodejs/node/pull/57940) - \[[`c956d37c84`](https://redirect.github.com/nodejs/node/commit/c956d37c84)] - **deps**: update zlib to 1.3.0.1-motley-780819f (Node.js GitHub Bot) [#​57768](https://redirect.github.com/nodejs/node/pull/57768) - \[[`c3ceaebb7a`](https://redirect.github.com/nodejs/node/commit/c3ceaebb7a)] - **deps**: update timezone to 2025b (Node.js GitHub Bot) [#​57857](https://redirect.github.com/nodejs/node/pull/57857) - \[[`b5cd0eb590`](https://redirect.github.com/nodejs/node/commit/b5cd0eb590)] - **deps**: update simdutf to 6.4.2 (Node.js GitHub Bot) [#​57855](https://redirect.github.com/nodejs/node/pull/57855) - \[[`3eb6b814e9`](https://redirect.github.com/nodejs/node/commit/3eb6b814e9)] - **deps**: update simdutf to 6.4.0 (Node.js GitHub Bot) [#​56764](https://redirect.github.com/nodejs/node/pull/56764) - \[[`0be9fa3218`](https://redirect.github.com/nodejs/node/commit/0be9fa3218)] - **deps**: update icu to 77.1 (Node.js GitHub Bot) [#​57455](https://redirect.github.com/nodejs/node/pull/57455) - \[[`d5cf4254fb`](https://redirect.github.com/nodejs/node/commit/d5cf4254fb)] - **doc**: add HBSPS as triager (Wiyeong Seo) [#​57980](https://redirect.github.com/nodejs/node/pull/57980) - \[[`ad0861dba0`](https://redirect.github.com/nodejs/node/commit/ad0861dba0)] - **doc**: add ambassaor message (Brian Muenzenmeyer) [#​57600](https://redirect.github.com/nodejs/node/pull/57600) - \[[`0d3ec1aafe`](https://redirect.github.com/nodejs/node/commit/0d3ec1aafe)] - **doc**: fix misaligned options in vm.compileFunction() (Jimmy Leung) [#​58145](https://redirect.github.com/nodejs/node/pull/58145) - \[[`1f70baf3b0`](https://redirect.github.com/nodejs/node/commit/1f70baf3b0)] - **doc**: add missing options.signal to readlinePromises.createInterface() (Jimmy Leung) [#​55456](https://redirect.github.com/nodejs/node/pull/55456) - \[[`ec6a48621f`](https://redirect.github.com/nodejs/node/commit/ec6a48621f)] - **doc**: fix typo of file `zlib.md` (yusheng chen) [#​58093](https://redirect.github.com/nodejs/node/pull/58093) - \[[`37e360e386`](https://redirect.github.com/nodejs/node/commit/37e360e386)] - **doc**: make stability labels more consistent (Antoine du Hamel) [#​57516](https://redirect.github.com/nodejs/node/pull/57516) - \[[`2b5d63d36e`](https://redirect.github.com/nodejs/node/commit/2b5d63d36e)] - **doc**: allow the $schema property in node.config.json (Remco Haszing) [#​57560](https://redirect.github.com/nodejs/node/pull/57560) - \[[`a2063638e2`](https://redirect.github.com/nodejs/node/commit/a2063638e2)] - **doc**: fix `AsyncLocalStorage` example response changes after node v18 (Naor Tedgi (Abu Emma)) [#​57969](https://redirect.github.com/nodejs/node/pull/57969) - \[[`474c2b14c3`](https://redirect.github.com/nodejs/node/commit/474c2b14c3)] - **doc**: mark Node.js 18 as End-of-Life (Richard Lau) [#​58084](https://redirect.github.com/nodejs/node/pull/58084) - \[[`5059a746ec`](https://redirect.github.com/nodejs/node/commit/5059a746ec)] - **doc**: add dario-piotrowicz to collaborators (Dario Piotrowicz) [#​58102](https://redirect.github.com/nodejs/node/pull/58102) - \[[`1eec170fc3`](https://redirect.github.com/nodejs/node/commit/1eec170fc3)] - **doc**: fix formatting of `import.meta.filename` section (Antoine du Hamel) [#​58079](https://redirect.github.com/nodejs/node/pull/58079) - \[[`7f108de525`](https://redirect.github.com/nodejs/node/commit/7f108de525)] - **doc**: fix env variable name in `util.styleText` (Antoine du Hamel) [#​58072](https://redirect.github.com/nodejs/node/pull/58072) - \[[`54b3f7fffc`](https://redirect.github.com/nodejs/node/commit/54b3f7fffc)] - **doc**: add returns for https.get (Eng Zer Jun) [#​58025](https://redirect.github.com/nodejs/node/pull/58025) - \[[`66f2c605a8`](https://redirect.github.com/nodejs/node/commit/66f2c605a8)] - **doc**: fix typo in `buffer.md` (chocolateboy) [#​58052](https://redirect.github.com/nodejs/node/pull/58052) - \[[`b0256dd42b`](https://redirect.github.com/nodejs/node/commit/b0256dd42b)] - **doc**: correct deprecation type of `assert.CallTracker` (René) [#​57997](https://redirect.github.com/nodejs/node/pull/57997) - \[[`581439c9e6`](https://redirect.github.com/nodejs/node/commit/581439c9e6)] - **doc**: mark devtools integration section as active development (Chengzhong Wu) [#​57886](https://redirect.github.com/nodejs/node/pull/57886) - \[[`a2a2a2f027`](https://redirect.github.com/nodejs/node/commit/a2a2a2f027)] - **doc**: fix typo in `module.md` (Alex Schwartz) [#​57889](https://redirect.github.com/nodejs/node/pull/57889) - \[[`c0ec4e2935`](https://redirect.github.com/nodejs/node/commit/c0ec4e2935)] - **doc**: increase z-index of header element (Dario Piotrowicz) [#​57851](https://redirect.github.com/nodejs/node/pull/57851) - \[[`93d19ec6cd`](https://redirect.github.com/nodejs/node/commit/93d19ec6cd)] - **doc**: add missing TS formats for `load` hooks (Antoine du Hamel) [#​57837](https://redirect.github.com/nodejs/node/pull/57837) - \[[`f5ea06c61f`](https://redirect.github.com/nodejs/node/commit/f5ea06c61f)] - **doc**: clarify the multi REPL example (Dario Piotrowicz) [#​57759](https://redirect.github.com/nodejs/node/pull/57759) - \[[`80c4fe1b70`](https://redirect.github.com/nodejs/node/commit/80c4fe1b70)] - **doc**: fix deprecation type for `DEP0148` (Livia Medeiros) [#​57785](https://redirect.github.com/nodejs/node/pull/57785) - \[[`01cad99da0`](https://redirect.github.com/nodejs/node/commit/01cad99da0)] - **doc**: list DOMException as a potential error raised by Node.js (Chengzhong Wu) [#​57783](https://redirect.github.com/nodejs/node/pull/57783) - \[[`a08b714a46`](https://redirect.github.com/nodejs/node/commit/a08b714a46)] - **doc**: add missing v0.x changelog entries (Antoine du Hamel) [#​57779](https://redirect.github.com/nodejs/node/pull/57779) - \[[`d0b48350fd`](https://redirect.github.com/nodejs/node/commit/d0b48350fd)] - **doc**: fix typo in writing-docs (Sebastian Beltran) [#​57776](https://redirect.github.com/nodejs/node/pull/57776) - \[[`bde3725f8b`](https://redirect.github.com/nodejs/node/commit/bde3725f8b)] - **doc**: clarify examples section in REPL doc (Dario Piotrowicz) [#​57762](https://redirect.github.com/nodejs/node/pull/57762) - \[[`c8ceaaf397`](https://redirect.github.com/nodejs/node/commit/c8ceaaf397)] - **(SEMVER-MINOR)** **doc**: graduate multiple experimental apis (James M Snell) [#​57765](https://redirect.github.com/nodejs/node/pull/57765) - \[[`92428c2609`](https://redirect.github.com/nodejs/node/commit/92428c2609)] - **doc**: explicitly state that corepack will be removed in v25+ (Trivikram Kamat) [#​57747](https://redirect.github.com/nodejs/node/pull/57747) - \[[`298969e1dd`](https://redirect.github.com/nodejs/node/commit/298969e1dd)] - **doc**: update position type to integer | null in fs (Yukihiro Hasegawa) [#​57745](https://redirect.github.com/nodejs/node/pull/57745) - \[[`a9d28e27c9`](https://redirect.github.com/nodejs/node/commit/a9d28e27c9)] - **doc**: update CI instructions (Antoine du Hamel) [#​57743](https://redirect.github.com/nodejs/node/pull/57743) - \[[`133d2878a1`](https://redirect.github.com/nodejs/node/commit/133d2878a1)] - **doc**: update example of using `await` in REPL (Dario Piotrowicz) [#​57653](https://redirect.github.com/nodejs/node/pull/57653) - \[[`fc5f126629`](https://redirect.github.com/nodejs/node/commit/fc5f126629)] - **doc**: add back mention of visa fees to onboarding doc (Darshan Sen) [#​57730](https://redirect.github.com/nodejs/node/pull/57730) - \[[`945f4ac538`](https://redirect.github.com/nodejs/node/commit/945f4ac538)] - **doc**: process.execve is only unavailable for Windows (Yaksh Bariya) [#​57726](https://redirect.github.com/nodejs/node/pull/57726) - \[[`f3b885bb5e`](https://redirect.github.com/nodejs/node/commit/f3b885bb5e)] - **doc**: clarify `unhandledRejection` events behaviors in process doc (Dario Piotrowicz) [#​57654](https://redirect.github.com/nodejs/node/pull/57654) - \[[`7326dda5b0`](https://redirect.github.com/nodejs/node/commit/7326dda5b0)] - **doc**: improved fetch docs (Alessandro Miliucci) [#​57296](https://redirect.github.com/nodejs/node/pull/57296) - \[[`6906c5eb1f`](https://redirect.github.com/nodejs/node/commit/6906c5eb1f)] - **doc**: document REPL custom eval arguments (Dario Piotrowicz) [#​57690](https://redirect.github.com/nodejs/node/pull/57690) - \[[`47a7564e8f`](https://redirect.github.com/nodejs/node/commit/47a7564e8f)] - **doc**: classify Chrome DevTools Protocol as tier 2 (Chengzhong Wu) [#​57634](https://redirect.github.com/nodejs/node/pull/57634) - \[[`e274cc1310`](https://redirect.github.com/nodejs/node/commit/e274cc1310)] - **doc**: replace NOTE that does not render properly (Colin Ihrig) [#​57484](https://redirect.github.com/nodejs/node/pull/57484) - \[[`bef06b11df`](https://redirect.github.com/nodejs/node/commit/bef06b11df)] - **esm**: avoid `import.meta` setup costs for unused properties (Antoine du Hamel) [#​57286](https://redirect.github.com/nodejs/node/pull/57286) - \[[`e21b37d9df`](https://redirect.github.com/nodejs/node/commit/e21b37d9df)] - **(SEMVER-MINOR)** **esm**: graduate import.meta properties (James M Snell) [#​58011](https://redirect.github.com/nodejs/node/pull/58011) - \[[`832640c35e`](https://redirect.github.com/nodejs/node/commit/832640c35e)] - **(SEMVER-MINOR)** **esm**: support top-level Wasm without package type (Guy Bedford) [#​57610](https://redirect.github.com/nodejs/node/pull/57610) - \[[`8f643471ef`](https://redirect.github.com/nodejs/node/commit/8f643471ef)] - **fs**: improve globSync performance (Rich Trott) [#​57725](https://redirect.github.com/nodejs/node/pull/57725) - \[[`bf9e17ecc6`](https://redirect.github.com/nodejs/node/commit/bf9e17ecc6)] - **http2**: use args.This() instead of args.Holder() (Joyee Cheung) [#​58004](https://redirect.github.com/nodejs/node/pull/58004) - \[[`137717354f`](https://redirect.github.com/nodejs/node/commit/137717354f)] - **http2**: fix graceful session close (Kushagra Pandey) [#​57808](https://redirect.github.com/nodejs/node/pull/57808) - \[[`9baf580269`](https://redirect.github.com/nodejs/node/commit/9baf580269)] - **http2**: fix check for `frame->hd.type` (hanguanqiang) [#​57644](https://redirect.github.com/nodejs/node/pull/57644) - \[[`b8189242b2`](https://redirect.github.com/nodejs/node/commit/b8189242b2)] - **http2**: skip writeHead if stream is closed (Shima Ryuhei) [#​57686](https://redirect.github.com/nodejs/node/pull/57686) - \[[`4e02a1650a`](https://redirect.github.com/nodejs/node/commit/4e02a1650a)] - **lib**: remove unused file `fetch_module` (Michaël Zasso) [#​55880](https://redirect.github.com/nodejs/node/pull/55880) - \[[`d9700fef26`](https://redirect.github.com/nodejs/node/commit/d9700fef26)] - **lib**: avoid StackOverflow on `serializeError` (Chengzhong Wu) [#​58075](https://redirect.github.com/nodejs/node/pull/58075) - \[[`f3a16b6d9c`](https://redirect.github.com/nodejs/node/commit/f3a16b6d9c)] - **lib**: resolve the issue of not adhering to the specified buffer size (0hm☘️🏳️⚧️) [#​55896](https://redirect.github.com/nodejs/node/pull/55896) - \[[`d4fc282f73`](https://redirect.github.com/nodejs/node/commit/d4fc282f73)] - **lib**: fix AbortSignal.any() with timeout signals (Gürgün Dayıoğlu) [#​57867](https://redirect.github.com/nodejs/node/pull/57867) - \[[`f7e2902861`](https://redirect.github.com/nodejs/node/commit/f7e2902861)] - **lib**: use Map primordial for ActiveAsyncContextFrame (Gürgün Dayıoğlu) [#​57670](https://redirect.github.com/nodejs/node/pull/57670) - \[[`8652b0e168`](https://redirect.github.com/nodejs/node/commit/8652b0e168)] - **meta**: set nodejs/config as codeowner (Marco Ippolito) [#​57237](https://redirect.github.com/nodejs/node/pull/57237) - \[[`e98504ed95`](https://redirect.github.com/nodejs/node/commit/e98504ed95)] - **meta**: allow penetration testing on live system with prior authorization (Matteo Collina) [#​57966](https://redirect.github.com/nodejs/node/pull/57966) - \[[`340731bea0`](https://redirect.github.com/nodejs/node/commit/340731bea0)] - **meta**: fix subsystem in commit title (Luigi Pinca) [#​57945](https://redirect.github.com/nodejs/node/pull/57945) - \[[`d767cbffcf`](https://redirect.github.com/nodejs/node/commit/d767cbffcf)] - **meta**: bump Mozilla-Actions/sccache-action from 0.0.8 to 0.0.9 (dependabot\[bot]) [#​57720](https://redirect.github.com/nodejs/node/pull/57720) - \[[`575f904b13`](https://redirect.github.com/nodejs/node/commit/575f904b13)] - **meta**: bump actions/download-artifact from 4.1.9 to 4.2.1 (dependabot\[bot]) [#​57719](https://redirect.github.com/nodejs/node/pull/57719) - \[[`acd323c069`](https://redirect.github.com/nodejs/node/commit/acd323c069)] - **meta**: bump actions/setup-python from 5.4.0 to 5.5.0 (dependabot\[bot]) [#​57718](https://redirect.github.com/nodejs/node/pull/57718) - \[[`21246fec20`](https://redirect.github.com/nodejs/node/commit/21246fec20)] - **meta**: bump peter-evans/create-pull-request from 7.0.7 to 7.0.8 (dependabot\[bot]) [#​57717](https://redirect.github.com/nodejs/node/pull/57717) - \[[`97f32d5849`](https://redirect.github.com/nodejs/node/commit/97f32d5849)] - **meta**: bump github/codeql-action from 3.28.10 to 3.28.13 (dependabot\[bot]) [#​57716](https://redirect.github.com/nodejs/node/pull/57716) - \[[`90ddbb8cfa`](https://redirect.github.com/nodejs/node/commit/90ddbb8cfa)] - **meta**: bump actions/cache from 4.2.2 to 4.2.3 (dependabot\[bot]) [#​57715](https://redirect.github.com/nodejs/node/pull/57715) - \[[`728425d03e`](https://redirect.github.com/nodejs/node/commit/728425d03e)] - **meta**: bump actions/setup-node from 4.2.0 to 4.3.0 (dependabot\[bot]) [#​57714](https://redirect.github.com/nodejs/node/pull/57714) - \[[`1f799140e0`](https://redirect.github.com/nodejs/node/commit/1f799140e0)] - **meta**: bump actions/upload-artifact from 4.6.1 to 4.6.2 (dependabot\[bot]) [#​57713](https://redirect.github.com/nodejs/node/pull/57713) - \[[`021b174a1f`](https://redirect.github.com/nodejs/node/commit/021b174a1f)] - **module**: tidy code string concat → string templates (Jacob Smith) [#​55820](https://redirect.github.com/nodejs/node/pull/55820) - \[[`44c5718476`](https://redirect.github.com/nodejs/node/commit/44c5718476)] - **module**: fix incorrect formatting in require(esm) cycle error message (haykam821) [#​57453](https://redirect.github.com/nodejs/node/pull/57453) - \[[`bb09b4d4ae`](https://redirect.github.com/nodejs/node/commit/bb09b4d4ae)] - **module**: improve `getPackageType` performance (Dario Piotrowicz) [#​57599](https://redirect.github.com/nodejs/node/pull/57599) - \[[`9e6054e715`](https://redirect.github.com/nodejs/node/commit/9e6054e715)] - **module**: remove unnecessary `readPackage` function (Dario Piotrowicz) [#​57596](https://redirect.github.com/nodejs/node/pull/57596) - \[[`4a8db273ba`](https://redirect.github.com/nodejs/node/commit/4a8db273ba)] - **node-api**: add nested object wrap and napi_ref test (Chengzhong Wu) [#​57981](https://redirect.github.com/nodejs/node/pull/57981) - \[[`3c65058f20`](https://redirect.github.com/nodejs/node/commit/3c65058f20)] - **node-api**: convert NewEnv to node_napi_env\_\_::New (Vladimir Morozov) [#​57834](https://redirect.github.com/nodejs/node/pull/57834) - \[[`a4105db1f7`](https://redirect.github.com/nodejs/node/commit/a4105db1f7)] - **os**: fix netmask format check condition in getCIDR function (Wiyeong Seo) [#​57324](https://redirect.github.com/nodejs/node/pull/57324) - \[[`248c938139`](https://redirect.github.com/nodejs/node/commit/248c938139)] - **process**: disable building execve on IBM i (Abdirahim Musse) [#​57883](https://redirect.github.com/nodejs/node/pull/57883) - \[[`972275697a`](https://redirect.github.com/nodejs/node/commit/972275697a)] - **repl**: deprecate `repl.builtinModules` (Dario Piotrowicz) [#​57508](https://redirect.github.com/nodejs/node/pull/57508) - \[[`7485309d7e`](https://redirect.github.com/nodejs/node/commit/7485309d7e)] - **sqlite**: add location method (Edy Silva) [#​57860](https://redirect.github.com/nodejs/node/pull/57860) - \[[`c12cd2a190`](https://redirect.github.com/nodejs/node/commit/c12cd2a190)] - **sqlite**: add timeout options to DatabaseSync (Edy Silva) [#​57752](https://redirect.github.com/nodejs/node/pull/57752) - \[[`5e0503a967`](https://redirect.github.com/nodejs/node/commit/5e0503a967)] - **sqlite**: add setReturnArrays method to StatementSync (Gürgün Dayıoğlu) [#​57542](https://redirect.github.com/nodejs/node/pull/57542) - \[[`ed9d2fd51a`](https://redirect.github.com/nodejs/node/commit/ed9d2fd51a)] - **sqlite**: enable common flags (Edy Silva) [#​57621](https://redirect.github.com/nodejs/node/pull/57621) - \[[`06dcb318bc`](https://redirect.github.com/nodejs/node/commit/06dcb318bc)] - **sqlite**: refactor prepared statement iterator (Colin Ihrig) [#​57569](https://redirect.github.com/nodejs/node/pull/57569) - \[[`c510391d2f`](https://redirect.github.com/nodejs/node/commit/c510391d2f)] - **(SEMVER-MINOR)** **sqlite**: add StatementSync.prototype.columns() (Colin Ihrig) [#​57490](https://redirect.github.com/nodejs/node/pull/57490) - \[[`4e24456a1a`](https://redirect.github.com/nodejs/node/commit/4e24456a1a)] - **sqlite**: reset statement immediately in run() (Colin Ihrig) [#​57350](https://redirect.github.com/nodejs/node/pull/57350) - \[[`a9a6891b0b`](https://redirect.github.com/nodejs/node/commit/a9a6891b0b)] - **sqlite**: fix coverity warnings related to backup() (Colin Ihrig) [#​56961](https://redirect.github.com/nodejs/node/pull/56961) - \[[`d2e1bcf3d4`](https://redirect.github.com/nodejs/node/commit/d2e1bcf3d4)] - **sqlite**: fix use-after-free in StatementSync due to premature GC (Divy Srivastava) [#​56840](https://redirect.github.com/nodejs/node/pull/56840) - \[[`cfe15ca7b4`](https://redirect.github.com/nodejs/node/commit/cfe15ca7b4)] - **sqlite**: handle conflicting SQLite and JS errors (Colin Ihrig) [#​56787](https://redirect.github.com/nodejs/node/pull/56787) - \[[`0e999eb65f`](https://redirect.github.com/nodejs/node/commit/0e999eb65f)] - **sqlite**: add getter to detect transactions (Colin Ihrig) [#​57925](https://redirect.github.com/nodejs/node/pull/57925) - \[[`20b27331c0`](https://redirect.github.com/nodejs/node/commit/20b27331c0)] - **sqlite, test**: expose sqlite online backup api (Edy Silva) [#​56253](https://redirect.github.com/nodejs/node/pull/56253) - \[[`8856712171`](https://redirect.github.com/nodejs/node/commit/8856712171)] - **sqlite,doc,test**: add aggregate function (Edy Silva) [#​56600](https://redirect.github.com/nodejs/node/pull/56600) - \[[`120050db97`](https://redirect.github.com/nodejs/node/commit/120050db97)] - **sqlite,src**: refactor sqlite value conversion (Edy Silva) [#​57571](https://redirect.github.com/nodejs/node/pull/57571) - \[[`4c5555d558`](https://redirect.github.com/nodejs/node/commit/4c5555d558)] - **src**: initialize privateSymbols for per_context (Jason Zhang) [#​57479](https://redirect.github.com/nodejs/node/pull/57479) - \[[`d2ce9023b1`](https://redirect.github.com/nodejs/node/commit/d2ce9023b1)] - **src**: ensure primordials are initialized exactly once (Chengzhong Wu) [#​57519](https://redirect.github.com/nodejs/node/pull/57519) - \[[`06179be6ca`](https://redirect.github.com/nodejs/node/commit/06179be6ca)] - **src**: disable abseil deadlock detection (Chengzhong Wu) [#​57582](https://redirect.github.com/nodejs/node/pull/57582) - \[[`5121c47990`](https://redirect.github.com/nodejs/node/commit/5121c47990)] - **src**: fix node_config_file.h compilation error in GN build (Cheng) [#​57210](https://redirect.github.com/nodejs/node/pull/57210) - \[[`5d1230bec0`](https://redirect.github.com/nodejs/node/commit/5d1230bec0)] - **(SEMVER-MINOR)** **src**: set default config as `node.config.json` (Marco Ippolito) [#​57171](https://redirect.github.com/nodejs/node/pull/57171) - \[[`ccee741c43`](https://redirect.github.com/nodejs/node/commit/ccee741c43)] - **src**: namespace config file flags (Marco Ippolito) [#​57170](https://redirect.github.com/nodejs/node/pull/57170) - \[[`30bb1ccbb0`](https://redirect.github.com/nodejs/node/commit/30bb1ccbb0)] - **(SEMVER-MINOR)** **src**: create `THROW_ERR_OPTIONS_BEFORE_BOOTSTRAPPING` (Marco Ippolito) [#​57016](https://redirect.github.com/nodejs/node/pull/57016) - \[[`0350c6f478`](https://redirect.github.com/nodejs/node/commit/0350c6f478)] - **(SEMVER-MINOR)** **src**: add config file support (Marco Ippolito) [#​57016](https://redirect.github.com/nodejs/node/pull/57016) - \[[`eef37d00cb`](https://redirect.github.com/nodejs/node/commit/eef37d00cb)] - **src**: add more debug logs and comments in NodePlatform (Joyee Cheung) [#​58047](https://redirect.github.com/nodejs/node/pull/58047) - \[[`678e8f57c0`](https://redirect.github.com/nodejs/node/commit/678e8f57c0)] - **src**: add dcheck_eq for Object::New constructor calls (Jonas) [#​57943](https://redirect.github.com/nodejs/node/pull/57943) - \[[`aee45e2036`](https://redirect.github.com/nodejs/node/commit/aee45e2036)] - **src**: move windows specific fns to `_WIN32` (Yagiz Nizipli) [#​57951](https://redirect.github.com/nodejs/node/pull/57951) - \[[`6206a8edbc`](https://redirect.github.com/nodejs/node/commit/6206a8edbc)] - **src**: improve thread safety of TaskQueue (Shelley Vohr) [#​57910](https://redirect.github.com/nodejs/node/pull/57910) - \[[`03936f31c1`](https://redirect.github.com/nodejs/node/commit/03936f31c1)] - **src**: fixup errorhandling more in various places (James M Snell) [#​57852](https://redirect.github.com/nodejs/node/pull/57852) - \[[`010dd91a19`](https://redirect.github.com/nodejs/node/commit/010dd91a19)] - **src**: fix typo in comments (Edy Silva) [#​57868](https://redirect.github.com/nodejs/node/pull/57868) - \[[`e00c1ecbd2`](https://redirect.github.com/nodejs/node/commit/e00c1ecbd2)] - **src**: add BaseObjectPtr nullptr operations (Chengzhong Wu) [#​56585](https://redirect.github.com/nodejs/node/pull/56585) - \[[`648ad252e1`](https://redirect.github.com/nodejs/node/commit/648ad252e1)] - **src**: remove `void*` -> `char*` -> `void*` casts (Tobias Nießen) [#​57791](https://redirect.github.com/nodejs/node/pull/57791) - \[[`680b434a62`](https://redirect.github.com/nodejs/node/commit/680b434a62)] - **src**: improve error handing in node_messaging (James M Snell) [#​57760](https://redirect.github.com/nodejs/node/pull/57760) - \[[`18f5301747`](https://redirect.github.com/nodejs/node/commit/18f5301747)] - **src**: remove unused detachArrayBuffer method (Yagiz Nizipli) [#​58055](https://redirect.github.com/nodejs/node/pull/58055) - \[[`065e8cd670`](https://redirect.github.com/nodejs/node/commit/065e8cd670)] - **src**: use macros to reduce code duplication is cares_wrap (James M Snell) [#​57937](https://redirect.github.com/nodejs/node/pull/57937) - \[[`39af5d678f`](https://redirect.github.com/nodejs/node/commit/39af5d678f)] - **src**: improve error handling in cares_wrap (James M Snell) [#​57937](https://redirect.github.com/nodejs/node/pull/57937) - \[[`ca020fdc4e`](https://redirect.github.com/nodejs/node/commit/ca020fdc4e)] - **src**: fix -Wunreachable-code-return in node_sea (Shelley Vohr) [#​57664](https://redirect.github.com/nodejs/node/pull/57664) - \[[`32b6e7094a`](https://redirect.github.com/nodejs/node/commit/32b6e7094a)] - **src**: change DCHECK to CHECK (Wuli Zuo) [#​57948](https://redirect.github.com/nodejs/node/pull/57948) - \[[`e1d3a9e192`](https://redirect.github.com/nodejs/node/commit/e1d3a9e192)] - **(SEMVER-MINOR)** **src**: add ExecutionAsyncId getter for any Context (Attila Szegedi) [#​57820](https://redirect.github.com/nodejs/node/pull/57820) - \[[`96243a723a`](https://redirect.github.com/nodejs/node/commit/96243a723a)] - **src**: update std::vector\<v8::Local\<T>> to use v8::LocalVector\<T> (Aditi) [#​57646](https://redirect.github.com/nodejs/node/pull/57646) - \[[`0f2cbc17c7`](https://redirect.github.com/nodejs/node/commit/0f2cbc17c7)] - **src**: update std::vector\<v8::Local\<T>> to use v8::LocalVector\<T> (Aditi) [#​57642](https://redirect.github.com/nodejs/node/pull/57642) - \[[`d1c6f861d5`](https://redirect.github.com/nodejs/node/commit/d1c6f861d5)] - **src**: update std::vector\<v8::Local\<T>> to use v8::LocalVector\<T> (Aditi) [#​57578](https://redirect.github.com/nodejs/node/pull/57578) - \[[`ab0d3a38db`](https://redirect.github.com/nodejs/node/commit/ab0d3a38db)] - **src**: improve error message for invalid child stdio type in spawn_sync (Dario Piotrowicz) [#​57589](https://redirect.github.com/nodejs/node/pull/57589) - \[[`24b182e7b3`](https://redirect.github.com/nodejs/node/commit/24b182e7b3)] - **src**: implement util.types fast API calls (Ruben Bridgewater) [#​57819](https://redirect.github.com/nodejs/node/pull/57819) - \[[`dda6423be9`](https://redirect.github.com/nodejs/node/commit/dda6423be9)] - **src**: enter and lock isolate properly in json parser (Joyee Cheung) [#​57823](https://redirect.github.com/nodejs/node/pull/57823) - \[[`4754c693f8`](https://redirect.github.com/nodejs/node/commit/4754c693f8)] - **src**: improve error handling in `node_env_var.cc` (Antoine du Hamel) [#​57767](https://redirect.github.com/nodejs/node/pull/57767) - \[[`db483bbe63`](https://redirect.github.com/nodejs/node/commit/db483bbe63)] - **src**: improve error handling in node_http2 (James M Snell) [#​57764](https://redirect.github.com/nodejs/node/pull/57764) - \[[`b0277700d6`](https://redirect.github.com/nodejs/node/commit/b0277700d6)] - **src**: improve error handling in crypto_x509 (James M Snell) [#​57757](https://redirect.github.com/nodejs/node/pull/57757) - \[[`353587f984`](https://redirect.github.com/nodejs/node/commit/353587f984)] - **src**: improve error handling in callback.cc (James M Snell) [#​57758](https://redirect.github.com/nodejs/node/pull/57758) - \[[`bec053ab20`](https://redirect.github.com/nodejs/node/commit/bec053ab20)] - **src**: remove unused variable in crypto_x509.cc (Michaël Zasso) [#​57754](https://redirect.github.com/nodejs/node/pull/57754) - \[[`38a329a857`](https://redirect.github.com/nodejs/node/commit/38a329a857)] - **src**: fix kill signal 0 on Windows (Stefan Stojanovic) [#​57695](https://redirect.github.com/nodejs/node/pull/57695) - \[[`70bb387f82`](https://redirect.github.com/nodejs/node/commit/70bb387f82)] - **src**: fix inefficient usage of v8\_inspector::StringView (Simon Zünd) [#​52372](https://redirect.github.com/nodejs/node/pull/52372) - \[[`be038f0273`](https://redirect.github.com/nodejs/node/commit/be038f0273)] - **src,permission**: make ERR_ACCESS_DENIED more descriptive (Rafael Gonzaga) [#​57585](https://redirect.github.com/nodejs/node/pull/57585) - \[[`0ec912f452`](https://redirect.github.com/nodejs/node/commit/0ec912f452)] - **(SEMVER-MINOR)** **stream**: preserve AsyncLocalStorage context in finished() (Gürgün Dayıoğlu) [#​57865](https://redirect.github.com/nodejs/node/pull/57865) - \[[`6ffb66f82f`](https://redirect.github.com/nodejs/node/commit/6ffb66f82f)] - **test**: fix permission fixtures lint (Rafael Gonzaga) [#​55819](https://redirect.github.com/nodejs/node/pull/55819) - \[[`fd37891186`](https://redirect.github.com/nodejs/node/commit/fd37891186)] - **test**: add repl preview timeout test (Chengzhong Wu) [#​55484](https://redirect.github.com/nodejs/node/pull/55484) - \[[`1be5a8c1b4`](https://redirect.github.com/nodejs/node/commit/1be5a8c1b4)] - **test**: skip `test-config-json-schema` with quic (Richard Lau) [#​57225](https://redirect.github.com/nodejs/node/pull/57225) - \[[`e90583b657`](https://redirect.github.com/nodejs/node/commit/e90583b657)] - **test**: add more coverage to `node_config_file` (Marco Ippolito) [#​57170](https://redirect.github.com/nodejs/node/pull/57170) - \[[`df2a36bfcc`](https://redirect.github.com/nodejs/node/commit/df2a36bfcc)] - **test**: remove deadlock workaround (Joyee Cheung) [#​58047](https://redirect.github.com/nodejs/node/pull/58047) - \[[`103034b051`](https://redirect.github.com/nodejs/node/commit/103034b051)] - **test**: prevent extraneous HOSTNAME substitution in test-runner-output (René) [#​58076](https://redirect.github.com/nodejs/node/pull/58076) - \[[`3e58f81a38`](https://redirect.github.com/nodejs/node/commit/3e58f81a38)] - **test**: update WPT for WebCryptoAPI to [`b48efd6`](https://redirect.github.com/nodejs/node/commit/b48efd681e) (Node.js GitHub Bot) [#​58044](https://redirect.github.com/nodejs/node/pull/58044) - \[[`2f4e4164a3`](https://redirect.github.com/nodejs/node/commit/2f4e4164a3)] - **test**: add missing newlines to repl .exit writes (Dario Piotrowicz) [#​58041](https://redirect.github.com/nodejs/node/pull/58041) - \[[`b40769292e`](https://redirect.github.com/nodejs/node/commit/b40769292e)] - **test**: add fast api tests for getLibuvNow() (Yagiz Nizipli) [#​58022](https://redirect.github.com/nodejs/node/pull/58022) - \[[`cbd5768d47`](https://redirect.github.com/nodejs/node/commit/cbd5768d47)] - **test**: add ALS test using http agent keep alive (Gerhard Stöbich) [#​58017](https://redirect.github.com/nodejs/node/pull/58017) - \[[`9e31ab502a`](https://redirect.github.com/nodejs/node/commit/9e31ab502a)] - **test**: deflake test-http2-options-max-headers-block-length (Luigi Pinca) [#​57959](https://redirect.github.com/nodejs/node/pull/57959) - \[[`13f8f9cc12`](https://redirect.github.com/nodejs/node/commit/13f8f9cc12)] - **test**: rename to getCallSites (Wuli Zuo) [#​57948](https://redirect.github.com/nodejs/node/pull/57948) - \[[`92dce6ed6b`](https://redirect.github.com/nodejs/node/commit/92dce6ed6b)] - **test**: force GC in test-file-write-stream4 (Luigi Pinca) [#​57930](https://redirect.github.com/nodejs/node/pull/57930) - \[[`aa755d3acf`](https://redirect.github.com/nodejs/node/commit/aa755d3acf)] - **test**: enable skipped colorize test (Shima Ryuhei) [#​57887](https://redirect.github.com/nodejs/node/pull/57887) - \[[`331f44c78c`](https://redirect.github.com/nodejs/node/commit/331f44c78c)] - **test**: update WPT for WebCryptoAPI to [`164426a`](https://redirect.github.com/nodejs/node/commit/164426ace2) (Node.js GitHub Bot) [#​57854](https://redirect.github.com/nodejs/node/pull/57854) - \[[`4aaa8438b4`](https://redirect.github.com/nodejs/node/commit/4aaa8438b4)] - **test**: add test for frame count being 0.5 (Jake Yuesong Li) [#​57732](https://redirect.github.com/nodejs/node/pull/57732) - \[[`fb51d3a0c5`](https://redirect.github.com/nodejs/node/commit/fb51d3a0c5)] - **test**: fix the decimal fractions explaination (Jake Yuesong Li) [#​57732](https://redirect.github.com/nodejs/node/pull/57732) - \[[`c6a45a9087`](https://redirect.github.com/nodejs/node/commit/c6a45a9087)] - ***Revert*** "**test**: add tests for REPL custom evals" (Tobias Nießen) [#​57793](https://redirect.github.com/nodejs/node/pull/57793) - \[[`f3a4d03963`](https://redirect.github.com/nodejs/node/commit/f3a4d03963)] - **test**: add tests for REPL custom evals (Dario Piotrowicz) [#​57691](https://redirect.github.com/nodejs/node/pull/57691) - \[[`a3be0df337`](https://redirect.github.com/nodejs/node/commit/a3be0df337)] - **test**: update expected error message for macOS (Antoine du Hamel) [#​57742](https://redirect.github.com/nodejs/node/pull/57742) - \[[`a7e73a0a74`](https://redirect.github.com/nodejs/node/commit/a7e73a0a74)] - **test**: fix dangling promise in test_runner no isolation test setup (Jacob Smith) [#​57595](https://redirect.github.com/nodejs/node/pull/57595) - \[[`edb7dd1ec7`](https://redirect.github.com/nodejs/node/commit/edb7dd1ec7)] - **test_runner**: match minimum file column to 'all files' (Shima Ryuhei) [#​57848](https://redirect.github.com/nodejs/node/pull/57848) - \[[`c56f495e83`](https://redirect.github.com/nodejs/node/commit/c56f495e83)] - **tools**: extract target abseil to abseil.gyp (Chengzhong Wu) [#​57289](https://redirect.github.com/nodejs/node/pull/57289) - \[[`1b37161a27`](https://redirect.github.com/nodejs/node/commit/1b37161a27)] - **tools**: ignore V8 tests in CodeQL scans (Rich Trott) [#​58081](https://redirect.github.com/nodejs/node/pull/58081) - \[[`23386308dd`](https://redirect.github.com/nodejs/node/commit/23386308dd)] - **tools**: enable CodeQL config file (Rich Trott) [#​58036](https://redirect.github.com/nodejs/node/pull/58036) - \[[`9c21abc169`](https://redirect.github.com/nodejs/node/commit/9c21abc169)] - **tools**: ignore test directory in CodeQL scans (Rich Trott) [#​57978](https://redirect.github.com/nodejs/node/pull/57978) - \[[`f210a1530d`](https://redirect.github.com/nodejs/node/commit/f210a1530d)] - **tools**: add semver-major release support to release-lint (Antoine du Hamel) [#​57892](https://redirect.github.com/nodejs/node/pull/57892) - \[[`234c417e98`](https://redirect.github.com/nodejs/node/commit/234c417e98)] - **tools**: add codeql nightly (Rafael Gonzaga) [#​57788](https://redirect.github.com/nodejs/node/pull/57788) - \[[`938f1532da`](https://redirect.github.com/nodejs/node/commit/938f1532da)] - **tools**: edit create-release-proposal workflow to handle pr body length (Elves Vieira) [#​57841](https://redirect.github.com/nodejs/node/pull/57841) - \[[`b362339f72`](https://redirect.github.com/nodejs/node/commit/b362339f72)] - **tools**: add zstd updater to workflow (KASEYA\yahor.siarheyenka) [#​57831](https://redirect.github.com/nodejs/node/pull/57831) - \[[`61180db9c0`](https://redirect.github.com/nodejs/node/commit/61180db9c0)] - **tools**: remove unused `osx-pkg-postinstall.sh` (Antoine du Hamel) [#​57667](https://redirect.github.com/nodejs/node/pull/57667) - \[[`3ae04c94eb`](https://redirect.github.com/nodejs/node/commit/3ae04c94eb)] - **tools**: do not use temp files when merging PRs (Antoine du Hamel) [#​57790](https://redirect.github.com/nodejs/node/pull/57790) - \[[`d623c2c2b4`](https://redirect.github.com/nodejs/node/commit/d623c2c2b4)] - **tools </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/unraid/api). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xNi4wIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
0788756b91 |
feat: add management page for API keys (#1408)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added ability to update existing API keys, including name, description, roles, and permissions, through the UI and GraphQL API. - Introduced a modal-based interface for creating and editing API keys with improved role and permission selection. - Added a new API Key Manager page and custom element for centralized API key management. - Enhanced API key listing with detailed views, role badges, permission counters, and copy-to-clipboard functionality. - Introduced reusable dialog components for consistent modal experiences. - Added plugin management capabilities with mutations to add or remove plugins. - Added comprehensive support for managing remote access, network URLs, and API key updates within the GraphQL schema. - **Bug Fixes** - Improved error handling and display for API key creation and update operations. - **Refactor** - Centralized API key modal and editing state management using a dedicated store. - Updated GraphQL queries and mutations to use reusable fragments for API key data. - Removed deprecated or redundant remote access and allowed origins configuration components and queries. - Simplified and updated input types for connect settings and remote access. - **Tests** - Added comprehensive tests for API key update logic and improved coverage for API key loading. - **Chores** - Updated configuration files and cleaned up unused schema and component files. - Added new dialog components and centralized exports for dialogs. - Improved ESLint configuration and import statements for better type handling. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
d9ab58eb83 |
chore: require connect plugin to enable flash backup (#1419)
## Summary by CodeRabbit - **New Features** - Added a check to ensure the "unraid-api-plugin-connect" plugin is enabled before allowing flash backup functionality. - Introduced a utility to directly verify if specific API plugins are enabled. - **Refactor** - Updated internal logic to use a centralized class and script-based checks for plugin status and version instead of manual config parsing. - Improved script command-line interface for easier plugin status and version checks. - **Bug Fixes** - Flash Backup feature and service now only activate when the required API plugin is enabled, preventing unintended usage. - Flash Backup UI is conditionally displayed based on the presence of the API plugin. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1209357561531351 - https://app.asana.com/0/0/1210541992642236 |
||
|
|
8c8a5276b4 |
fix: omit Connect actions in UPC when plugin is not installed (#1417)
Removes Connect branding in dropdown when connect plugin is not installed. Preview of dropdown: <img width="453" alt="image" src="https://github.com/user-attachments/assets/b3ba3954-f2d3-4760-a1e2-91556eb43903" /> ## Summary by CodeRabbit - **New Features** - The Notifications Sidebar is now always visible in the user profile, regardless of plugin installation status. - **Refactor** - Improved detection logic for the connect plugin to enhance accuracy. - Centralized and standardized the "Settings" link in the user profile dropdown for consistent user experience. - The account status section in Connect Settings now only appears when the connect plugin is installed. - Updated the Connect page title from "Unraid Connect" to "Unraid API" for clarity. - **Chores** - Extended linting to include Vue files for better code quality enforcement. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
3dcbfbe489 |
feat: api plugin management via CLI (#1416)
implements unraid-api `plugins list`, `plugins install`, `plugins remove` commands via a new `DependencyService` that invokes npm. ## Summary by CodeRabbit - **New Features** - Enhanced plugin management with install, remove, and list commands supporting bundled plugins and restart control. - Added plugin persistence and configuration synchronization across API settings and interfaces. - Introduced dependency management service for streamlined npm operations and vendor archive rebuilding. - **Bug Fixes** - Improved plugin listing accuracy with warnings for configured but missing plugins. - **Chores** - Refactored CLI modules and services for unified plugin management and dependency handling. - Updated API configuration loading and persistence for better separation of concerns. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
184b76de1c |
chore: include node_modules in api slackware package (#1415)
instead of vendoring & uploading separately. ## Summary by CodeRabbit - **Chores** - Updated build process to retain the `node_modules` directory, removing compression and archiving steps. - Improved plugin installation by cleaning up outdated dependency archives before reinstalling, enhancing system stability. - Removed vendor store file references and related bundling steps from the plugin build and installation process. - Enhanced dependency restoration during service start to log warnings without aborting on failure. - Simplified dependency management scripts by removing vendor store URL handling and download functionality. - Streamlined build workflows by removing artifact upload/download and validation steps related to node modules archives. - Updated Docker Compose configuration to remove unused volume mounts for node modules archives. - Added repository cleanup commands to remove top-level `node_modules` directories and common build artifact folders for easier maintenance. |
||
|
|
c132f28281 |
chore: extract connect to an API plugin (#1367)
separates Unraid Connect from the API ## Summary by CodeRabbit - **New Features** - Introduced a unified, JSON-schema-based settings system for API configuration and plugin settings, accessible via new GraphQL queries and mutations. - Added modular NestJS plugin architecture for Unraid Connect, including new modules for cloud, remote access, and system/network management. - Added granular connection and remote access state tracking, with new GraphQL types and resolvers for cloud and connection status. - Implemented event-driven and service-based management for SSO users, API keys, and dynamic remote access. - Enhanced UI components and queries to support unified settings and restart detection. - **Improvements** - Refactored configuration and state management to use service-based patterns, replacing direct store access and Redux logic. - Migrated legacy config files to new JSON formats with validation and persistence helpers. - Centralized global dependencies and shared services for plugins and CLI modules. - Improved logging, error handling, and lifecycle management for connections and background jobs. - Updated and expanded documentation for plugin development and settings management. - **Bug Fixes** - Improved handling of missing config files and ensured safe persistence. - Enhanced error reporting and validation in remote access and connection services. - **Removals** - Removed deprecated Redux slices, listeners, and legacy cloud/remote access logic. - Deleted obsolete test files, scripts, and unused code related to the old state/store approach. - **Tests** - Added new unit tests for settings merging, URL resolution, and cloud connectivity checks. - **Style** - Applied consistent formatting, import reorganization, and code style improvements across modules. - **Chores** - Updated build scripts, Dockerfiles, and development environment setup to support new dependencies and workflows. - Expanded .gitignore and configuration files for improved build artifact management. |
||
|
|
5517e7506b |
feat: add rclone (#1362)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced full RClone remote management with creation, deletion, listing, and detailed remote info via a multi-step, schema-driven UI. - Added guided configuration forms supporting advanced and provider-specific options for RClone remotes. - Enabled flash backup initiation through API mutations. - Added new Vue components for RClone configuration, overview, remote item cards, and flash backup page. - Integrated new combobox, stepped layout, control wrapper, label renderer, and improved form renderers with enhanced validation and error display. - Added JSON Forms visibility composable and Unraid settings layout for consistent UI rendering. - **Bug Fixes** - Standardized JSON scalar usage in Docker-related types, replacing `JSONObject` with `JSON`. - **Chores** - Added utility scripts and helpers to manage rclone binary installation and versioning. - Updated build scripts and Storybook configuration for CSS handling and improved developer workflow. - Refactored ESLint config for modularity and enhanced code quality enforcement. - Improved component registration with runtime type checks and error handling. - **Documentation** - Added extensive test coverage for RClone API service, JSON Forms schema merging, and provider config slice generation. - **Style** - Improved UI consistency with new layouts, tooltips on select options, password visibility toggles, and error handling components. - Removed deprecated components and consolidated renderer registrations for JSON Forms. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> |
||
|
|
83076bb940 |
fix: rc.unraid-api now cleans up older dependencies (#1404)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added an option to clean up old dependency files, keeping only those needed for the current API version. - Introduced a direct cleanup command to remove outdated dependencies before installing new ones. - **Bug Fixes** - Improved handling and messaging for missing or invalid dependency information during cleanup operations. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
7b005cbbf6 |
fix: node_modules dir removed on plugin update (#1406)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Improved installation process by automatically cleaning up old package directories before installing or upgrading the package. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
881f1e0960 |
feat: slightly better watch mode (#1398)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added a script to automatically prepare UI components before running the build watch process in the web app. - **Bug Fixes** - Improved build and release processes to ensure directories are properly cleaned and created, preventing potential errors during Docker operations. - **Chores** - Updated build watch scripts for faster development feedback and more efficient parallel execution. - Refined Docker Compose configuration to use the correct release directory for plugin builds. - Introduced a new script to streamline and centralize file watching and build triggering in the plugin system. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
7d88b3393c | fix: do not start API with doinst.sh | ||
|
|
fcd6fbcdd4 |
feat: move to iframe for changelog (#1388)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Changelog modal now displays changelog documentation within an embedded iframe if a URL is available, allowing navigation within the iframe and providing a "Back to Changelog" button to return to the original view. - "View on Docs" button dynamically updates to reflect the current page within the iframe. - Added support for displaying a formatted changelog string and testing modal behavior with or without this content. - Introduced a new component to fetch, parse, and render changelogs from URLs with enhanced markdown handling. - Update OS store extended to manage changelog display and release stability, consolidating changelog state and actions. - **Bug Fixes** - Close button in modal dialogs is now visible on all screen sizes. - **Chores** - Updated the default server state, which may affect registration device counts and types. - Added new localization string for changelog titles with version placeholders. - Removed deprecated changelog store and related tests, simplifying state management. - Refined backup and restoration scripts for unraid-components directory to use move operations with improved logging. - Improved modal visibility state handling by consolidating changelog modal controls into the main update OS store. - Added URL origin and pattern checks for changelog iframe navigation security. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> |
||
|
|
106ea09399 |
fix(deps): update dependency commander to v14 (#1394)
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [commander](https://redirect.github.com/tj/commander.js) | [`^13.1.0` -> `^14.0.0`](https://renovatebot.com/diffs/npm/commander/13.1.0/14.0.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>tj/commander.js (commander)</summary> ### [`v14.0.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1400-2025-05-18) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v13.1.0...v14.0.0) ##### Added - support for groups of options and commands in the help using low-level `.helpGroup()` on `Option` and `Command`, and higher-level `.optionsGroup()` and `.commandsGroup()` which can be used in chaining way to specify group title for following options/commands (\[[#​2328](https://redirect.github.com/tj/commander.js/issues/2328)]) - support for unescaped negative numbers as option-arguments and command-arguments (\[[#​2339](https://redirect.github.com/tj/commander.js/issues/2339)]) - TypeScript: add `parseArg` property to `Argument` class (\[[#​2359](https://redirect.github.com/tj/commander.js/issues/2359)]) ##### Fixed - remove bogus leading space in help when option has default value but not a description (\[[#​2348](https://redirect.github.com/tj/commander.js/issues/2348)]) - `.configureOutput()` now makes copy of settings instead of modifying in-place, fixing side-effects (\[[#​2350](https://redirect.github.com/tj/commander.js/issues/2350)]) ##### Changed - *Breaking:* Commander 14 requires Node.js v20 or higher - internal refactor of `Help` class adding `.formatItemList()` and `.groupItems()` methods (\[[#​2328](https://redirect.github.com/tj/commander.js/issues/2328)]) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/unraid/api). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
74a70b5557 |
fix(deps): update all non-major dependencies (#1387)
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [lucide-vue-next](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next)) | [`^0.509.0` -> `^0.510.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.509.0/0.510.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.10.0` -> `10.11.0`](https://renovatebot.com/diffs/npm/pnpm/10.10.0/10.11.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>lucide-icons/lucide (lucide-vue-next)</summary> ### [`v0.510.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.510.0): Version 0.510.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.509.0...0.510.0) #### What's Changed - fix(icons): changed `brackets` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3172](https://redirect.github.com/lucide-icons/lucide/pull/3172) - feat(icons): added `check-line` icon by [@​oosawy](https://redirect.github.com/oosawy) in [https://github.com/lucide-icons/lucide/pull/2890](https://redirect.github.com/lucide-icons/lucide/pull/2890) #### New Contributors - [@​oosawy](https://redirect.github.com/oosawy) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2890](https://redirect.github.com/lucide-icons/lucide/pull/2890) **Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.509.0...0.510.0 </details> <details> <summary>pnpm/pnpm (pnpm)</summary> ### [`v10.11.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#10110) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v10.10.0...v10.11.0) ##### Minor Changes - A new setting added for `pnpm init` to create a `package.json` with `type=module`, when `init-type` is `module`. Works as a flag for the init command too [#​9463](https://redirect.github.com/pnpm/pnpm/pull/9463). - Added support for Nushell to `pnpm setup` [#​6476](https://redirect.github.com/pnpm/pnpm/issues/6476). - Added two new flags to the `pnpm audit` command, `--ignore` and `--ignore-unfixable` [#​8474](https://redirect.github.com/pnpm/pnpm/pull/8474). Ignore all vulnerabilities that have no solution: ```shell > pnpm audit --ignore-unfixable ``` Provide a list of CVE's to ignore those specifically, even if they have a resolution. ```shell > pnpm audit --ignore=CVE-2021-1234 --ignore=CVE-2021-5678 ``` - Added support for recursively running pack in every project of a workspace [#​4351](https://redirect.github.com/pnpm/pnpm/issues/4351). Now you can run `pnpm -r pack` to pack all packages in the workspace. ##### Patch Changes - pnpm version management should work, when `dangerouslyAllowAllBuilds` is set to `true` [#​9472](https://redirect.github.com/pnpm/pnpm/issues/9472). - `pnpm link` should work from inside a workspace [#​9506](https://redirect.github.com/pnpm/pnpm/issues/9506). - Set the default `workspaceConcurrency` to `Math.min(os.availableParallelism(), 4)` [#​9493](https://redirect.github.com/pnpm/pnpm/pull/9493). - Installation should not exit with an error if `strictPeerDependencies` is `true` but all issues are ignored by `peerDependencyRules` [#​9505](https://redirect.github.com/pnpm/pnpm/pull/9505). - Read `updateConfig` from `pnpm-workspace.yaml` [#​9500](https://redirect.github.com/pnpm/pnpm/issues/9500). - Add support for `recursive pack` - Remove `url.parse` usage to fix warning on Node.js 24 [#​9492](https://redirect.github.com/pnpm/pnpm/issues/9492). - `pnpm run` should be able to run commands from the workspace root, if `ignoreScripts` is set tot `true` [#​4858](https://redirect.github.com/pnpm/pnpm/issues/4858). </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/unraid/api). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjEiLCJ1cGRhdGVkSW5WZXIiOiI0MC4xMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
4f63b4cf3b |
feat: native slackware package (#1381)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added detailed versioning for plugin packages incorporating architecture and build identifiers. - Simplified and improved install/uninstall scripts with backup and dynamic package detection. - Introduced comprehensive setup, verification, patching, and cleanup scripts for the Unraid API environment. - Enhanced service control with explicit start, stop, restart, and status commands. - Added robust dependency management scripts for restoring and archiving Node.js modules. - Implemented vendor archive metadata storage and dynamic handling during build and runtime. - Added new CLI options and environment schemas for consistent build configuration. - Introduced new shutdown scripts to gracefully stop flash-backup and unraid-api services. - Added utility scripts for API version detection and vendor archive configuration. - Added a new package description file detailing Unraid API features and homepage link. - **Bug Fixes** - Improved validation and error reporting for missing manifests, dependencies, and configuration files. - Enhanced fallback logic for locating and creating vendor archives. - Fixed iframe compatibility in UI by updating HTML and Firefox preference files. - **Chores** - Updated .gitignore with generated file patterns for Node.js binaries and archives. - Removed obsolete internal documentation and legacy cleanup scripts. - Refined Docker Compose and CI workflows to pass precise API versioning and manage build artifacts. - Centralized common environment validation and CLI option definitions across build tools. - Cleaned up plugin manifest by removing Node.js and PNPM-related entities and legacy logic. - Improved logging and error handling in build and installation scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
291ee475fb |
fix(deps): update all non-major dependencies (#1366)
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@manypkg/cli](https://redirect.github.com/Thinkmill/manypkg) ([source](https://redirect.github.com/Thinkmill/manypkg/tree/HEAD/packages/cli)) | [`^0.23.0` -> `^0.24.0`](https://renovatebot.com/diffs/npm/@manypkg%2fcli/0.23.0/0.24.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [lucide-vue-next](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next)) | [`^0.488.0` -> `^0.506.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.488.0/0.506.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.8.1` -> `10.10.0`](https://renovatebot.com/diffs/npm/pnpm/10.8.1/10.10.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>Thinkmill/manypkg (@​manypkg/cli)</summary> ### [`v0.24.0`](https://redirect.github.com/Thinkmill/manypkg/blob/HEAD/packages/cli/CHANGELOG.md#0240) [Compare Source](https://redirect.github.com/Thinkmill/manypkg/compare/@manypkg/cli@0.23.0...@manypkg/cli@0.24.0) ##### Minor Changes - [#​248](https://redirect.github.com/Thinkmill/manypkg/pull/248) [`456ca21`]( |
||
|
|
948580917d |
chore(main): release 4.8.0 (#1377)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> |
||
|
|
39e83b2aa1 |
feat: move activation code logic into the API (#1369)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added comprehensive activation code customization service with dynamic theming, partner branding, and UI updates. - Introduced new GraphQL types and public queries for activation code, partner info, and theme data. - Implemented new web UI stores and components for activation modal, partner logos, and theme management. - **Improvements** - Removed legacy activation code scripts, PHP components, and plugin references, streamlining activation logic. - Enhanced configuration and environment support for activation and theming features. - Improved error handling, validation, and type safety in activation and customization modules. - **Bug Fixes** - Fixed color code validation and path handling in customization service. - **Chores** - Added pre-commit linting hooks and related configuration. - Cleaned up test and development environment files. - **Tests** - Added extensive tests covering activation customization service initialization, data handling, and file modifications. - Removed obsolete tests related to legacy activation code store. - **Refactor** - Migrated activation and partner branding logic from legacy scripts and PHP to TypeScript services and GraphQL resolvers. - Reorganized store and component architecture for activation-related features. - **Style** - Updated UI components for improved branding, theming, accessibility, and layout consistency. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Zack Spear <hi@zackspear.com> |
||
|
|
c5a394eddf |
chore(main): release 4.7.0 (#1332)
🤖 I have created a release *beep* *boop* --- ## [4.7.0](https://github.com/unraid/api/compare/v4.6.6...v4.7.0) (2025-04-24) ### Features * add basic docker network listing ([#1317](https://github.com/unraid/api/issues/1317)) ([ |
||
|
|
234573264c |
fix(deps): update all non-major dependencies (#1337)
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@pinia/nuxt](https://redirect.github.com/vuejs/pinia/tree/v3/packages/nuxt#readme) ([source](https://redirect.github.com/vuejs/pinia)) | [`^0.10.0` -> `^0.11.0`](https://renovatebot.com/diffs/npm/@pinia%2fnuxt/0.10.1/0.11.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [lucide-vue-next](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next)) | [`^0.487.0` -> `^0.488.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.487.0/0.488.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.7.1` -> `10.8.1`](https://renovatebot.com/diffs/npm/pnpm/10.7.1/10.8.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [vuetify-nuxt-module](https://redirect.github.com/vuetifyjs/nuxt-module) | [`0.18.5` -> `0.18.6`](https://renovatebot.com/diffs/npm/vuetify-nuxt-module/0.18.5/0.18.6) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>lucide-icons/lucide (lucide-vue-next)</summary> ### [`v0.488.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.488.0): Version 0.488.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.487.0...0.488.0) #### What's Changed - docs(readme): fix packages table by [@​realguse](https://redirect.github.com/realguse) in [https://github.com/lucide-icons/lucide/pull/2976](https://redirect.github.com/lucide-icons/lucide/pull/2976) - fix(dev): point urls on packages page to correct page by [@​briz123](https://redirect.github.com/briz123) in [https://github.com/lucide-icons/lucide/pull/2983](https://redirect.github.com/lucide-icons/lucide/pull/2983) - build(deps-dev): bump vite from 5.4.14 to 5.4.15 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/lucide-icons/lucide/pull/2946](https://redirect.github.com/lucide-icons/lucide/pull/2946) - Typo fix for [@​lucide/astro](https://redirect.github.com/lucide/astro) badge by [@​dotspencer](https://redirect.github.com/dotspencer) in [https://github.com/lucide-icons/lucide/pull/3004](https://redirect.github.com/lucide-icons/lucide/pull/3004) - removed flutter package link by [@​shamaamahh](https://redirect.github.com/shamaamahh) in [https://github.com/lucide-icons/lucide/pull/2999](https://redirect.github.com/lucide-icons/lucide/pull/2999) - feat(ci): added npm package provenance attestation by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3016](https://redirect.github.com/lucide-icons/lucide/pull/3016) - fix(icons): changed `text` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3029](https://redirect.github.com/lucide-icons/lucide/pull/3029) - fix(icons): changed `letter-text` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3030](https://redirect.github.com/lucide-icons/lucide/pull/3030) - fix(icons): changed `text-select` icon by [@​jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3028](https://redirect.github.com/lucide-icons/lucide/pull/3028) #### New Contributors - [@​dotspencer](https://redirect.github.com/dotspencer) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3004](https://redirect.github.com/lucide-icons/lucide/pull/3004) - [@​shamaamahh](https://redirect.github.com/shamaamahh) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2999](https://redirect.github.com/lucide-icons/lucide/pull/2999) **Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.487.0...0.488.0 </details> <details> <summary>pnpm/pnpm (pnpm)</summary> ### [`v10.8.1`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1081) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v10.8.0...v10.8.1) ##### Patch Changes - Removed bright white highlighting, which didn't look good on some light themes [#​9389](https://redirect.github.com/pnpm/pnpm/pull/9389). - If there is no pnpm related configuration in `package.json`, `onlyBuiltDependencies` will be written to `pnpm-workspace.yaml` file [#​9404](https://redirect.github.com/pnpm/pnpm/pull/9404). ### [`v10.8.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1080) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v10.7.1...v10.8.0) ##### Minor Changes - **Experimental.** A new hook is supported for updating configuration settings. The hook can be provided via `.pnpmfile.cjs`. For example: ```js module.exports = { hooks: { updateConfig: (config) => ({ ...config, nodeLinker: "hoisted", }), }, }; ``` - Now you can use the `pnpm add` command with the `--config` flag to install new configurational dependencies [#​9377](https://redirect.github.com/pnpm/pnpm/pull/9377). ##### Patch Changes - Do not hang indefinitely, when there is a glob that starts with `!/` in `pnpm-workspace.yaml`. This fixes a regression introduced by [#​9169](https://redirect.github.com/pnpm/pnpm/pull/9169). - `pnpm audit --fix` should update the overrides in `pnpm-workspace.yaml`. - `pnpm link` should update overrides in `pnpm-workspace.yaml`, not in `package.json` [#​9365](https://redirect.github.com/pnpm/pnpm/pull/9365). </details> <details> <summary>vuetifyjs/nuxt-module (vuetify-nuxt-module)</summary> ### [`v0.18.6`](https://redirect.github.com/vuetifyjs/nuxt-module/releases/tag/v0.18.6) [Compare Source](https://redirect.github.com/vuetifyjs/nuxt-module/compare/v0.18.5...v0.18.6) ##### 🚀 Features - **labs**: Enable labs components auto-import by default - by [@​userquin](https://redirect.github.com/userquin) in [https://github.com/vuetifyjs/nuxt-module/issues/309](https://redirect.github.com/vuetifyjs/nuxt-module/issues/309) [<samp>(92366)</samp>](https://redirect.github.com/vuetifyjs/nuxt-module/commit/9236675) ##### 🏎 Performance - **styles**: Use `fsp.access` and rethrow legitimate errors - by [@​userquin](https://redirect.github.com/userquin) in [https://github.com/vuetifyjs/nuxt-module/issues/308](https://redirect.github.com/vuetifyjs/nuxt-module/issues/308) [<samp>(b136e)</samp>](https://redirect.github.com/vuetifyjs/nuxt-module/commit/b136e56) ##### [View changes on GitHub](https://redirect.github.com/vuetifyjs/nuxt-module/compare/v0.18.5...v0.18.6) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/unraid/api). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
97ab6fbe32 |
refactor(api): vendor node_modules instead of pnpm store (#1346)
due to issues and redundancies in vendoring postinstall side-effects, such as compiled bindings for libvirt, we reverted to vendoring `node_modules`, installed via `npm` instead of a global pnpm store generated by `pnpm`. This should resolve runtime issues with e.g. the libvirt bindings because `node_modules` will contain the correct "side-effects." ## Summary by CodeRabbit - **New Features** - Introduced a command to remove stale archive files during the cleanup process. - Added functionality to archive the `node_modules` directory. - Enhanced dependency resolution with new overrides for specific packages. - **Chores** - Updated dependency settings by replacing one key dependency with an alternative and removing two unused ones, ensuring optimal deployment. - Enhanced the installation process to operate strictly in offline mode. - Updated artifact naming conventions for clarity and consistency in workflows. - Modified volume mappings in the Docker Compose configuration to reflect new artifact names. - Improved error handling in the GitHub Actions workflow by adding checks for required files. - Updated references in the build process to use a vendor store instead of the PNPM store. - Removed the management of PNPM store archives from the build process. |
||
|
|
36a7a28ed5 |
chore: move node to /usr/libexec (#1345)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Updated the Node.js runtime configuration for consistent execution. - **Refactor** - Centralized the Node.js binary path into a configurable parameter for improved maintainability. - **New Features** - Introduced a new entity declaration for `NODE_DIR` to streamline Node.js binary management in the plugin. - Updated the Node.js interpreter path in the application configuration. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1209701840918649 |
||
|
|
006fe1e762 |
chore(main): release 4.6.6 (#1328)
🤖 I have created a release *beep* *boop* --- ## [4.6.6](https://github.com/unraid/api/compare/v4.6.5...v4.6.6) (2025-04-03) ### Bug Fixes * issue with invalid builds for prod and tagging ([ |
||
|
|
38a9e36fcd |
chore(main): release 4.6.5 (#1327)
🤖 I have created a release *beep* *boop* --- ## [4.6.5](https://github.com/unraid/api/compare/v4.6.4...v4.6.5) (2025-04-03) ### Bug Fixes * unique artifact ID ([ |
||
|
|
3fff76d155 |
chore(main): release 4.6.4 (#1325)
🤖 I have created a release *beep* *boop* --- ## [4.6.4](https://github.com/unraid/api/compare/v4.6.3...v4.6.4) (2025-04-03) ### Bug Fixes * cleanup build pipeline ([#1326](https://github.com/unraid/api/issues/1326)) ([ |
||
|
|
cacb1c1d3d |
chore(main): release 4.6.3 (#1324)
🤖 I have created a release *beep* *boop* --- ## [4.6.3](https://github.com/unraid/api/compare/v4.6.2...v4.6.3) (2025-04-03) ### Bug Fixes * copy dynamix.unraid.net ([ |
||
|
|
79397eecff |
chore(main): release 4.6.2 (#1323)
🤖 I have created a release *beep* *boop* --- ## [4.6.2](https://github.com/unraid/api/compare/v4.6.1...v4.6.2) (2025-04-03) ### Bug Fixes * build issue ([ |
||
|
|
d0827df60e |
chore(main): release 4.6.1 (#1322)
🤖 I have created a release *beep* *boop* --- ## [4.6.1](https://github.com/unraid/api/compare/v4.6.0...v4.6.1) (2025-04-03) ### Bug Fixes * don't mv deploy on prod release ([ |
||
|
|
5a61aec841 |
chore(main): release 4.6.0 (#1311)
🤖 I have created a release *beep* *boop* --- ## [4.6.0](https://github.com/unraid/api/compare/v4.5.0...v4.6.0) (2025-04-03) ### Features * add gui settings field for sso users ([#1310](https://github.com/unraid/api/issues/1310)) ([ |
||
|
|
1f10b63c8b |
fix(plugin): flaky masking of benign warning during pnpm install (#1313)
The masking logic has a different effect in TTY and non-TTY environments bc pnpm will change the `install` reporter. Now, we: - set `--reporter=append-only` for consistency - replace the grep loop with `sed` to mask and redirect the benign "Ignored build scripts" warning <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Streamlined the background logging during dependency installations to improve overall efficiency and reduce complexity. This update enhances maintainability without any visible changes to the user experience. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
df168224ea |
refactor: webgui sync script to copy uui build (#1318)
- enhances `pnpm sync-webgui-repo` to include Unraid UI build + sync options - changed the dev intended ThemeSwitcher to use local / session storage <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - The theme switcher now respects your saved preferences, ensuring a more personalized interface. - The component build and synchronization process has been enhanced with new options for UI components and clearer feedback during operations. - New computed properties added for better state management in account and purchase functionalities. - **Bug Fixes** - Improved error handling and logging during the component build process. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
15153855f7 |
chore(main): release 4.5.0 (#1279)
🤖 I have created a release *beep* *boop* --- ## [4.5.0](https://github.com/unraid/api/compare/v4.4.1...v4.5.0) (2025-04-02) ### Features * add webgui theme switcher component ([#1304](https://github.com/unraid/api/issues/1304)) ([ |
||
|
|
f7f40d7906 |
fix(deps): update all non-major dependencies (#1278)
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@graphql-codegen/typescript-resolvers](https://redirect.github.com/dotansimha/graphql-code-generator) ([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/resolvers)) | [`4.4.4` -> `4.5.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-resolvers/4.4.4/4.5.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [lucide-vue-next](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next)) | [`^0.483.0` -> `^0.487.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.483.0/0.487.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.6.5` -> `10.7.1`](https://renovatebot.com/diffs/npm/pnpm/10.6.5/10.7.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [vuetify-nuxt-module](https://redirect.github.com/vuetifyjs/nuxt-module) | [`0.18.4` -> `0.18.5`](https://renovatebot.com/diffs/npm/vuetify-nuxt-module/0.18.4/0.18.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>dotansimha/graphql-code-generator (@​graphql-codegen/typescript-resolvers)</summary> ### [`v4.5.0`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/resolvers/CHANGELOG.md#450) [Compare Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typescript-resolvers@4.4.4...@graphql-codegen/typescript-resolvers@4.5.0) ##### Minor Changes - [#​10315](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10315) [`f6909d1`]( |
||
|
|
4964cf557b |
chore: update license fields in package.json (#1298)
Sets license for all node.js packages to `GPL-2.0-or-later` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Simplified license compliance verification by removing legacy script logic. - Updated licensing terms across components to GPL-2.0-or-later for broader compatibility. - **Documentation** - Revised setup instructions to indicate that the use of the Just build tool is now optional. - **New Features** - Added fallback support in the build automation tool to ensure smoother operations when targets are missing. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
e54f189630 |
feat: copy to webgui repo script docs + wc build options (#1285)
Previously the historical script only use to copy built web components into the webgui repo. The new script provides additional commands to find files in the API repo's plugin dir and attempts to find "new" files. Then a command to act upon each of these new file to sync in either direction, skip it, or ignore it. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced an interactive synchronization tool that streamlines file transfers between projects. - Added a new command to easily trigger the synchronization process, leveraging enhanced file management and notification capabilities. - **Chores** - Updated version control settings to ignore temporary synchronization files. - Removed an outdated file copying script for improved maintenance. - Added new dependencies to support enhanced functionality. - Modified a script to exclude specific files from deletion during the activation code setup process. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
d5a3d0dfac |
fix: OEM plugin issues (#1288)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - The file synchronization tool now requires an explicitly defined destination and offers a new option to remove remote password files before syncing. Additionally, synchronization now omits ownership, group, and permission metadata for smoother transfers. - The activation flow has been refined, with legacy authentication modifications removed to deliver a cleaner welcome modal experience. - A new variable has been introduced to enhance server state management. - **Refactor** - Internal configuration adjustments have been made to enhance component delivery and streamline system actions. - **Bug Fixes** - Updated handling of remote user and host parameters in the synchronization script for improved functionality. - Simplified the activation code removal process by focusing solely on the `.set-password.php` file restoration. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Zack Spear <hi@zackspear.com> |
||
|
|
7fb78494cb |
fix(api): redirect benign pnpm postinstall warning to log file (#1290)
which lives at `/var/log/unraid-api/build-scripts.log` |
||
|
|
d0d2ff65ed | fix: replace files lost during pruning | ||
|
|
9f492bf217 |
feat: api plugin system & offline versioned dependency vendoring (#1252)
- **New Features** - Created a dynamic plugin system for the API to enable community augmentation of GraphQL, CLI, and Cron functionalities capabilities. - Included an example plugin under `packages/unraid-api-plugin-health` that adds a new graphql query for API health checks. - Added `rc.unraid-api` commands for backing up, restoring, and installing production dependencies, streamlining maintenance and deployment. - Improved dependency vendoring by bundling a versioned pnpm store (instead of `node_modules`). Versioning will allow users to add plugins to a specific api release without requiring an internet connection on subsequent reboots. - **Chores** - Upgraded build workflows and versioning processes to ensure more reliable artifact handling and production packaging. |
||
|
|
c4b4d26af0 |
chore(main): release 4.4.1 (#1270)
🤖 I have created a release *beep* *boop* --- ## [4.4.1](https://github.com/unraid/api/compare/v4.4.0...v4.4.1) (2025-03-26) ### Bug Fixes * .env.production from allowing console logs on build ([#1273](https://github.com/unraid/api/issues/1273)) ([ |
||
|
|
0bcfb47bbc |
fix: patch version override logic incorrect (#1275)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Improved the system’s version update mechanism so that updates are applied only when the current system version matches the expected version. This enhancement ensures more consistent and reliable version checks during the update process. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
419c794e03 |
chore(main): release 4.4.0 (#1241)
🤖 I have created a release *beep* *boop* --- ## [4.4.0](https://github.com/unraid/api/compare/v4.3.1...v4.4.0) (2025-03-25) ### Features * add ReplaceKey functionality to plugin ([#1264](https://github.com/unraid/api/issues/1264)) ([ |