Skip to content

Conversation

elibosley
Copy link
Member

@elibosley elibosley commented Sep 15, 2025

  • Introduced a new test script for shell detection logic in verify_install.sh.
  • Updated the package.json to include a new test command for shell detection.
  • Enhanced the verify_install.sh script to accurately check the current shell interpreter using /proc and fallback methods.

This improves the testing framework and ensures better validation of shell detection functionality.

Summary by CodeRabbit

  • Bug Fixes
    • Installer now detects the actual interpreter more robustly and strictly requires Bash; non-Bash environments produce clear error messages and abort installation.
  • Tests
    • Added automated shell-detection tests to validate behavior across environments.
    • Test suite expanded to run the new shell-detection checks as part of the standard test command.

renovate bot and others added 5 commits September 12, 2025 15:41
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[@graphql-codegen/add](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/other/add))
| [`5.0.3` ->
`6.0.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fadd/5.0.3/6.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fadd/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fadd/5.0.3/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/cli](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/graphql-codegen-cli))
| [`5.0.7` ->
`6.0.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fcli/5.0.7/6.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fcli/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fcli/5.0.7/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/client-preset](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/presets/client))
| [`4.8.3` ->
`5.0.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fclient-preset/4.8.3/5.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fclient-preset/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fclient-preset/4.8.3/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/fragment-matcher](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/other/fragment-matcher))
| [`5.1.0` ->
`6.0.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ffragment-matcher/5.1.0/6.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ffragment-matcher/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ffragment-matcher/5.1.0/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/introspection](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/other/introspection))
| [`4.0.3` ->
`5.0.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fintrospection/4.0.3/5.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fintrospection/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fintrospection/4.0.3/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/typed-document-node](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/typed-document-node))
| [`5.1.2` ->
`6.0.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftyped-document-node/5.1.2/6.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftyped-document-node/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftyped-document-node/5.1.2/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/typescript](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/typescript))
| [`4.1.6` ->
`5.0.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript/4.1.6/5.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript/4.1.6/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/typescript-operations](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/operations))
| [`4.6.1` ->
`5.0.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-operations/4.6.1/5.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript-operations/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript-operations/4.6.1/5.0.0?slim=true)](https://docs.renovatebot.com/merge-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.5.1` ->
`5.0.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-resolvers/4.5.1/5.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript-resolvers/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript-resolvers/4.5.1/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/add)</summary>

###
[`v6.0.0`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/other/add/CHANGELOG.md#600)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/add@5.0.3...@graphql-codegen/add@6.0.0)

##### Major Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Drop Node 18 support

##### Patch Changes

- Updated dependencies
\[[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)]:
-
[@&#8203;graphql-codegen/plugin-helpers](https://redirect.github.com/graphql-codegen/plugin-helpers)@&#8203;6.0.0

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/cli)</summary>

###
[`v6.0.0`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/graphql-codegen-cli/CHANGELOG.md#600)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/cli@5.0.7...@graphql-codegen/cli@6.0.0)

##### Major Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Drop
[@&#8203;graphql-tools/prisma-loader](https://redirect.github.com/graphql-tools/prisma-loader)

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! - Add
`allowPartialOutputs` flag to partially write successful generation to
files

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Migrate inquirer to
[@&#8203;inquirer/prompts](https://redirect.github.com/inquirer/prompts)

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Bump dependencies major versions:

  - cosmiconfig v9
  - debounce v2
  - jiti v2.3

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Bump listr2 to v9

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Drop Node 18 support

##### Patch Changes

- Updated dependencies
\[[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)]:
-
[@&#8203;graphql-codegen/plugin-helpers](https://redirect.github.com/graphql-codegen/plugin-helpers)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/client-preset](https://redirect.github.com/graphql-codegen/client-preset)@&#8203;5.0.0
-
[@&#8203;graphql-codegen/core](https://redirect.github.com/graphql-codegen/core)@&#8203;5.0.0

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/client-preset)</summary>

###
[`v5.0.0`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/presets/client/CHANGELOG.md#500)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/client-preset@4.8.3...@graphql-codegen/client-preset@5.0.0)

##### Major Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
BREAKING CHANGE: Use Record\<PropertyKey, never> instead of {} for empty
object type

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Stop passing through the deprecated config option `dedupeFragments`

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Drop Node 18 support

##### Patch Changes

- Updated dependencies
\[[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/plugin-helpers](https://redirect.github.com/graphql-codegen/plugin-helpers)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/typescript](https://redirect.github.com/graphql-codegen/typescript)@&#8203;5.0.0
-
[@&#8203;graphql-codegen/typescript-operations](https://redirect.github.com/graphql-codegen/typescript-operations)@&#8203;5.0.0
-
[@&#8203;graphql-codegen/add](https://redirect.github.com/graphql-codegen/add)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/gql-tag-operations](https://redirect.github.com/graphql-codegen/gql-tag-operations)@&#8203;5.0.0
-
[@&#8203;graphql-codegen/typed-document-node](https://redirect.github.com/graphql-codegen/typed-document-node)@&#8203;6.0.0

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/fragment-matcher)</summary>

###
[`v6.0.0`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/other/fragment-matcher/CHANGELOG.md#600)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/fragment-matcher@5.1.0...@graphql-codegen/fragment-matcher@6.0.0)

##### Major Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Drop Node 18 support

##### Patch Changes

- Updated dependencies
\[[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)]:
-
[@&#8203;graphql-codegen/plugin-helpers](https://redirect.github.com/graphql-codegen/plugin-helpers)@&#8203;6.0.0

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/introspection)</summary>

###
[`v5.0.0`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/other/introspection/CHANGELOG.md#500)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/introspection@4.0.3...@graphql-codegen/introspection@5.0.0)

##### Major Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Drop Node 18 support

##### Patch Changes

- Updated dependencies
\[[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/plugin-helpers](https://redirect.github.com/graphql-codegen/plugin-helpers)@&#8203;6.0.0

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/typed-document-node)</summary>

###
[`v6.0.0`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/typed-document-node/CHANGELOG.md#600)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typed-document-node@5.1.2...@graphql-codegen/typed-document-node@6.0.0)

##### Major Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Drop Node 18 support

##### Patch Changes

- Updated dependencies
\[[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/plugin-helpers](https://redirect.github.com/graphql-codegen/plugin-helpers)@&#8203;6.0.0

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/typescript)</summary>

###
[`v5.0.0`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/typescript/CHANGELOG.md#500)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typescript@4.1.6...@graphql-codegen/typescript@5.0.0)

##### Major Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Remove NameNode override

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Drop Node 18 support

##### Patch Changes

- Updated dependencies
\[[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/plugin-helpers](https://redirect.github.com/graphql-codegen/plugin-helpers)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/schema-ast](https://redirect.github.com/graphql-codegen/schema-ast)@&#8203;5.0.0

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/typescript-operations)</summary>

###
[`v5.0.0`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/operations/CHANGELOG.md#500)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typescript-operations@4.6.1...@graphql-codegen/typescript-operations@5.0.0)

##### Major Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
BREAKING CHANGE: Use Record\<PropertyKey, never> instead of {} for empty
object type

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Drop Node 18 support

##### Patch Changes

- Updated dependencies
\[[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/plugin-helpers](https://redirect.github.com/graphql-codegen/plugin-helpers)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/typescript](https://redirect.github.com/graphql-codegen/typescript)@&#8203;5.0.0

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/typescript-resolvers)</summary>

###
[`v5.0.0`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/resolvers/CHANGELOG.md#500)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typescript-resolvers@4.5.2...@graphql-codegen/typescript-resolvers@5.0.0)

##### Major Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
BREAKING CHANGES: Do not generate \_\_isTypeOf for non-implementing
types or non-union members

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
BREAKING CHANGE: Use Record\<PropertyKey, never> instead of {} for empty
object type

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Ensure Federation Interfaces have `__resolveReference` if they are
resolvable entities

BREAKING CHANGES: Deprecate `onlyResolveTypeForInterfaces` because
majority of use cases cannot implement resolvers in Interfaces.
BREAKING CHANGES: Deprecate
`generateInternalResolversIfNeeded.__resolveReference` because types do
not have `__resolveReference` if they are not Federation entities or are
not resolvable. Users should not have to manually set this option. This
option was put in to wait for this major version.

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
BREAKING CHANGE: Improve Federation Entity's resolvers' parent param
type: These types were using reference types inline. This makes it hard
to handle mappers. The Parent type now all comes from
ParentResolverTypes to make handling mappers and parent types simpler.

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! - Fix
`mappers` usage with Federation

`mappers` was previously used as `__resolveReference`'s first param
(usually called "reference"). However, this is incorrect because
`reference` interface comes directly from `@key` and `@requires`
directives. This patch fixes the issue by creating a new
`FederationTypes` type and use it as the base for federation entity
types when being used to type entity references.

BREAKING CHANGES: No longer generate `UnwrappedObject` utility type, as
this was used to support the wrong previously generated type.

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Drop Node 18 support

##### Minor Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Report to meta user defined objects whether they have isTypeOf resolver

##### Patch Changes

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Update [@&#8203;requires](https://redirect.github.com/requires) type

-
[#&#8203;10218](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10218)
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! - Fix
fields or object types marked with
[@&#8203;external](https://redirect.github.com/external) being wrongly
generated

- Updated dependencies
\[[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2),
[`140298a`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/140298a33b257a0b7958e361971b5bc97bbc01c2)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/plugin-helpers](https://redirect.github.com/graphql-codegen/plugin-helpers)@&#8203;6.0.0
-
[@&#8203;graphql-codegen/typescript](https://redirect.github.com/graphql-codegen/typescript)@&#8203;5.0.0

###
[`v4.5.2`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/resolvers/CHANGELOG.md#452)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typescript-resolvers@4.5.1...@graphql-codegen/typescript-resolvers@4.5.2)

##### Patch Changes

-
[#&#8203;10419](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10419)
[`2fc3869`](https://redirect.github.com/dotansimha/graphql-code-generator/commit/2fc3869de216554fa896359a082066eaa18e8634)
Thanks
[@&#8203;chdanielmueller](https://redirect.github.com/chdanielmueller)!
- Fix enum resolver for partially mapped enumValues

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- Refactored teleport container management to be lazily created,
improving performance by avoiding unnecessary DOM manipulations.
- Updated `useTeleport` to dynamically determine the correct teleport
target based on mounted components.
- Removed the `ensureTeleportContainer` import from various components,
streamlining the mounting process.
- Adjusted the dropdown menu component to utilize a computed property
for teleport target management.
- Enhanced the component registry to support a unified app architecture,
replacing legacy mounting functions with a more efficient approach.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Support bundles may include the GraphQL API log when present.
  * OS version data loads lazily when the header dropdown first opens.
* Many UI components now load on demand via a unified mounting approach.

* **Bug Fixes**
  * Dropdowns and modals consistently stack above other UI elements.
  * Server status layout fixes improve small-screen alignment.

* **Breaking Changes**
* Teleport/mounting APIs and public teleport helper were
consolidated/removed; integrations may need update.

* **Tests**
* Extensive new unit tests added for mounting, teleport, modals, and
REST log handling.
<!-- 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>
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-node](https://redirect.github.com/actions/setup-node) |
action | major | `v4` -> `v5` |

---

### Release Notes

<details>
<summary>actions/setup-node (actions/setup-node)</summary>

###
[`v5`](https://redirect.github.com/actions/setup-node/compare/v4...v5)

[Compare
Source](https://redirect.github.com/actions/setup-node/compare/v4...v5)

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [type-fest](https://redirect.github.com/sindresorhus/type-fest) |
[`4.41.0` ->
`5.0.0`](https://renovatebot.com/diffs/npm/type-fest/4.41.0/5.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/type-fest/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/type-fest/4.41.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>sindresorhus/type-fest (type-fest)</summary>

###
[`v5.0.0`](https://redirect.github.com/sindresorhus/type-fest/releases/tag/v5.0.0)

[Compare
Source](https://redirect.github.com/sindresorhus/type-fest/compare/v4.41.0...v5.0.0)

##### Breaking

- This package is now pure ESM. **Please [read
this](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).**
- Require TypeScript 5.9
[`b5b0214`](https://redirect.github.com/sindresorhus/type-fest/commit/b5b0214)
- Require Node.js 20
[`cc2b0f2`](https://redirect.github.com/sindresorhus/type-fest/commit/cc2b0f2)
- Reminder: `type-fest` requires `strict: true` in your tsconfig.
- `StringKeyOf`: Rename to
[`KeyAsString`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/key-as-string.d.ts)
[`e492c9c`](https://redirect.github.com/sindresorhus/type-fest/commit/e492c9c)
-
[`ArrayTail`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/array-tail.d.ts):
Enable
[`preserveReadonly`](https://redirect.github.com/sindresorhus/type-fest/blob/68469722a9521122b6cb40376c4c4544aef28228/source/array-tail.d.ts#L8-L30)
by default and remove the option
[`b34b1d8`](https://redirect.github.com/sindresorhus/type-fest/commit/b34b1d8)
-
[`CamelCase`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/camel-case.d.ts)
/
[`CamelCasedProperties`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/camel-cased-properties.d.ts)
/
[`CamelCasedPropertiesDeep`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/camel-cased-properties-deep.d.ts)
/
[`PascalCase`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/pascal-case.d.ts)
/
[`PascalCasedProperties`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/pascal-cased-properties.d.ts)
/
[`PascalCasedPropertiesDeep`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/pascal-cased-properties-deep.d.ts):
Disable `preserveConsecutiveUppercase` by default
[`8226c1b`](https://redirect.github.com/sindresorhus/type-fest/commit/8226c1b)
  - This aligns it with the general JavaScript naming convention.
-
[`PartialDeep`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/partial-deep.d.ts):
Disable `allowUndefinedInNonTupleArrays` by default
[`b3c4524`](https://redirect.github.com/sindresorhus/type-fest/commit/b3c4524)
-
[`Split`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/split.d.ts):
Enable `strictLiteralChecks` by default
[`544a846`](https://redirect.github.com/sindresorhus/type-fest/commit/544a846)
-
[`Paths`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/paths.d.ts):
Default `maxRecursionDepth` 5 (was 10)
[`2ab5dec`](https://redirect.github.com/sindresorhus/type-fest/commit/2ab5dec)
-
[`ObservableLike`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/globals/observable-like.d.ts):
Move to sub-export
[`2a1072e`](https://redirect.github.com/sindresorhus/type-fest/commit/2a1072e)
- Deprecate `If*` types in favor of a single
[`If`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/if.d.ts)
[`4c2151a`](https://redirect.github.com/sindresorhus/type-fest/commit/4c2151a)

##### New types

-
[`Alphanumeric`](https://redirect.github.com/sindresorhus/type-fest/blob/fc14f87e7fbc89a5dd44291f2c1057d337c34bcd/source/characters.d.ts)
— Single alphanumeric character (`A–Z`, `a–z`, `0–9`).
[`484e030`](https://redirect.github.com/sindresorhus/type-fest/commit/484e030)
-
[`AllExtend`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/all-extend.d.ts)
— Evaluates to `true` if every element of a tuple/array extends `U`.
[`c8c6d55`](https://redirect.github.com/sindresorhus/type-fest/commit/c8c6d55)
-
[`ConditionalSimplify`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/conditional-simplify.d.ts)
— Simplifies a type’s unions/intersections with opt-in controls.
[`b7a4771`](https://redirect.github.com/sindresorhus/type-fest/commit/b7a4771)
-
[`ConditionalSimplifyDeep`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/conditional-simplify-deep.d.ts)
— Deep version of `ConditionalSimplify` that recurses into objects.
[`b7a4771`](https://redirect.github.com/sindresorhus/type-fest/commit/b7a4771)
-
[`DigitCharacter`](https://redirect.github.com/sindresorhus/type-fest/blob/fc14f87e7fbc89a5dd44291f2c1057d337c34bcd/source/characters.d.ts)
— Single ASCII digit character (`0–9`).
[`484e030`](https://redirect.github.com/sindresorhus/type-fest/commit/484e030)
-
[`ExcludeStrict`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/exclude-strict.d.ts)
— Non-distributive, stricter variant of `Exclude<T, U>`.
[`e6f62a2`](https://redirect.github.com/sindresorhus/type-fest/commit/e6f62a2)
-
[`ExtendsStrict`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/extends-strict.d.ts)
— Non-distributive `A extends B` check.
[`d71242a`](https://redirect.github.com/sindresorhus/type-fest/commit/d71242a)
-
[`ExtractStrict`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/extract-strict.d.ts)
— Non-distributive, stricter variant of `Extract<T, U>`.
[`98d24fa`](https://redirect.github.com/sindresorhus/type-fest/commit/98d24fa)
-
[`IsLowercase`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-lowercase.d.ts)
— Evaluates to `true` if a string literal is all lowercase.
[`afe132c`](https://redirect.github.com/sindresorhus/type-fest/commit/afe132c)
-
[`IsNullable`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-nullable.d.ts)
— Evaluates to `true` if `T` includes `null`.
[`5067e25`](https://redirect.github.com/sindresorhus/type-fest/commit/5067e25)
-
[`IsOptional`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-optional.d.ts)
— Evaluates to `true` if `T` includes `undefined`.
[`5067e25`](https://redirect.github.com/sindresorhus/type-fest/commit/5067e25)
-
[`IsOptionalKeyOf`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-optional-key-of.d.ts)
— Evaluates to `true` if property `K` of `T` is optional.
[`93728b5`](https://redirect.github.com/sindresorhus/type-fest/commit/93728b5)
-
[`IsReadonlyKeyOf`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-readonly-key-of.d.ts)
— Evaluates to `true` if property `K` of `T` is readonly.
[`93728b5`](https://redirect.github.com/sindresorhus/type-fest/commit/93728b5)
-
[`IsRequiredKeyOf`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-required-key-of.d.ts)
— Evaluates to `true` if property `K` of `T` is required.
[`93728b5`](https://redirect.github.com/sindresorhus/type-fest/commit/93728b5)
-
[`IsUnion`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-union.d.ts)
— Evaluates to `true` if `T` is a union type.
[`b3d92ed`](https://redirect.github.com/sindresorhus/type-fest/commit/b3d92ed)
-
[`IsUndefined`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-undefined.d.ts)
— Evaluates to `true` if the type is exactly `undefined`.
[`f7bc576`](https://redirect.github.com/sindresorhus/type-fest/commit/f7bc576)
-
[`IsUppercase`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-uppercase.d.ts)
— Evaluates to `true` if a string literal is all uppercase.
[`afe132c`](https://redirect.github.com/sindresorhus/type-fest/commit/afe132c)
-
[`LowercaseLetter`](https://redirect.github.com/sindresorhus/type-fest/blob/fc14f87e7fbc89a5dd44291f2c1057d337c34bcd/source/characters.d.ts)
— Single lowercase Latin letter (`a–z`).
[`484e030`](https://redirect.github.com/sindresorhus/type-fest/commit/484e030)
-
[`RemovePrefix`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/remove-prefix.d.ts)
— Removes a specified prefix from a string literal.
[`18a1c04`](https://redirect.github.com/sindresorhus/type-fest/commit/18a1c04)
-
[`UppercaseLetter`](https://redirect.github.com/sindresorhus/type-fest/blob/fc14f87e7fbc89a5dd44291f2c1057d337c34bcd/source/characters.d.ts)
— Single uppercase Latin letter (`A–Z`).
[`484e030`](https://redirect.github.com/sindresorhus/type-fest/commit/484e030)

##### Improvements

-
[`Jsonify`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/jsonify.d.ts):
Handle `unknown` as `JsonValue`
[`642bb13`](https://redirect.github.com/sindresorhus/type-fest/commit/642bb13)
-
[`SetRequired`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/set-required.d.ts)
/
[`SetOptional`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/set-optional.d.ts)
/
[`SetReadonly`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/set-readonly.d.ts):
Handle functions with properties
[`a5e45d4`](https://redirect.github.com/sindresorhus/type-fest/commit/a5e45d4)
-
[`Schema`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/schema.d.ts):
Preserve arrays/remove extraneous unions
[`8a96def`](https://redirect.github.com/sindresorhus/type-fest/commit/8a96def);
drop `undefined` for `recurseIntoArrays`
[`1cb955b`](https://redirect.github.com/sindresorhus/type-fest/commit/1cb955b)
-
[`ReadonlyKeysOf`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/readonly-keys-of.d.ts)
/
[`WritableKeysOf`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/writable-keys-of.d.ts):
Add `object` constraint
[`a6efbe0`](https://redirect.github.com/sindresorhus/type-fest/commit/a6efbe0)
-
[`TsConfigJson`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/tsconfig-json.d.ts):
Add TypeScript 5.9 fields
[`d2bda94`](https://redirect.github.com/sindresorhus/type-fest/commit/d2bda94)

##### Fixes

-
[`Or`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/or.d.ts):
Fix with `boolean`, `never`, `any`
[`42d6106`](https://redirect.github.com/sindresorhus/type-fest/commit/42d6106)
-
[`And`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/and.d.ts):
Fix with `boolean`, `never`, `any`
[`b38ac60`](https://redirect.github.com/sindresorhus/type-fest/commit/b38ac60)
-
[`IsStringLiteral`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-literal.d.ts):
Fix uncollapsed unions, and tagged types
[`eb37799`](https://redirect.github.com/sindresorhus/type-fest/commit/eb37799)
/
[`d1b35c7`](https://redirect.github.com/sindresorhus/type-fest/commit/d1b35c7)
-
[`Paths`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/paths.d.ts):
Fix behavior with index signatures
[`9926e5d`](https://redirect.github.com/sindresorhus/type-fest/commit/9926e5d)
-
[`ConditionalKeys`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/conditional-keys.d.ts):
Fix behavior with arrays and unions
[`4d7cc50`](https://redirect.github.com/sindresorhus/type-fest/commit/4d7cc50)
-
[`RequiredDeep`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/required-deep.d.ts):
Fix with `undefined`
[`bfcdbc4`](https://redirect.github.com/sindresorhus/type-fest/commit/bfcdbc4)
-
[`Split`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/split.d.ts):
Fix template strings ending with interpolation
[`853b881`](https://redirect.github.com/sindresorhus/type-fest/commit/853b881)
-
[`ArrayTail`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/array-tail.d.ts):
Fix fix non-tuple arrays
[`f3aabd8`](https://redirect.github.com/sindresorhus/type-fest/commit/f3aabd8)
- Fix `UnionMin` and `UnionMax`
[`d52d5e7`](https://redirect.github.com/sindresorhus/type-fest/commit/d52d5e7)

##### Meta

Huge thanks to all the contributors to this release, especially
[@&#8203;som-sm](https://redirect.github.com/som-sm) 🙌

***

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…to 9.1.0 (#1697)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[conventional-changelog-conventionalcommits](https://redirect.github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-conventionalcommits#readme)
([source](https://redirect.github.com/conventional-changelog/conventional-changelog/tree/HEAD/packages/conventional-changelog-conventionalcommits))
| dependencies | pin | [`^9.1.0` ->
`9.1.0`](https://renovatebot.com/diffs/npm/conventional-changelog-conventionalcommits/9.1.0/9.1.0)
|

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:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Copy link
Contributor

coderabbitai bot commented Sep 15, 2025

Walkthrough

Replaces shell detection in verify_install.sh to read the interpreter via /proc with a ps fallback and enforces Bash-only execution; adds a new shell-detection test script and wires it into plugin/package.json test workflow.

Changes

Cohort / File(s) Change Summary
NPM Scripts
plugin/package.json
Appended && pnpm run test:shell-detection to test. Added new script test:shell-detection running bash ./tests/test-shell-detection.sh.
Shell detection logic
plugin/source/dynamix.unraid.net/usr/local/share/dynamix.unraid.net/install/scripts/verify_install.sh
Replaced ps -o comm= -p $$ detection with readlink "/proc/$$/exe" and basename to obtain interpreter; fallback to ps when /proc unavailable; exit with error if interpreter is not bash. Comments updated.
Shell detection tests
plugin/tests/test-shell-detection.sh
Added a test harness that validates the new shell-detection function across scenarios (bash success, non-bash failure, /proc availability, script-name independence) and reports pass/fail for CI integration.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant CI as User/CI
  participant Script as verify_install.sh
  participant Proc as /proc (readlink)
  participant PS as ps(1)

  CI->>Script: Invoke verify_install.sh
  activate Script
  Script->>Proc: readlink /proc/$$/exe
  alt /proc available
    Proc-->>Script: interpreter path
  else /proc unavailable
    Script->>PS: ps -o comm= -p $PPID
    PS-->>Script: parent command
  end
  Script->>Script: basename(interpreter)
  alt interpreter == "bash"
    Script-->>CI: continue (success)
  else
    Script-->>CI: print errors & exit 1
  end
  deactivate Script
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

I hop through code with curious nose,
/proc reveals where each shell goes.
If not bash, I thump and cry “no pass!”
Tests march in line, each little task—
CI cheers softly, carrots at last. 🐇✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title concisely describes the primary fix—resolving a false-positive detection that treated verify_install.sh as an external (non-bash) shell—so it accurately reflects the main change to verify_install.sh while remaining short and team-readable; it is acceptable that it does not enumerate the added test and package.json updates because titles need not cover every detail.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/verify_install

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a5fef31 and 967e553.

📒 Files selected for processing (2)
  • plugin/source/dynamix.unraid.net/usr/local/share/dynamix.unraid.net/install/scripts/verify_install.sh (1 hunks)
  • plugin/tests/test-shell-detection.sh (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • plugin/source/dynamix.unraid.net/usr/local/share/dynamix.unraid.net/install/scripts/verify_install.sh
  • plugin/tests/test-shell-detection.sh

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

claude bot commented Sep 15, 2025

Claude finished @elibosley's task —— View job


Code Review - DIFF Analysis

Analyzing the DIFF for critical issues in changed lines only...

Todo List:

  • Read and analyze the changed files
  • Review DIFF for critical bugs, security issues, breaking changes, data loss risks
  • Provide feedback on findings

Analysis Results

⚠️ CRITICAL BUG FOUND - Line 19 in verify_install.sh

The fallback shell detection logic has a critical flaw:

# Line 19 - PROBLEMATIC:
current_shell=$(ps -o comm= -p $$)

Issue: Using $$ (current process PID) in the fallback will return the script name or bash, not detect if the script was invoked from a non-bash parent shell. This defeats the purpose of the shell detection.

Expected Behavior: Should detect when script is called like zsh verify_install.sh

Fix Required: Change $$ to $PPID to check the parent process that invoked this script:

current_shell=$(ps -o comm= -p $PPID)

Other Changes Reviewed:

  • package.json: Added test command - no issues
  • test-shell-detection.sh: New test file - no critical issues in new code
  • /proc detection logic (lines 14-16): Correctly implemented

Recommendation: Fix the fallback PID detection before merging to prevent false negatives in shell detection.


- Introduced a new test script for shell detection logic in `verify_install.sh`.
- Updated the `package.json` to include a new test command for shell detection.
- Enhanced the `verify_install.sh` script to accurately check the current shell interpreter using `/proc` and fallback methods.

This improves the testing framework and ensures better validation of shell detection functionality.
Copy link

codecov bot commented Sep 15, 2025

Codecov Report

❌ Patch coverage is 91.71975% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 52.60%. Comparing base (c4ca761) to head (967e553).
⚠️ Report is 9 commits behind head on main.

Files with missing lines Patch % Lines
...eb/src/components/UserProfile/CallbackFeedback.vue 0.00% 6 Missing ⚠️
web/src/components/HeaderOsVersion.standalone.vue 66.66% 5 Missing ⚠️
unraid-ui/src/composables/useTeleport.ts 87.50% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1704      +/-   ##
==========================================
- Coverage   58.45%   52.60%   -5.86%     
==========================================
  Files         636      854     +218     
  Lines       31189    47864   +16675     
  Branches     3659     4749    +1090     
==========================================
+ Hits        18232    25177    +6945     
- Misses      12920    22618    +9698     
- Partials       37       69      +32     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (4)
plugin/source/dynamix.unraid.net/usr/local/share/dynamix.unraid.net/install/scripts/verify_install.sh (1)

24-33: Early non-bash exit is appropriate; message can be safer.

The guidance snippet could cause loops if users paste it when $current_shell later resolves to bash. Consider printing a concrete example instead, e.g., [[ $- == *i* ]] && exec zsh.

plugin/package.json (1)

36-39: Wire-up looks good; consider CI-friendly vitest invocation.

vitest typically detects CI, but to avoid interactive mode edge cases, you may prefer vitest run. Optional tweak:

-    "test": "vitest && pnpm run test:extractor && pnpm run test:shell-detection",
+    "test": "vitest run && pnpm run test:extractor && pnpm run test:shell-detection",
plugin/tests/test-shell-detection.sh (2)

109-109: Quote command substitutions to avoid word splitting (SC2046).

Both $(command -v sh) and $(command -v bash) should be quoted.

-if command -v sh >/dev/null 2>&1 && [ "$(readlink -f $(command -v sh))" != "$(readlink -f $(command -v bash))" ]; then
+if command -v sh >/dev/null 2>&1 && [ "$(readlink -f "$(command -v sh)")" != "$(readlink -f "$(command -v bash)")" ]; then

95-105: Extraction of check section relies on a lone check_shell line.

sed -n '1,/^check_shell$/p' depends on a call line exactly equal to check_shell. If that changes (e.g., args added), this test will miss the call. Match the call more flexibly.

-    sed -n '1,/^check_shell$/p' "$VERIFY_SCRIPT" > "$TEMP_VERIFY"
+    sed -n '1,/^check_shell\(\s\|$\)/p' "$VERIFY_SCRIPT" > "$TEMP_VERIFY"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b153189 and a5fef31.

📒 Files selected for processing (3)
  • plugin/package.json (1 hunks)
  • plugin/source/dynamix.unraid.net/usr/local/share/dynamix.unraid.net/install/scripts/verify_install.sh (1 hunks)
  • plugin/tests/test-shell-detection.sh (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-08-11T15:10:28.150Z
Learnt from: CR
PR: unraid/api#0
File: .cursor/rules/web-testing-rules.mdc:0-0
Timestamp: 2025-08-11T15:10:28.150Z
Learning: Run terminal commands with pnpm within the web directory (e.g., pnpm test)

Applied to files:

  • plugin/package.json
📚 Learning: 2025-08-11T15:10:28.150Z
Learnt from: CR
PR: unraid/api#0
File: .cursor/rules/web-testing-rules.mdc:0-0
Timestamp: 2025-08-11T15:10:28.150Z
Learning: This Nuxt app is tested with vitest outside the Nuxt runtime; structure tests accordingly

Applied to files:

  • plugin/package.json
📚 Learning: 2025-08-11T15:07:39.222Z
Learnt from: CR
PR: unraid/api#0
File: .cursor/rules/api-rules.mdc:0-0
Timestamp: 2025-08-11T15:07:39.222Z
Learning: Applies to api/**/*.{test,spec}.{js,jsx,ts,tsx} : Use Vitest for tests in the api; do not use Jest

Applied to files:

  • plugin/package.json
🪛 Shellcheck (0.10.0)
plugin/tests/test-shell-detection.sh

[warning] 109-109: Quote this to prevent word splitting.

(SC2046)


[warning] 109-109: Quote this to prevent word splitting.

(SC2046)

🔇 Additional comments (2)
plugin/source/dynamix.unraid.net/usr/local/share/dynamix.unraid.net/install/scripts/verify_install.sh (1)

36-38: Good: fail-fast shell guard before any other checks.

Running check_shell first prevents subtle breakage later in the script under non-bash.

plugin/tests/test-shell-detection.sh (1)

85-92: Nice: hermetic temp script for happy-path under bash.

Self-contained extraction plus cleanup is solid; toggling set -e around test runs is handled correctly.

Comment on lines 14 to 19
if [ -e "/proc/$$/exe" ]; then
current_shell=$(readlink "/proc/$$/exe")
else
# Fallback to checking the parent process if /proc isn't available
current_shell=$(ps -o comm= -p $PPID)
fi
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fallback uses PPID (parent) instead of this script’s PID — can mis-detect shell.

If /proc is unavailable, ps -o comm= -p $PPID will report the invoking shell (e.g., zsh) rather than the interpreter executing this script. Use $$ so we inspect the current process. This prevents false “non-bash” exits when running bash verify_install.sh from another shell.

Apply:

-  if [ -e "/proc/$$/exe" ]; then
-    current_shell=$(readlink "/proc/$$/exe")
-  else
-    # Fallback to checking the parent process if /proc isn't available
-    current_shell=$(ps -o comm= -p $PPID)
-  fi
+  if [ -e "/proc/$$/exe" ]; then
+    current_shell=$(readlink "/proc/$$/exe")
+  else
+    # Fallback: inspect THIS process, not the parent
+    if current_shell=$(ps -o comm= -p $$ 2>/dev/null); then
+      :
+    elif current_shell=$(ps -p $$ -o comm= 2>/dev/null); then
+      :
+    else
+      current_shell="$0"
+    fi
+  fi
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if [ -e "/proc/$$/exe" ]; then
current_shell=$(readlink "/proc/$$/exe")
else
# Fallback to checking the parent process if /proc isn't available
current_shell=$(ps -o comm= -p $PPID)
fi
if [ -e "/proc/$$/exe" ]; then
current_shell=$(readlink "/proc/$$/exe")
else
# Fallback: inspect THIS process, not the parent
if current_shell=$(ps -o comm= -p $$ 2>/dev/null); then
:
elif current_shell=$(ps -p $$ -o comm= 2>/dev/null); then
:
else
current_shell="$0"
fi
fi
🤖 Prompt for AI Agents
In
plugin/source/dynamix.unraid.net/usr/local/share/dynamix.unraid.net/install/scripts/verify_install.sh
around lines 14-19, the fallback branch uses ps -o comm= -p $PPID which inspects
the parent process and can mis-detect the interpreter running this script;
change the fallback to inspect the current process by using ps -o comm= -p $$
(the script's PID) so we detect the actual interpreter executing this script,
and ensure any variables are properly quoted and trimmed as needed.

Copy link
Contributor

This plugin has been deployed to Cloudflare R2 and is available for testing.
Download it at this URL:

https://preview.dl.unraid.net/unraid-api/tag/PR1704/dynamix.unraid.net.plg

@elibosley elibosley merged commit 31a255c into main Sep 15, 2025
14 checks passed
@elibosley elibosley deleted the fix/verify_install branch September 15, 2025 16:17
elibosley pushed a commit that referenced this pull request Sep 15, 2025
🤖 I have created a release *beep* *boop*
---


## [4.22.2](v4.22.1...v4.22.2)
(2025-09-15)


### Bug Fixes

* **deps:** pin dependency conventional-changelog-conventionalcommits to
9.1.0 ([#1697](#1697))
([9a86c61](9a86c61))
* **deps:** update dependency filenamify to v7
([#1703](#1703))
([b80988a](b80988a))
* **deps:** update graphqlcodegenerator monorepo (major)
([#1689](#1689))
([ba4a43a](ba4a43a))
* false positive on verify_install script being external shell
([#1704](#1704))
([31a255c](31a255c))
* improve vue mount speed by 10x
([c855caa](c855caa))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant