mirror of
https://github.com/unraid/api.git
synced 2025-12-31 05:29:48 -06:00
v4.19.1
2252 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
16905dd3a6 |
chore(main): release 4.19.1 (#1665)
🤖 I have created a release *beep* *boop* --- ## [4.19.1](https://github.com/unraid/api/compare/v4.19.0...v4.19.1) (2025-09-05) ### Bug Fixes * custom path detection to fix setup issues ([#1664](https://github.com/unraid/api/issues/1664)) ([v4.19.1 |
||
|
|
2ecdb99052 |
fix: custom path detection to fix setup issues (#1664)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - Bug Fixes - Improved reliability of background command execution by ensuring common system binary paths are available, reducing PATH-related errors. - Aligned environment handling for spawned processes with typical shell behavior to prevent intermittent failures across different environments. <!-- end of auto-generated comment: release notes by coderabbit.ai -->4.19.0-build-number-10 |
||
|
|
286f1be8ed |
chore: start job correctly when releasing (#1662)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - Chores - Updated build and release workflows to include an additional admin token secret used for triggering production releases via workflow dispatch. - Expanded secret mapping for the production build job to pass the token through the pipeline as needed. - No changes to application behavior, UI, or user workflows. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
bcefdd5261 |
chore: add Discord notification action for release announcements
- Beat EDACerton to the punch - Integrated a new action in the release workflow to send notifications to a Discord channel upon new releases. - The notification includes the release version, a link to the release, and the changelog, enhancing communication with users. This addition improves user engagement by providing timely updates on new releases directly in Discord. |
||
|
|
d3459ecbc6 |
chore(main): release 4.19.0 (#1650)
🤖 I have created a release *beep* *boop* --- ## [4.19.0](https://github.com/unraid/api/compare/v4.18.2...v4.19.0) (2025-09-04) ### Features * mount vue apps, not web components ([#1639](https://github.com/unraid/api/issues/1639)) ([v4.19.0 |
||
|
|
534a07788b |
fix(plugin): restore cleanup behavior for unsupported unraid versions (#1658)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Adds guided warnings and an explicit cleanup/uninstall workflow for unsupported Unraid versions, with safer removal paths by OS release. * **Bug Fixes** * Detects and removes both new and legacy Connect configurations, ensuring proper sign-out and web-server reload. * Strengthens version gating to avoid problematic pre-release builds and advises uninstall/upgrade when needed. * **Chores** * Lowers declared minimum Unraid version to broaden compatibility. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
239cdd6133 | fix: info alert docker icon (#1661) | ||
|
|
77cfc07dda |
refactor: enhance CSS structure with @layer for component styles (#1660)
- Introduced @layer directive to ensure base styles have lower priority than Tailwind utilities. - Organized CSS resets for box-sizing, figures, headings, paragraphs, and unordered lists under a single @layer base block for improved maintainability. These changes streamline the CSS structure and enhance compatibility with Tailwind CSS utilities. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - Style - Wrapped core resets in a base style layer, adjusting cascade with utility classes. - Applied global box-sizing within the base layer. - Consolidated heading and paragraph resets into the layer. - Added a reset for unordered lists to remove default bullets and padding. - Retained the logo figure reset within the layer. - Updated formatting and header comments to reflect the layering approach. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
728b38ac11 |
fix: enhance getKeyFile function to handle missing key file gracefully (#1659)
- Updated the getKeyFile function to catch ENOENT errors when the specified key file does not exist, returning an empty string instead of throwing an error. - Added new tests to verify the behavior of getKeyFile when the key file is missing and when it exists, ensuring robust error handling and correct functionality. These changes improve the reliability of the key file retrieval process in the application. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - None - Bug Fixes - Prevents errors when the key file is missing by returning an empty value instead of failing, while preserving existing behaviors in other states. - Tests - Refactored tests to use a mocked filesystem with better isolation. - Added scenarios for missing key files and correctly decoded keys. - Improved assertions for clearer, deterministic outcomes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> |
||
|
|
44774d0acd |
fix: UnraidToaster component and update dialog close button (#1657)
- Introduced a new UnraidToaster component for displaying notifications with customizable positions. - Updated the DialogClose component to use a span element for better semantic structure. - Enhanced CSS for the sonner component to ensure proper layout and styling. These changes improve user feedback through notifications and refine the dialog close button's implementation. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a toaster notifications component with configurable screen position, rich colors, and a close button; programmatic and legacy mounting helpers exposed. * **Style** * Updated toast close-button spacing and min-width behavior. * Simplified dialog close-button rendering and removed redundant style resets. * Reduced SSO provider icon size and added SSO button font-size tokens. * **Tests** * Added unit tests covering component mounting and global exports. * **Chores** * Deployment now performs broader remote cleanup before syncing. * **Chores** * Type declarations and tsconfig updated for global mount/utility typings. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
e204eb80a0 |
fix: oidc cache busting issues fixed (#1656)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - Bug Fixes - SSO/OIDC provider changes now take effect immediately by clearing caches on updates, deletes, and settings changes. - Updating a provider’s issuer no longer requires an API restart. - Tests - Added extensive test coverage for OIDC config caching, including per‑provider and global invalidation and manual/automatic configuration paths. - Chores - Updated internal module wiring to resolve circular dependencies; no user-facing changes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
0c727c37f4 |
refactor: update UserProfile positioning and clean up unraid components
- Adjusted the positioning of the UserProfile component to be absolute, ensuring it aligns correctly within its parent container. - Modified the clean-unraid.sh script to remove the entire components directory instead of just the standalone apps directory, enhancing cleanup efficiency. - Added a cleanup step in deploy-dev.sh to clear the remote standalone directory before deployment, ensuring a fresh setup. These changes improve the layout of the UserProfile component and streamline the deployment process by ensuring no residual files remain. |
||
|
|
292bc0fc81 |
fix: api version json response (#1653)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Version command now supports JSON output via a -j/--json flag, returning version, build (when available), and a combined value. Default human-readable output remains unchanged. * **Tests** * Added comprehensive tests for version command behavior across human-readable and JSON modes, including scenarios with and without build metadata. * **Chores** * Bumped API configuration version from 4.18.1 to 4.18.2. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
53f501e1a7 |
refactor: update test for hidden element mounting in vue-mount-app
- Renamed test case to clarify that the component should mount even when the element is hidden. - Adjusted assertions to ensure that hidden elements can still mount successfully without triggering warnings. This change enhances the clarity and reliability of the test suite for the vue-mount-app component. |
||
|
|
6cf7c88242 |
fix: enhance DOM validation and cleanup in vue-mount-app
- Improved validation logic for mounted elements to ensure stable DOM connections and prevent manipulation issues. - Added cleanup step to clear existing unraid-components directory before installation, ensuring a clean setup. This update aims to enhance the reliability of component mounting and reduce potential UI issues. |
||
|
|
33774aa596 |
fix: vue mounting logic with tests (#1651)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * Bug Fixes * Prevents duplicate modal instances and remounts, improving stability across pages. * Improves auto-mount reliability with better DOM validation and recovery from mount errors. * Enhances cleanup during unmounts to avoid residual artifacts and intermittent UI issues. * More robust handling of shadow DOM and problematic DOM structures, reducing crashes. * Style * Adds extra top margin to the OS version controls for improved spacing. * Tests * Introduces a comprehensive test suite covering mounting, unmounting, error recovery, i18n, and global state behaviors. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
88087d5201 |
feat: mount vue apps, not web components (#1639)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Standalone web bundle with auto-mount utilities and a self-contained test page. * New responsive modal components for consistent mobile/desktop dialogs. * Header actions to copy OS/API versions. * **Improvements** * Refreshed UI styles (muted borders), accessibility and animation refinements. * Theming updates and Tailwind v4–aligned, component-scoped styles. * Runtime GraphQL endpoint override and CSRF header support. * **Bug Fixes** * Safer network fetching and improved manifest/asset loading with duplicate protection. * **Tests/Chores** * Parallel plugin tests, new extractor test suite, and updated build/test scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
5d89682a3f |
chore(main): release 4.18.2 (#1643)
🤖 I have created a release *beep* *boop* --- ## [4.18.2](https://github.com/unraid/api/compare/v4.18.1...v4.18.2) (2025-09-03) ### Bug Fixes * add missing CPU guest metrics to CPU responses ([#1644](https://github.com/unraid/api/issues/1644)) ([v4.18.2 |
||
|
|
bc15bd3d70 | fix(plugin): raise minimum unraid os version to 6.12.15 (#1649) | ||
|
|
7c3aee8f3f |
fix: use shared bg & border color for styled toasts (#1647)
Addresses user complaints about light colored notifications in dark themes. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - Introduced type-specific toast color tokens (success, info, warning, error) for richer, clearer toast styling. - Applied consistent theming across light, inverted, and dark modes to improve readability and contrast. - Enabled compatibility with rich color settings for toasts. - Bug Fixes - Corrected a CSS comment block to ensure styles compile and apply reliably. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
c7c3bb57ea |
fix: update OIDC URL validation and add tests (#1646)
- Updated the OIDC issuer URL validation to prevent trailing slashes and whitespace. - Introduced a utility class `OidcUrlPatterns` for managing URL patterns and validation logic. - Added comprehensive tests for the new URL validation logic and examples to ensure correctness. - Bumped version to 4.18.1 in the configuration file. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - Added strict validation for OIDC issuer URLs in the SSO configuration form, with clearer guidance to avoid trailing slashes. - Bug Fixes - Prevented misconfiguration by rejecting issuer URLs with trailing slashes (e.g., Google issuer), avoiding double slashes in discovery URLs. - Tests - Introduced comprehensive unit tests covering issuer URL validation, patterns, and real-world scenarios to ensure reliability. - Chores - Bumped version to 4.18.1. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
99dbad57d5 |
fix: add missing CPU guest metrics to CPU responses (#1644)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - CPU load metrics now include guest runtime and hypervisor steal time percentages, exposed as additional fields in CPU load responses (per‑CPU). - Tests - Added comprehensive unit tests for CPU info and load generation, including edge cases and validation of the new guest and steal metrics. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
c42f79d406 | chore: add code coverage monitoring (#1645) | ||
|
|
4d8588b173 |
fix: update GitHub Actions token for workflow trigger
Replaced the token used for triggering workflows in the build-plugin.yml file from WORKFLOW_TRIGGER_PAT to UNRAID_BOT_GITHUB_ADMIN_TOKEN for improved security and access control. |
||
|
|
0d1d27064e |
chore(main): release 4.18.1 (#1641)
🤖 I have created a release *beep* *boop* --- ## [4.18.1](https://github.com/unraid/api/compare/v4.18.0...v4.18.1) (2025-09-03) ### Bug Fixes * OIDC and API Key management issues ([#1642](https://github.com/unraid/api/issues/1642)) ([v4.18.1 |
||
|
|
0fe2c2c1c8 | fix: OIDC and API Key management issues (#1642) | ||
|
|
a8e4119270 |
fix: rm redundant emission to $HOME/.pm2/logs (#1640)
Override the pm2 daemon's emission of `logs/unraid-api-{out,error}.log`,
which is a duplicate of the stdout appended to
`/var/log/graphql-api.log`.
Correctly implements the sane interpretation of what the `log_file`
configuration does.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Chores**
* Improved process logging by separating standard output and error
streams while supporting merged logs when multiple sources are present.
* Enhances log clarity and troubleshooting without changing application
behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
|
||
|
|
372a4ebb42 |
chore(main): release 4.18.0 (#1636)
🤖 I have created a release *beep* *boop* --- ## [4.18.0](https://github.com/unraid/api/compare/v4.17.0...v4.18.0) (2025-09-02) ### Features * **api:** enhance OIDC redirect URI handling in service and tests ([#1618](https://github.com/unraid/api/issues/1618)) ([v4.18.0 |
||
|
|
4e945f5f56 |
feat(api): enhance OIDC redirect URI handling in service and tests (#1618)
- Updated `getRedirectUri` method in `OidcAuthService` to handle various edge cases for redirect URIs, including full URIs, malformed URLs, and default ports. - Added comprehensive tests for `OidcAuthService` to validate redirect URI construction and error handling. - Modified `RestController` to utilize `redirect_uri` query parameter for authorization requests. - Updated frontend components to include `redirect_uri` in authorization URLs, ensuring correct handling of different protocols and ports. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Stronger OIDC redirect_uri validation and an admin GraphQL endpoint to view full OIDC configuration. * OIDC Debug Logs UI (panel, button, modal), enhanced log viewer with presets/filters, ANSI-colored rendering, and a File Viewer component. * New GraphQL queries to list and fetch config files; API Config Download page. * **Refactor** * Centralized, modular OIDC flows and safer redirect handling; topic-based log subscriptions with a watcher manager for scalable live logs. * **Documentation** * Cache TTL guidance clarified to use milliseconds. * **Chores** * Added ansi_up and escape-html deps; improved log formatting; added root codegen script. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> |
||
|
|
6356f9c41d |
chore: lint unraid ui (#1638)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - Fullscreen dialogs now use dedicated open/close animations for smoother transitions. - UX - Added a “Loading Notifications...” message while notifications are being fetched. - Style - Standardized Tailwind utility class ordering across numerous components for consistent styling; no functional or visual changes expected. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
a1ee915ca5 |
fix(cli): support --log-level for start and restart cmds (#1623)
Resolve #1614 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Start and Restart commands accept a validated --log-level option (now includes "fatal"); chosen level is applied to the running/restarted service and defaults to the LOG_LEVEL environment value when set. * **Documentation** * CLI docs updated to list the --log-level option and allowed levels (including fatal), show LOG_LEVEL as an environment-variable alternative, and include usage examples. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
c147a6b507 |
fix: api key creation cli (#1637)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - CLI now prompts for roles/permissions only when not provided. - Bug Fixes - Existing API keys are detected by name during overwrite checks. - Invalid role inputs are filtered out with clear warnings. - Refactor - Centralized role parsing/validation with improved error messages. - CLI create flow prompts only when minimum info is missing and uses a sensible default description. - Tests - Added comprehensive unit tests for role parsing and CLI flows (create, retrieve, overwrite). - Chores - Updated API configuration version to 4.17.0. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
9d42b36f74 |
fix: confusing server -> status query (#1635)
represent the target server's status instead of whether it's connected to Mothership. Resolves #1627 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - Bug Fixes - Ensures the local server is handled consistently as a single server across views; list views show it as a single-item list when applicable. - Server status now reliably displays as Online for the local server. - Documentation - Added a clearer description for the server status field in the API schema to improve tooltips and autogenerated docs. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
26a95af953 |
fix: use unraid css variables in sonner (#1634)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - Style - Unified toast colors with theme variables for consistent light/dark theming. - Refined close button colors, borders, and hover state for improved contrast and clarity. - Updated loading bar color to better align with muted text tones. - Visual-only updates; no behavioral changes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
0ead267838 |
chore(main): release 4.17.0 (#1631)
🤖 I have created a release *beep* *boop* --- ## [4.17.0](https://github.com/unraid/api/compare/v4.16.0...v4.17.0) (2025-08-27) ### Features * add tailwind class sort plugin ([#1562](https://github.com/unraid/api/issues/1562)) ([v4.17.0 |
||
|
|
163763f9e5 |
chore(deps): pin dependency prettier-plugin-tailwindcss to 0.6.14 (#1632)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [prettier-plugin-tailwindcss](https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss) | devDependencies | pin | [`^0.6.14` -> `0.6.14`](https://renovatebot.com/diffs/npm/prettier-plugin-tailwindcss/0.6.14/0.6.14) | Add the preset `:preserveSemverRanges` to your config if you don't want to pin your dependencies. --- ### 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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuODIuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
6469d002b7 |
fix: cleanup obsoleted legacy api keys on api startup (cli / connect) (#1630)
- these keys have been replaced with a session based authorization system |
||
|
|
ab11e7ff7f |
feat: add tailwind class sort plugin (#1562)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated code formatting tools to include support for Tailwind CSS-specific formatting. * Adjusted code formatting issue reporting from errors to warnings for a smoother development experience. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: mdatelle <mike@datelle.net> Co-authored-by: Eli Bosley <ekbosley@gmail.com> |
||
|
|
7316dc753f |
fix(deps): update all non-major dependencies (#1580)
This PR contains the following updates: | Package | Change | Age | Confidence | Type | Update | |---|---|---|---|---|---| | [@apollo/client](https://www.apollographql.com/docs/react/) ([source](https://redirect.github.com/apollographql/apollo-client)) | [`3.13.9` -> `3.14.0`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.9/3.14.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@apollo/client](https://www.apollographql.com/docs/react/) ([source](https://redirect.github.com/apollographql/apollo-client)) | [`3.13.9` -> `3.14.0`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.9/3.14.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | minor | | [@apollo/client](https://www.apollographql.com/docs/react/) ([source](https://redirect.github.com/apollographql/apollo-client)) | [`3.13.9` -> `3.14.0`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.9/3.14.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@eslint/js](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js)) | [`9.33.0` -> `9.34.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.33.0/9.34.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@floating-ui/dom](https://floating-ui.com) ([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/dom)) | [`1.7.3` -> `1.7.4`](https://renovatebot.com/diffs/npm/@floating-ui%2fdom/1.7.3/1.7.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@floating-ui/vue](https://floating-ui.com/docs/vue) ([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/vue)) | [`1.1.8` -> `1.1.9`](https://renovatebot.com/diffs/npm/@floating-ui%2fvue/1.1.8/1.1.9) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@ianvs/prettier-plugin-sort-imports](https://redirect.github.com/ianvs/prettier-plugin-sort-imports) | [`4.6.1` -> `4.6.3`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/4.6.1/4.6.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@internationalized/number](https://redirect.github.com/adobe/react-spectrum) | [`3.6.4` -> `3.6.5`](https://renovatebot.com/diffs/npm/@internationalized%2fnumber/3.6.4/3.6.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@nestjs/testing](https://nestjs.com) ([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/testing)) | [`11.1.5` -> `11.1.6`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/11.1.5/11.1.6) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@nuxt/devtools](https://devtools.nuxt.com) ([source](https://redirect.github.com/nuxt/devtools/tree/HEAD/packages/devtools)) | [`2.6.2` -> `2.6.3`](https://renovatebot.com/diffs/npm/@nuxt%2fdevtools/2.6.2/2.6.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@nuxt/eslint](https://redirect.github.com/nuxt/eslint) ([source](https://redirect.github.com/nuxt/eslint/tree/HEAD/packages/module)) | [`1.8.0` -> `1.9.0`](https://renovatebot.com/diffs/npm/@nuxt%2feslint/1.8.0/1.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@nuxt/ui](https://ui.nuxt.com) ([source](https://redirect.github.com/nuxt/ui)) | [`3.3.0` -> `3.3.2`](https://renovatebot.com/diffs/npm/@nuxt%2fui/3.3.0/3.3.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@rollup/rollup-linux-x64-gnu](https://rollupjs.org/) ([source](https://redirect.github.com/rollup/rollup)) | [`4.46.2` -> `4.49.0`](https://renovatebot.com/diffs/npm/@rollup%2frollup-linux-x64-gnu/4.46.2/4.49.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | optionalDependencies | minor | | [@storybook/addon-docs](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/docs) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/docs)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/@storybook%2faddon-docs/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@storybook/addon-links](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/links) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/links)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@storybook/builder-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/builders/builder-vite)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/@storybook%2fbuilder-vite/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@storybook/vue3-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/frameworks/vue3-vite) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/frameworks/vue3-vite)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/@storybook%2fvue3-vite/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.13.3` -> `1.13.5`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.13.3/1.13.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@tailwindcss/cli](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli)) | [`4.1.11` -> `4.1.12`](https://renovatebot.com/diffs/npm/@tailwindcss%2fcli/4.1.11/4.1.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@tailwindcss/vite](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite)) | [`4.1.11` -> `4.1.12`](https://renovatebot.com/diffs/npm/@tailwindcss%2fvite/4.1.11/4.1.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/bun](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/bun) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bun)) | [`1.2.20` -> `1.2.21`](https://renovatebot.com/diffs/npm/@types%2fbun/1.2.20/1.2.21) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/dockerode](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/dockerode) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode)) | [`3.3.42` -> `3.3.43`](https://renovatebot.com/diffs/npm/@types%2fdockerode/3.3.42/3.3.43) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`22.17.1` -> `22.18.0`](https://renovatebot.com/diffs/npm/@types%2fnode/22.17.1/22.18.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@types/wtfnode](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/wtfnode) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/wtfnode)) | [`0.7.3` -> `0.10.0`](https://renovatebot.com/diffs/npm/@types%2fwtfnode/0.7.3/0.10.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | [`8.39.1` -> `8.41.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.39.1/8.41.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@vue/tsconfig](https://redirect.github.com/vuejs/tsconfig) | [`0.7.0` -> `0.8.1`](https://renovatebot.com/diffs/npm/@vue%2ftsconfig/0.7.0/0.8.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@vueuse/components](https://redirect.github.com/vueuse/vueuse/tree/main/packages/components#readme) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/components)) | [`13.6.0` -> `13.8.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcomponents/13.6.0/13.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@vueuse/core](https://redirect.github.com/vueuse/vueuse) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core)) | [`13.6.0` -> `13.8.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.6.0/13.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@vueuse/core](https://redirect.github.com/vueuse/vueuse) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core)) | [`13.6.0` -> `13.8.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.6.0/13.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@vueuse/integrations](https://redirect.github.com/vueuse/vueuse/tree/main/packages/integrations#readme) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/integrations)) | [`13.6.0` -> `13.8.0`](https://renovatebot.com/diffs/npm/@vueuse%2fintegrations/13.6.0/13.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@vueuse/nuxt](https://redirect.github.com/vueuse/vueuse/tree/main/packages/nuxt#readme) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/nuxt)) | [`13.6.0` -> `13.8.0`](https://renovatebot.com/diffs/npm/@vueuse%2fnuxt/13.6.0/13.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [cache-manager](https://redirect.github.com/jaredwray/cacheable) ([source](https://redirect.github.com/jaredwray/cacheable/tree/HEAD/packages/cache-manager)) | [`7.1.1` -> `7.2.0`](https://renovatebot.com/diffs/npm/cache-manager/7.1.1/7.2.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [chalk](https://redirect.github.com/chalk/chalk) | [`5.5.0` -> `5.6.0`](https://renovatebot.com/diffs/npm/chalk/5.5.0/5.6.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [concurrently](https://redirect.github.com/open-cli-tools/concurrently) | [`9.2.0` -> `9.2.1`](https://renovatebot.com/diffs/npm/concurrently/9.2.0/9.2.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [dayjs](https://day.js.org) ([source](https://redirect.github.com/iamkun/dayjs)) | [`1.11.13` -> `1.11.14`](https://renovatebot.com/diffs/npm/dayjs/1.11.13/1.11.14) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [eslint](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint)) | [`9.33.0` -> `9.34.0`](https://renovatebot.com/diffs/npm/eslint/9.33.0/9.34.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [eslint-plugin-storybook](https://redirect.github.com/storybookjs/storybook/code/lib/eslint-plugin#readme) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/eslint-plugin)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/eslint-plugin-storybook/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [inquirer](https://redirect.github.com/SBoudrias/Inquirer.js/blob/main/packages/inquirer/README.md) ([source](https://redirect.github.com/SBoudrias/Inquirer.js)) | [`12.9.1` -> `12.9.4`](https://renovatebot.com/diffs/npm/inquirer/12.9.1/12.9.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [jose](https://redirect.github.com/panva/jose) | [`6.0.12` -> `6.0.13`](https://renovatebot.com/diffs/npm/jose/6.0.12/6.0.13) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | patch | | [jose](https://redirect.github.com/panva/jose) | [`6.0.12` -> `6.0.13`](https://renovatebot.com/diffs/npm/jose/6.0.12/6.0.13) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [jose](https://redirect.github.com/panva/jose) | [`6.0.12` -> `6.0.13`](https://renovatebot.com/diffs/npm/jose/6.0.12/6.0.13) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [lucide-vue-next](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next)) | [`0.539.0` -> `0.542.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.539.0/0.542.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [marked](https://marked.js.org) ([source](https://redirect.github.com/markedjs/marked)) | [`16.1.2` -> `16.2.1`](https://renovatebot.com/diffs/npm/marked/16.1.2/16.2.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [nest-commander](https://nest-commander.jaymcdoniel.dev) ([source](https://redirect.github.com/jmcdo29/nest-commander/tree/HEAD/pacakges/nest-commander)) | [`3.18.0` -> `3.19.0`](https://renovatebot.com/diffs/npm/nest-commander/3.18.0/3.19.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [openid-client](https://redirect.github.com/panva/openid-client) | [`6.6.2` -> `6.6.4`](https://renovatebot.com/diffs/npm/openid-client/6.6.2/6.6.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [pino](https://getpino.io) ([source](https://redirect.github.com/pinojs/pino)) | [`9.8.0` -> `9.9.0`](https://renovatebot.com/diffs/npm/pino/9.8.0/9.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.14.0` -> `10.15.0`](https://renovatebot.com/diffs/npm/pnpm/10.14.0/10.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | packageManager | minor | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.14.0` -> `10.15.0`](https://renovatebot.com/diffs/npm/pnpm/10.14.0/10.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | engines | minor | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | `10.14.0` -> `10.15.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | uses-with | minor | | [python](https://redirect.github.com/actions/python-versions) | `3.13.6` -> `3.13.7` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | uses-with | patch | | [reka-ui](https://redirect.github.com/unovue/reka-ui) | [`2.4.1` -> `2.5.0`](https://renovatebot.com/diffs/npm/reka-ui/2.4.1/2.5.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [rollup-plugin-node-externals](https://redirect.github.com/Septh/rollup-plugin-node-externals) | [`8.0.1` -> `8.1.0`](https://renovatebot.com/diffs/npm/rollup-plugin-node-externals/8.0.1/8.1.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [storybook](https://storybook.js.org) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/core)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/storybook/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [systeminformation](https://systeminformation.io) ([source](https://redirect.github.com/sebhildebrandt/systeminformation)) | [`5.27.7` -> `5.27.8`](https://renovatebot.com/diffs/npm/systeminformation/5.27.7/5.27.8) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.1.11` -> `4.1.12`](https://renovatebot.com/diffs/npm/tailwindcss/4.1.11/4.1.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.1.11` -> `4.1.12`](https://renovatebot.com/diffs/npm/tailwindcss/4.1.11/4.1.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | patch | | [tsx](https://tsx.is) ([source](https://redirect.github.com/privatenumber/tsx)) | [`4.20.3` -> `4.20.5`](https://renovatebot.com/diffs/npm/tsx/4.19.3/4.20.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [tsx](https://tsx.is) ([source](https://redirect.github.com/privatenumber/tsx)) | [`4.20.3` -> `4.20.5`](https://renovatebot.com/diffs/npm/tsx/4.20.3/4.20.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [tw-animate-css](https://redirect.github.com/Wombosvideo/tw-animate-css) | [`1.3.6` -> `1.3.7`](https://renovatebot.com/diffs/npm/tw-animate-css/1.3.6/1.3.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [tw-animate-css](https://redirect.github.com/Wombosvideo/tw-animate-css) | [`1.3.6` -> `1.3.7`](https://renovatebot.com/diffs/npm/tw-animate-css/1.3.6/1.3.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.39.1` -> `8.41.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.39.1/8.41.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.13.0` -> `7.15.0`](https://renovatebot.com/diffs/npm/undici/7.13.0/7.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | minor | | [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.13.0` -> `7.15.0`](https://renovatebot.com/diffs/npm/undici/7.13.0/7.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.13.0` -> `7.15.0`](https://renovatebot.com/diffs/npm/undici/7.13.0/7.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [unplugin-swc](https://redirect.github.com/unplugin/unplugin-swc/tree/main/#readme) ([source](https://redirect.github.com/unplugin/unplugin-swc)) | [`1.5.5` -> `1.5.7`](https://renovatebot.com/diffs/npm/unplugin-swc/1.5.5/1.5.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`7.1.1` -> `7.1.3`](https://renovatebot.com/diffs/npm/vite/7.1.1/7.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vite-plugin-vue-devtools](https://redirect.github.com/vuejs/devtools) ([source](https://redirect.github.com/vuejs/devtools/tree/HEAD/packages/vite)) | [`8.0.0` -> `8.0.1`](https://renovatebot.com/diffs/npm/vite-plugin-vue-devtools/8.0.0/8.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme) ([source](https://redirect.github.com/vuejs/core)) | [`3.5.18` -> `3.5.20`](https://renovatebot.com/diffs/npm/vue/3.5.18/3.5.20) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme) ([source](https://redirect.github.com/vuejs/core)) | [`3.5.18` -> `3.5.20`](https://renovatebot.com/diffs/npm/vue/3.5.18/3.5.20) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | patch | | [vue-tsc](https://redirect.github.com/vuejs/language-tools) ([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc)) | [`3.0.5` -> `3.0.6`](https://renovatebot.com/diffs/npm/vue-tsc/3.0.5/3.0.6) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vuetify](https://vuetifyjs.com) ([source](https://redirect.github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify)) | [`3.9.4` -> `3.9.6`](https://renovatebot.com/diffs/npm/vuetify/3.9.4/3.9.6) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`4.28.1` -> `4.33.0`](https://renovatebot.com/diffs/npm/wrangler/4.28.1/4.33.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [zx](https://google.github.io/zx/) ([source](https://redirect.github.com/google/zx)) | [`8.8.0` -> `8.8.1`](https://renovatebot.com/diffs/npm/zx/8.3.2/8.8.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [zx](https://google.github.io/zx/) ([source](https://redirect.github.com/google/zx)) | [`8.8.0` -> `8.8.1`](https://renovatebot.com/diffs/npm/zx/8.8.0/8.8.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | --- ### Release Notes <details> <summary>apollographql/apollo-client (@​apollo/client)</summary> ### [`v3.14.0`](https://redirect.github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#3140) [Compare Source]( |
||
|
|
1bf74e9d6c |
chore(main): release 4.16.0 (#1613)
🤖 I have created a release *beep* *boop* --- ## [4.16.0](https://github.com/unraid/api/compare/v4.15.1...v4.16.0) (2025-08-27) ### Features * add `parityCheckStatus` field to `array` query ([#1611](https://github.com/unraid/api/issues/1611)) ([v4.16.0 |
||
|
|
9cd0d6ac65 |
fix: remove unused api key calls (#1628)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - None. - Bug Fixes - Improved reliability of API key updates and clearer errors when keys are missing or data is invalid. - More robust initialization to prevent intermittent failures during API key operations. - Refactor - Simplified API key management by unifying lookup flows and adopting consistent async handling. - Tests - Expanded coverage for error scenarios and strengthened test setup for initialization and file-read issues. - Chores - Minor formatting cleanups. <!-- end of auto-generated comment: release notes by coderabbit.ai -->4.15.1-build-number-149 |
||
|
|
f0348aa038 |
refactor: simplify DockerService by removing OnModuleInit implementation
Removed the OnModuleInit interface and its associated initialization logic from DockerService. This change streamlines the service by eliminating unnecessary complexity related to module initialization, while maintaining core functionality. |
||
|
|
c1ab3a4746 |
refactor: implement local-session for internal client auth (#1606)
Remove the confusing API keys that were auto-generated for the CLI & Connect. Instead, support authentication via a custom `local-session` header. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Local-session authentication for internal/CLI requests (x-local-session) with generation, validation, on-disk persistence, and lifecycle init. * Internal client gains multi-strategy auth (local session, cookie, or API key), supports subscriptions/origin, and can be cleared/recreated. * **Security** * Embedded development API keys removed from the repository. * **Refactor** * Canonical internal client introduced; consumers migrated from legacy CLI key services. * **Tests / Chores** * Tests, env, and gitignore updated for local-session and canonical-client changes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com> |
||
|
|
7d67a40433 |
fix: correctly parse periods in share names from ini file (#1629)
Share names live as section headers in `emhttp/state/shares.ini`. However, periods in ini section headers typically denote nested hierarchy. This behavior is disabled in unraid's php setup, but cannot be disabled/configured in the api's current ini parser. So, we perform post-processing to reconcile nested objects into dot notation. Known issue: trailing and leading periods will not be treated as distinct from shares without them. i.e. `.share.name.` will conflict with `share.name`, `.share.name`, or `share.name.`. The last of the conflicting names will be used/exposed. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - Support shares with periods and emoji in their names across parsing and listings. - Bug Fixes - Fixed configuration parsing for section names containing periods to ensure affected shares load and display correctly. - Standardized reporting of encryption status for all shares. - Tests - Expanded coverage to validate parsing and retrieval of shares with special characters (periods and emoji), ensuring consistent behavior across modules. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
674323fd87 |
feat: generated UI API key management + OAuth-like API Key Flows (#1609)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * API Key Authorization flow with consent screen, callback support, and a Tools page. * Schema-driven API Key creation UI with permission presets, templates, and Developer Authorization Link. * Effective Permissions preview and a new multi-select permission control. * **UI Improvements** * Mask/toggle API keys, copy-to-clipboard with toasts, improved select labels, new label styles, tab wrapping, and accordionized color controls. * **Documentation** * Public guide for the API Key authorization flow and scopes added. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
6947b5d4af |
fix(rc.unraid-api): remove profile sourcing (#1622)
This change removes the line that sources `/etc/profile` from the `rc.unraid-api` script. This is done to prevent unexpected side effects and improve the script's isolation. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> |
||
|
|
c4cc54923c | test: add integration tests for deleting invalid notifications (#1626) | ||
|
|
c508366702 |
feat: add parityCheckStatus field to array query (#1611)
Responds with a ParityCheck:
```ts
type ParityCheck {
"""Date of the parity check"""
date: DateTime
"""Duration of the parity check in seconds"""
duration: Int
"""Speed of the parity check, in MB/s"""
speed: String
"""Status of the parity check"""
status: ParityCheckStatus!
"""Number of errors during the parity check"""
errors: Int
"""Progress percentage of the parity check"""
progress: Int
"""Whether corrections are being written to parity"""
correcting: Boolean
"""Whether the parity check is paused"""
paused: Boolean
"""Whether the parity check is running"""
running: Boolean
}
enum ParityCheckStatus {
NEVER_RUN = 'never_run',
RUNNING = 'running',
PAUSED = 'paused',
COMPLETED = 'completed',
CANCELLED = 'cancelled',
FAILED = 'failed',
}
```
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- New Features
- Exposes a structured parity-check status for arrays with detailed
fields (status enum: NEVER_RUN, RUNNING, PAUSED, COMPLETED, CANCELLED,
FAILED), date, duration, speed, progress, errors, and running/paused
flags.
- Tests
- Adds comprehensive unit tests covering all parity-check states,
numeric edge cases, speed/date/duration/progress calculations, and
real-world scenarios.
- Refactor
- Safer numeric/date parsing and a new numeric-conversion helper; minor
formatting/cleanup in shared utilities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
|
||
|
|
9df6a3f5eb |
fix(connect): clear wanport upon disabling remote access (#1624)
Resolve #1615 -- lingering wanport caused issue with LAN Access via Connect, because those URL's are constructed using `wanport`, but since WAN access would be disabled, NGINX would not listen on the port. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * WAN access settings now correctly gate related options; UPnP only enables when WAN access is Always. * Static WAN port is applied only when eligible and is cleared when WAN access is disabled to avoid unintended overrides. * Dynamic remote access migration uses sanitized URLs to prevent propagation of user-provided addressing. * **Chores** * Minor ordering and formatting adjustments to reflect updated precedence and clarify behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
aa588883cc |
fix(connect): valid LAN FQDN while remote access is enabled (#1625)
Stop appending `wanport` to LAN FQDN when remote access is enabled. |