Skip to content

(TRYING) Added some apps to the JSON and some PS1 files to the private functions - #4963

Open
WilliamWaldrop wants to merge 28 commits into
ChrisTitusTech:mainfrom
WilliamWaldrop:main
Open

(TRYING) Added some apps to the JSON and some PS1 files to the private functions#4963
WilliamWaldrop wants to merge 28 commits into
ChrisTitusTech:mainfrom
WilliamWaldrop:main

Conversation

@WilliamWaldrop

@WilliamWaldrop WilliamWaldrop commented Aug 10, 2026

Copy link
Copy Markdown

Type of Change

  • New feature
  • Bug fix
  • Documentation update
  • Refactor
  • UI/UX improvement

Description

Provides requested apps to the JSON. I tried to add compatibility with more install types(as seen In the new PS1 files: NPM and GitHub are two of the biggest) but it's not exactly the best ever. I will remove them if they become problematic.

Issue related to PR

@github-actions github-actions Bot added the new feature New feature or request label Aug 10, 2026
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: bfe1bf84-bbe0-4d27-b4a3-077c96806571

📥 Commits

Reviewing files that changed from the base of the PR and between 54f6c7e and 5a89a7a.

📒 Files selected for processing (3)
  • functions/private/Get-WinUtilSelectedPackages.ps1
  • functions/public/Invoke-WPFInstall.ps1
  • pester/configs.Tests.ps1
🚧 Files skipped from review as they are similar to previous changes (2)
  • functions/public/Invoke-WPFInstall.ps1
  • functions/private/Get-WinUtilSelectedPackages.ps1

📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Added catalog entries for EmuDeck, EmulationStation Desktop Edition, EmulationStation, Tailscale, and QOwnNotes.
    • Added support for installing applications directly from GitHub releases with automatic installer selection.
    • Added support for installing and uninstalling global npm packages.
    • Added optional post-install actions for supported npm packages.
  • Improvements
    • Improved release fallbacks, validation, downloads, installer launching, progress tracking, and error reporting.
    • Added warnings and manual-uninstall guidance for GitHub-installed applications.
    • Improved installation summaries with package counts by source.

Walkthrough

The change adds five application catalog entries, GitHub package selection and installation, global npm package installation and uninstallation, GitHub uninstall warnings, desktop-user process launching, progress tracking, and installer metadata validation.

Changes

Application installation workflows

Layer / File(s) Summary
Application catalog entries
config/applications.json
Adds metadata for EmuDeck, EmulationStation Desktop Edition, EmulationStation, Tailscale, and QOwnNotes.
Package source selection
functions/private/Get-WinUtilSelectedPackages.ps1
Collects GitHub and npm packages as complete objects and excludes them from Winget and Chocolatey identifier processing.
GitHub release installer
functions/private/Install-WinUtilProgramGithub.ps1, functions/private/Start-WinUtilProcessAsDesktopUser.ps1
Queries GitHub releases, selects matching assets, downloads installers, handles MSI and non-MSI execution, and supports desktop-user launching.
Global npm package installer
functions/private/Install-WinUtilProgramNpm.ps1
Adds global npm installation and uninstallation with npm availability checks, exit-code logging, and install-only post-install commands.
Installation workflow integration
functions/public/Invoke-WPFInstall.ps1
Includes GitHub and npm packages in progress totals, installs both sources, updates progress state, and reports manager-specific completion counts.
GitHub uninstall handling
functions/public/Invoke-WPFUnInstall.ps1
Warns about GitHub packages and stops automated uninstall processing for them.
Application source validation
pester/configs.Tests.ps1
Validates GitHub repository and asset-pattern metadata and npm package metadata alongside Winget and Chocolatey sources.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant GetWinUtilSelectedPackages
  participant InvokeWPFInstall
  participant InstallWinUtilProgramGithub
  participant InstallWinUtilProgramNpm
  participant GitHubReleasesAPI
  participant npm
  GetWinUtilSelectedPackages->>InvokeWPFInstall: Pass selected GitHub and npm packages
  InvokeWPFInstall->>InstallWinUtilProgramGithub: Install GitHub packages
  InstallWinUtilProgramGithub->>GitHubReleasesAPI: Query release metadata
  GitHubReleasesAPI-->>InstallWinUtilProgramGithub: Return matching asset
  InvokeWPFInstall->>InstallWinUtilProgramNpm: Install global npm packages
  InstallWinUtilProgramNpm->>npm: Run global install command
Loading

Possibly related PRs

Suggested reviewers: christitustech

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The PR adds unrelated applications and npm/GitHub installer workflows beyond the linked issue's requirement to reinclude Tailscale. Limit the PR to reintroducing Tailscale, or link separate issues that require the additional applications and installer types.
Title check ❓ Inconclusive The title mentions application and PowerShell changes but uses vague wording and does not identify the main feature, including Tailscale and new installers. Use a specific title such as "Add Tailscale and npm/GitHub installer support".
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The description explains the added applications, npm and GitHub installer support, and links the changes to issue #4914.
Linked Issues check ✅ Passed The PR satisfies issue #4914 by reintroducing Tailscale as an available application in the configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 13

🧹 Nitpick comments (8)
functions/private/Install-WinUtilProgramDirect.ps1 (1)

16-19: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Also reject non-HTTPS URLs.

The function validates only that url is non-empty. A catalog entry with an http:// URL downloads an executable over an unauthenticated channel and then runs it. Add a scheme check next to the empty check, and reject anything other than https.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@functions/private/Install-WinUtilProgramDirect.ps1` around lines 16 - 19,
Update the URL validation in Install-WinUtilProgramDirect to reject any
non-HTTPS scheme in addition to null or whitespace values. Keep invalid entries
on the existing error-and-continue path, and ensure only URLs with an https
scheme proceed to download and execute.
functions/private/Install-WinUtilProgramGithub.ps1 (3)

62-65: 🎯 Functional Correctness | 🔵 Trivial | 💤 Low value

Match the MSI branch on the extension, not on a wildcard over the whole path.

$dest -like "*.msi" matches the full path. A file name such as tool.msi.exe does not match, which is correct, but an asset with a query-free name is the only supported case. Prefer [IO.Path]::GetExtension($dest) -eq '.msi' for an explicit extension test.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@functions/private/Install-WinUtilProgramGithub.ps1` around lines 62 - 65,
Update the MSI condition in the installation flow to use
[IO.Path]::GetExtension($dest) and compare it exactly with '.msi', replacing the
wildcard path match while leaving the existing Start-Process, logging, and
cleanup behavior unchanged.

3-12: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove the fork-specific naming from the doc comment and the User-Agent.

The synopsis describes "Channels DVR community projects", and the User-Agent is cdvr-winutil. This function is generic GitHub-release installation for WinUtil. Use a WinUtil-specific User-Agent and a generic description so the code matches project naming conventions.

♻️ Proposed change
-        Downloads and runs the newest matching release asset from a GitHub repo - for
-        Channels DVR community projects not published to winget/choco.
+        Downloads and runs the newest matching release asset from a GitHub repo - for
+        packages that are not published to winget/choco.
     #>
@@
-    $headers = @{ "User-Agent" = "cdvr-winutil" }
+    $headers = @{ "User-Agent" = "winutil" }

As per coding guidelines: "Use approved PowerShell verb-noun names and follow existing WPF/WinUtil naming conventions."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@functions/private/Install-WinUtilProgramGithub.ps1` around lines 3 - 12,
Update the documentation synopsis in the GitHub release installer to use a
generic WinUtil-oriented description instead of mentioning Channels DVR
community projects, and change the $headers User-Agent from “cdvr-winutil” to
the approved WinUtil-specific identifier. Keep the function behavior and
parameter handling unchanged.

Source: Coding guidelines


51-54: 🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Constrain the download path to a file name.

$asset.name comes from the GitHub API response. Wrap it with [IO.Path]::GetFileName() before Join-Path, so a name with path separators cannot write outside $env:TEMP.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@functions/private/Install-WinUtilProgramGithub.ps1` around lines 51 - 54,
Update the destination path construction in the download block to pass
$asset.name through [IO.Path]::GetFileName() before Join-Path, ensuring the
downloaded file remains directly under $env:TEMP while preserving the existing
Invoke-WebRequest flow.
config/applications.json (1)

1418-1426: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Match the file's indentation and remove trailing whitespace.

The other entries in this file use 4-space indentation for keys. This entry uses 2 spaces, and line 1425 has trailing whitespace.

♻️ Proposed formatting fix
     "qownnotes": {
-      "category": "Document",
-      "choco": "qownnotes",
-      "content": "QOwnNotes",
-      "description": "QOwnNotes is a free open-source note taking app with Nextcloud/ownCloud integration.",
-      "link": "https://www.qownnotes.org/",
-      "winget": "pbek.QOwnNotes",
-      "foss": true  
+        "category": "Document",
+        "choco": "qownnotes",
+        "content": "QOwnNotes",
+        "description": "QOwnNotes is a free open-source note taking app with Nextcloud/ownCloud integration.",
+        "link": "https://www.qownnotes.org/",
+        "winget": "pbek.QOwnNotes",
+        "foss": true
     },
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@config/applications.json` around lines 1418 - 1426, Update the qownnotes
entry to use the file’s standard 4-space indentation for all keys and remove the
trailing whitespace after the foss value, preserving the existing configuration
values and structure.
functions/private/Install-WinUtilStreamLinkManager.ps1 (2)

28-30: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Move the download URL and the task name into the catalog entry.

The download URL is hardcoded in the function. The other installers in this cohort read url from the package object. A URL change then requires a code change instead of a JSON change. Read $package.url with this value as the fallback.

As per coding guidelines: "Keep config-driven features in JSON when they fit the existing schema, and follow required fields and key-renaming rules."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@functions/private/Install-WinUtilStreamLinkManager.ps1` around lines 28 - 30,
Update Install-WinUtilStreamLinkManager to read the download URL from the
package catalog entry via $package.url, while retaining the current Dropbox URL
as its fallback. Move the task name into the catalog entry as well, and use the
package-provided value in the installer instead of hardcoding it.

Source: Coding guidelines


42-42: 🩺 Stability & Availability | 🔵 Trivial | 💤 Low value

Restrict the process stop to the installed executable.

Get-Process -Name "slm" matches any process named slm, including one started from another location. Filter by the Path under $installDir before you stop it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@functions/private/Install-WinUtilStreamLinkManager.ps1` at line 42, Update
the process termination logic in Install-WinUtilStreamLinkManager to filter
Get-Process results by the executable Path under $installDir before invoking
Stop-Process, ensuring only the installed slm process is stopped.
functions/public/Invoke-WPFInstall.ps1 (1)

146-155: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Extract the post-install command execution into one helper. The same block appears three times: create a script block from postInstallCommand, run it, log success, log the error. Each copy repeats the logging text and the error handling, so a change to the contract must be applied in three places.

  • functions/public/Invoke-WPFInstall.ps1#L146-L155: replace the winget post-install block with a call to a shared helper, for example Invoke-WinUtilPostInstallCommand -Name $postInstallName -Command $postInstallCommandById[$r.Program].
  • functions/public/Invoke-WPFInstall.ps1#L177-L186: replace the identical Chocolatey block with the same helper call.
  • functions/private/Install-WinUtilProgramNpm.ps1#L38-L46: replace the npm post-install block with the same helper call, keeping the exit-code condition.

As per coding guidelines: "Prefer existing helper functions for WinGet, Chocolatey, registry, services, progress, and UI updates."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@functions/public/Invoke-WPFInstall.ps1` around lines 146 - 155, Extract the
duplicated post-install execution, success logging, and error handling into a
shared Invoke-WinUtilPostInstallCommand helper, then replace the blocks at
functions/public/Invoke-WPFInstall.ps1:146-155 (anchor),
functions/public/Invoke-WPFInstall.ps1:177-186, and
functions/private/Install-WinUtilProgramNpm.ps1:38-46 with helper calls passing
the post-install name and command; preserve the npm block’s existing exit-code
condition.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@config/applications.json`:
- Around line 416-428: Update Get-WinUtilSelectedPackages to create and populate
a Github bucket for packages with installType "github", then update
Invoke-WPFInstall to dispatch that bucket through Install-WinUtilProgramGithub.
Correct the emudeck repo configuration to EmuDeck/emudeck-electron-early while
preserving its existing assetPattern.

In `@functions/private/Install-WinUtilProgramDirect.ps1`:
- Around line 21-23: Update the download-path setup around $ext and $dest to
parse the URL path without its query or fragment before deriving the extension,
preserving the fallback to .exe so the $ext -eq ".msi" handling remains correct.
Sanitize the catalog-derived $name by removing characters invalid in Windows
file names before constructing $dest, while preserving the intended downloaded
filename.
- Around line 45-47: Define the missing Set-WinUtilProcessForeground helper
before its calls in the installer flows, accepting the -Process parameter and
bringing the launched process to the foreground. Ensure both installer functions
can invoke it successfully without triggering the catch path that removes $dest.

In `@functions/private/Install-WinUtilProgramNpm.ps1`:
- Around line 29-32: Wrap the Start-Process invocation in the installer’s
existing error-handling flow with try/catch, and handle a null $process before
accessing ExitCode. Log the npm launch failure, preserve continuation of
remaining install buckets, and only report the exit code when a process object
was returned.

In `@functions/private/Install-WinUtilProgramWinget.ps1`:
- Around line 61-66: Define Start-WinUtilProcessAsStandardUser or replace its
invocation in the winget retry path with an existing process helper that returns
a process result containing ExitCode. Ensure the reassigned $process remains
compatible with the subsequent $process.ExitCode -eq 0 check.

In `@functions/private/Install-WinUtilStreamLinkManager.ps1`:
- Around line 65-66: Update scheduled-task registration in the
Install-WinUtilStreamLinkManager flow to preserve the executable/action quoting
and detect registration failures. Prefer Register-ScheduledTask with explicit
task action and trigger objects; otherwise retain schtasks with correctly
escaped /tr quoting, inspect $LASTEXITCODE, and reject or surface any nonzero
result instead of discarding it.

In `@functions/private/Install-WinUtilWSLCommand.ps1`:
- Around line 56-63: Update the validation branch in Install-WinUtilWSLCommand
to check distro and command independently, rather than combining them before the
uninstall message. Ensure the Uninstall log identifies whether distro or
uninstallCommand is missing, while preserving the existing install error and
continue behavior.
- Around line 79-80: Update the script-name construction in
Install-WinUtilWSLCommand to avoid relying solely on $package.Key and remove the
fork-specific cdvr- prefix. Derive a stable package identifier with an
appropriate fallback for raw catalog entries, then use it with the lowercased
action so distinct WSL-command packages produce distinct temporary paths.
- Around line 86-98: The WSL execution paths call an undefined
Invoke-WinUtilWithTimeout helper. Add this function in the functions sources
with the required timeout, default value, ArgumentList, waiting interval,
OnWaiting callback, and ScriptBlock parameters; invoke the script block with the
supplied ArgumentList so its execution context correctly captures $LASTEXITCODE,
while returning the default value on timeout.

In `@functions/private/Install-WinUtilWSLDistro.ps1`:
- Around line 49-53: Define or restore the missing
Test-WinUtilWSLDistroInstalled and Invoke-WinUtilWithTimeout helpers used by the
WSL installation flow, ensuring both are available in the tracked source and
preserve the existing timeout, default-value, argument-list, and
waiting-callback behavior. Keep Set-WinUtilTweaksProgressIndicator unchanged,
including its dispatcher-based WPF updates.

In `@functions/public/Invoke-WPFInstall.ps1`:
- Around line 196-221: Update the installers invoked by the installBucket
loop—Install-WinUtilProgramDirect, Install-WinUtilProgramGithub,
Install-WinUtilProgramNpm, Install-WinUtilWSLCommand, and
Install-WinUtilStreamLinkManager—to return per-package result objects containing
Program, Success, and ExitCode, matching Install-WinUtilProgramWinget. Capture
each installer’s output in the loop, preserve successful progress accounting,
and add unsuccessful results to $failedPackages so the final status reports
failures from these buckets.
- Around line 262-263: Update the Invoke-WPFRunspace call within
Invoke-WPFInstall so its return value remains suppressed, preventing PowerShell
or job handles from reaching callers through the button handlers. Restore the
existing output suppression behavior without changing the surrounding
installation flow.
- Around line 8-11: In the PackagesToInstall construction, copy each object
retrieved from $sync.configs.applicationsHashtable before adding the Key
property, so Add-Member cannot mutate the shared catalog object. Preserve the
existing Key derivation and ensure downstream PromptValues or other install
state is stored only on the per-run package copy.

---

Nitpick comments:
In `@config/applications.json`:
- Around line 1418-1426: Update the qownnotes entry to use the file’s standard
4-space indentation for all keys and remove the trailing whitespace after the
foss value, preserving the existing configuration values and structure.

In `@functions/private/Install-WinUtilProgramDirect.ps1`:
- Around line 16-19: Update the URL validation in Install-WinUtilProgramDirect
to reject any non-HTTPS scheme in addition to null or whitespace values. Keep
invalid entries on the existing error-and-continue path, and ensure only URLs
with an https scheme proceed to download and execute.

In `@functions/private/Install-WinUtilProgramGithub.ps1`:
- Around line 62-65: Update the MSI condition in the installation flow to use
[IO.Path]::GetExtension($dest) and compare it exactly with '.msi', replacing the
wildcard path match while leaving the existing Start-Process, logging, and
cleanup behavior unchanged.
- Around line 3-12: Update the documentation synopsis in the GitHub release
installer to use a generic WinUtil-oriented description instead of mentioning
Channels DVR community projects, and change the $headers User-Agent from
“cdvr-winutil” to the approved WinUtil-specific identifier. Keep the function
behavior and parameter handling unchanged.
- Around line 51-54: Update the destination path construction in the download
block to pass $asset.name through [IO.Path]::GetFileName() before Join-Path,
ensuring the downloaded file remains directly under $env:TEMP while preserving
the existing Invoke-WebRequest flow.

In `@functions/private/Install-WinUtilStreamLinkManager.ps1`:
- Around line 28-30: Update Install-WinUtilStreamLinkManager to read the
download URL from the package catalog entry via $package.url, while retaining
the current Dropbox URL as its fallback. Move the task name into the catalog
entry as well, and use the package-provided value in the installer instead of
hardcoding it.
- Line 42: Update the process termination logic in
Install-WinUtilStreamLinkManager to filter Get-Process results by the executable
Path under $installDir before invoking Stop-Process, ensuring only the installed
slm process is stopped.

In `@functions/public/Invoke-WPFInstall.ps1`:
- Around line 146-155: Extract the duplicated post-install execution, success
logging, and error handling into a shared Invoke-WinUtilPostInstallCommand
helper, then replace the blocks at
functions/public/Invoke-WPFInstall.ps1:146-155 (anchor),
functions/public/Invoke-WPFInstall.ps1:177-186, and
functions/private/Install-WinUtilProgramNpm.ps1:38-46 with helper calls passing
the post-install name and command; preserve the npm block’s existing exit-code
condition.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4fad1e4f-4289-4fdf-a815-ccf459e1d43f

📥 Commits

Reviewing files that changed from the base of the PR and between ea5de27 and 88b67ab.

📒 Files selected for processing (9)
  • config/applications.json
  • functions/private/Install-WinUtilProgramDirect.ps1
  • functions/private/Install-WinUtilProgramGithub.ps1
  • functions/private/Install-WinUtilProgramNpm.ps1
  • functions/private/Install-WinUtilProgramWinget.ps1
  • functions/private/Install-WinUtilStreamLinkManager.ps1
  • functions/private/Install-WinUtilWSLCommand.ps1
  • functions/private/Install-WinUtilWSLDistro.ps1
  • functions/public/Invoke-WPFInstall.ps1

Comment thread config/applications.json
Comment thread functions/private/Install-WinUtilProgramDirect.ps1 Outdated
Comment thread functions/private/Install-WinUtilProgramDirect.ps1 Outdated
Comment thread functions/private/Install-WinUtilProgramNpm.ps1
Comment thread functions/private/Install-WinUtilProgramWinget.ps1 Outdated
Comment thread functions/private/Install-WinUtilWSLCommand.ps1 Outdated
Comment thread functions/private/Install-WinUtilWSLDistro.ps1 Outdated
Comment thread functions/public/Invoke-WPFInstall.ps1 Outdated
Comment thread functions/public/Invoke-WPFInstall.ps1 Outdated
Comment thread functions/public/Invoke-WPFInstall.ps1 Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 88b67ab9b0

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread functions/public/Invoke-WPFInstall.ps1 Outdated
Comment thread config/applications.json
Comment thread functions/private/Install-WinUtilProgramWinget.ps1 Outdated
Comment thread functions/public/Invoke-WPFInstall.ps1 Outdated
Comment thread functions/public/Invoke-WPFInstall.ps1 Outdated
Comment thread functions/private/Install-WinUtilProgramWinget.ps1 Outdated
Comment thread functions/private/Install-WinUtilProgramGithub.ps1 Outdated

@WilliamWaldrop WilliamWaldrop left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Should be final review

