Skip to content

Document portable mode and fill gaps in the CLI reference - #5342

Merged
Gabriel Dufresne (GabrielDuf) merged 5 commits into
mainfrom
docs/portable-mode-and-cli-reference
Sep 1, 2026
Merged

Document portable mode and fill gaps in the CLI reference#5342
Gabriel Dufresne (GabrielDuf) merged 5 commits into
mainfrom
docs/portable-mode-and-cli-reference

Conversation

@GabrielDuf

Copy link
Copy Markdown
Contributor

This pull request significantly improves the documentation for UniGetUI, with a focus on clarifying and expanding information about portable installations, command-line usage, and new features. The most important changes are grouped below.

Portable Mode Documentation:

  • Added a comprehensive new document, docs/PORTABLE.md, detailing UniGetUI's portable mode, including how to enable it, what data is relocated, installer options, and limitations.
  • Updated README.md and docs/CLI.md to reference the new portable mode documentation in relevant sections, making it easier for users to find information about portable installations.

Feature and Usage Documentation Enhancements:

  • Expanded the feature list in README.md to include new capabilities such as scheduled maintenance, cloud backups via GitHub Gist, operation history, granular shortcut management, and portable app support.
  • Clarified that the .zip and .tar.gz downloads are only truly portable when the marker file is present, and described how settings are handled in portable mode.

Command-Line Interface Improvements:

  • Extended the CLI grammar notes to document additional accepted noun forms and compatibility aliases, improving clarity for users scripting UniGetUI.
  • Added documentation for new CLI commands to manage Start Menu shortcuts and folders on Windows, including how verdicts and folder rules are stored and applied.
  • Updated installer parameter documentation to explain how to select portable installation mode using the /TASKS="portableinstall" switch.
  • Documented new and existing environment variables that affect UniGetUI's runtime behavior, including those relevant to portable mode and backup isolation.

Deep Link and Protocol Handler Updates:

  • Updated the deep link section to clarify that protocol handler registration is skipped for portable installs and to document the new deep link actions.

These changes collectively make the documentation more thorough, user-friendly, and up-to-date with recent features and installation options.

Copilot AI 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.

Pull request overview

Expands user documentation for portable mode, CLI behavior, and recent application features.

Changes:

  • Adds a dedicated portable-mode guide.
  • Documents Start Menu CLI commands, aliases, environment variables, and deep links.
  • Updates README feature and installation guidance.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.

File Description
README.md Adds portable-mode links and feature summaries.
docs/PORTABLE.md Documents portable storage, setup, and limitations.
docs/CLI.md Expands CLI, environment-variable, and installer references.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread docs/PORTABLE.md Outdated
Comment thread docs/PORTABLE.md Outdated
Comment thread docs/CLI.md Outdated
Comment thread docs/CLI.md Outdated
Comment thread docs/PORTABLE.md Outdated

Copilot AI 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.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Suppressed comments (4)

Previously missed (4) — in code that hasn't changed since the last review.

README.md:166

  • The history is capped at 1,000 records; adding another record removes older entries (OperationHistoryStore.cs:81-90). Therefore the application cannot retain or display “every past operation.”
 - Review every past operation in the operation history, with the full log of each one kept for troubleshooting.

docs/CLI.md:161

  • This implies no existing shortcut moves unless --relocate-existing is supplied, but SetFolder always attempts to move the package's pending shortcuts; the flag only adds other matching shortcuts found by a scan (IpcStartMenuShortcutsApi.cs:168-192). This side effect matters to scripts invoking the command.
| `start-menu folder set` | `--package <manager\id>`, `--folder <name>` | `--relocate-existing` | Stores a folder rule. `--relocate-existing` also moves the shortcuts that already match the package. |

docs/CLI.md:251

  • This flag does not unregister anything. SharedPreUiCommandDispatcher.TryHandle returns success immediately for both uninstall flags without performing any cleanup (SharedPreUiCommandDispatcher.cs:101-109), so the documented side effect is inaccurate.
| `--uninstall-wingetui` | Unregisters the legacy WingetUI install from the notification panel and quits. | Historical; used by the WingetUI uninstaller. |

docs/CLI.md:270

  • The enabled value does not force COM on: COM is never used when pinget is selected, and COM activation failure falls back to the CLI (WinGet.cs:433-474, WinGetManagerTests.cs:501-514). Describe this as allowing or disabling COM for system WinGet rather than forcing it.
