Document portable mode and fill gaps in the CLI reference - #5342
Conversation
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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-existingis supplied, butSetFolderalways 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.TryHandlereturns 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
pingetis 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. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
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 toProgram 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 deletedoes 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
Uninstallableis enabled only forregularinstall(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. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
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
deletestatus is immediately destructive, not merely a stored verdict:SetShortcutcallsDeleteFromDiskwhen 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.TryHandlehandles 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:
There was a problem hiding this comment.
🤖 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]"
}
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:
docs/PORTABLE.md, detailing UniGetUI's portable mode, including how to enable it, what data is relocated, installer options, and limitations.README.mdanddocs/CLI.mdto 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:
README.mdto include new capabilities such as scheduled maintenance, cloud backups via GitHub Gist, operation history, granular shortcut management, and portable app support..zipand.tar.gzdownloads are only truly portable when the marker file is present, and described how settings are handled in portable mode.Command-Line Interface Improvements:
/TASKS="portableinstall"switch.Deep Link and Protocol Handler Updates:
These changes collectively make the documentation more thorough, user-friendly, and up-to-date with recent features and installation options.