Added support for GitHub installers in Get-WinUtilSelectedPackages function.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@functions/private/Get-WinUtilSelectedPackages.ps1`:
- Around line 48-53: The GitHub package collection built in
Get-WinUtilSelectedPackages is not connected to installation. Update
Invoke-WPFInstall to include the Github collection in totalPackages and invoke
Install-WinUtilProgramGithub with the complete package objects, while preserving
the existing progress and logging updates for Winget and Choco installations.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 052f7e5d-a553-4519-8a94-dc583e8d5401

📥 Commits

Reviewing files that changed from the base of the PR and between 21ab375 and abb5724.

📒 Files selected for processing (1)
  • functions/private/Get-WinUtilSelectedPackages.ps1

Comment thread functions/private/Get-WinUtilSelectedPackages.ps1
@WilliamWaldrop

Copy link
Copy Markdown
Author

🥳🥳🥳🥳🥳🥳🥳🥳🥳🥳

I did a thing! We now have GitHub plumbing!!!!!!!! I'm so happy now that we can expand the horizons of this Util's applications.

@ChrisTitusTech
@mewclouds

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e0773d755b

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread functions/public/Invoke-WPFInstall.ps1 Outdated
Comment thread functions/private/Get-WinUtilSelectedPackages.ps1
Comment thread functions/private/Install-WinUtilProgramGithub.ps1 Outdated
@WilliamWaldrop

Copy link
Copy Markdown
Author

@coderabbitai resume

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Reviews resumed.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@functions/public/Invoke-WPFInstall.ps1`:
- Around line 36-43: Initialize $completedPackages before the GitHub package
block, then move the Install-WinUtilProgramGithub block into the existing
protected installation section after $sync.ProcessRunning and UI-disabled state
are established. Update the GitHub progress label using the existing
user-feedback pattern before installation, and retain the completed-package
increment for progress calculations.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 64b2608f-2a38-464f-b00c-6e4eff615c8a

📥 Commits

Reviewing files that changed from the base of the PR and between 21ab375 and e0773d7.

📒 Files selected for processing (2)
  • functions/private/Get-WinUtilSelectedPackages.ps1
  • functions/public/Invoke-WPFInstall.ps1
🚧 Files skipped from review as they are similar to previous changes (1)
  • functions/private/Get-WinUtilSelectedPackages.ps1

Comment thread functions/public/Invoke-WPFInstall.ps1
Reintroduced GitHub package installation with progress tracking and logging.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 78ae2de906

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread config/applications.json
Added handling for GitHub-release installer packages that cannot be uninstalled automatically.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@functions/public/Invoke-WPFUnInstall.ps1`:
- Around line 30-40: Update the uninstall flow around the githubPackages warning
to remove GitHub packages from the selected package set after displaying the
warning, then return only when no Winget or Chocolatey packages remain. Preserve
the existing confirmation, logging, and uninstall workflow for the remaining
supported packages, and add a regression test covering mixed GitHub and
manager-backed selections.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4df02422-3ced-4c26-bd06-9d3063fe5608

📥 Commits

Reviewing files that changed from the base of the PR and between 78ae2de and d949a32.

📒 Files selected for processing (1)
  • functions/public/Invoke-WPFUnInstall.ps1

Comment thread functions/public/Invoke-WPFUnInstall.ps1
Updated the installation process to create a dedicated download directory and handle installer execution based on user context.
Updated warning message for uninstallation of GitHub-release installer packages to clarify that they will be skipped and require manual uninstallation.
@WilliamWaldrop

Copy link
Copy Markdown
Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@pester/configs.Tests.ps1`:
- Around line 172-199: Update the program selection and install/uninstall
dispatch workflows to recognize installType "npm" and call the existing
Install-WinUtilProgramNpm function. In the configuration validation logic around
$isGithubInstaller and the source validation condition, add npm handling that
requires a non-empty npmPackage for npm entries and reports an appropriate
invalid-entry error when missing.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: bab0e1cf-6376-4c21-abaf-e05252d5d1db

📥 Commits

Reviewing files that changed from the base of the PR and between 88534ed and 54f6c7e.

📒 Files selected for processing (3)
  • functions/private/Install-WinUtilProgramGithub.ps1
  • functions/public/Invoke-WPFUnInstall.ps1
  • pester/configs.Tests.ps1
🚧 Files skipped from review as they are similar to previous changes (2)
  • functions/public/Invoke-WPFUnInstall.ps1
  • functions/private/Install-WinUtilProgramGithub.ps1

Comment thread pester/configs.Tests.ps1 Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 54f6c7e1f2

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread pester/configs.Tests.ps1
@WilliamWaldrop

Copy link
Copy Markdown
Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@WilliamWaldrop

Copy link
Copy Markdown
Author

Btw I'm doing all of this on a Chromebook ;-;

@WilliamWaldrop

WilliamWaldrop commented Aug 11, 2026

Copy link
Copy Markdown
Author

@ChrisTitusTech

It's fully finished! NPM and GitHub is now available to be put into the applications!!!!!!! Happy adding!!!

Also the apps I added in the PR are: EmuDeck(from GitHub), ES-DE, Emulation station(for those who need it), and Tailscale.

Much love
-Mr. Cloud9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] Tailscale removal?

1 participant