| `UNIGETUI_WINGET_COM` | `default`, `enabled`/`enable`/`on`/`true`/`1`, `disabled`/`disable`/`off`/`false`/`0` | Forces the WinGet COM API on or off instead of letting UniGetUI decide. Takes precedence over the `WinGetComApiPolicy` setting. |

Comment thread README.md Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Copilot AI 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.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

Suppressed comments (4)

Previously missed (3) — in code that hasn't changed since the last review.

docs/CLI.md:304

  • This instruction also needs to mention a writable /DIR: the installer defaults to Program Files (UniGetUI.iss:39), where the app's write test normally fails and portable mode falls back to the user profile (CoreData.cs:139-160). As written, following the documented task switch alone commonly does not keep settings beside the executable.
The installation type is an Inno Setup task rather than a switch. Pass `/TASKS="portableinstall"` for a portable installation; the default is `regularinstall`, which additionally accepts `regularinstall\startmenuicon` and `regularinstall\desktopicon`. A portable install keeps its settings beside the executable and registers no protocol handler, file association, shortcuts or startup entry, see [PORTABLE.md](PORTABLE.md).

docs/CLI.md:148

  • start-menu shortcut set --status delete does more than record a verdict: it immediately deletes the shortcut when it exists (IpcStartMenuShortcutsApi.cs:93-99). Document this destructive effect so scripts do not remove a current shortcut unintentionally.

This issue also appears on line 251 of the same file.

| `start-menu shortcut set` | `--path <path>`, `--status <keep\|delete>` | None | Marks a Start Menu shortcut to keep or delete. |

docs/PORTABLE.md:97

  • Portable installs also omit the Windows uninstaller and installed-app entry because Uninstallable is enabled only for regularinstall (UniGetUI.iss:74). This is an important removal limitation: users must delete the folder manually.
| Start menu and desktop shortcuts | Not created. |

docs/CLI.md:251

  • The current handler performs no unregister operation for this flag; it only returns success and exits (SharedPreUiCommandDispatcher.cs:106-109). Describing registry cleanup that does not occur makes the compatibility behavior misleading.
| `--uninstall-wingetui` | Unregisters the legacy WingetUI install from the notification panel and quits. | Historical; used by the WingetUI uninstaller. |

Comment thread docs/PORTABLE.md Outdated
Comment thread README.md Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Copilot AI 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.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Suppressed comments (3)

Previously missed (3) — in code that hasn't changed since the last review.

docs/CLI.md:148

  • The delete status is immediately destructive, not merely a stored verdict: SetShortcut calls DeleteFromDisk when the path currently exists. Mentioning this in the command row prevents scripts and users from unexpectedly removing an existing shortcut.
| `start-menu shortcut set` | `--path <path>`, `--status <keep\|delete>` | None | Marks a Start Menu shortcut to keep or delete. |

docs/CLI.md:251

  • This describes an unregister action that the current executable does not perform. SharedPreUiCommandDispatcher.TryHandle handles both uninstall compatibility flags by immediately returning success, so invoking this flag only exits before UI startup. Document it as an accepted no-op to avoid promising registry cleanup.
| `--uninstall-wingetui` | Unregisters the legacy WingetUI install from the notification panel and quits. | Historical; used by the WingetUI uninstaller. |

docs/PORTABLE.md:98

  • This is only guaranteed for a fresh portable install. When portable mode is selected over an existing regular installation, the task-gated registry and icon entries are skipped but no code removes the previously created protocol handler, file association, startup keys, or shortcuts, so the absolute “gets none” statement can mislead users converting in place.
The Windows installer registers these only for a regular installation, so a portable install
gets none of them:

@randy-but-a-ro randy-but-a-ro 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.

🤖 Pull request was approved automatically: the AI review is complete and all its review threads are resolved. 🎉

Integration Details
{
	"deliveryId": "a652e410-a60a-11f1-9b07-99d4da550a06",
	"headSha": "e82dd03cee4dc497631b5dd45db7027019869a6f",
	"reviewer": "copilot-pull-request-reviewer[bot]"
}

@GabrielDuf
Gabriel Dufresne (GabrielDuf) merged commit 5cf1ce2 into main Sep 1, 2026
1 check passed
@GabrielDuf
Gabriel Dufresne (GabrielDuf) deleted the docs/portable-mode-and-cli-reference branch September 1, 2026 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants