Skip to content

CLI: list stable runner IDs and installed release tags - #1320

Merged
Vysp3r merged 9 commits into
Vysp3r:mainfrom
KM-Alee:fix/cli-list-runner-identity-1313
Oct 24, 2026
Merged

Vysp3r merged 9 commits into
Vysp3r:mainfrom
KM-Alee:fix/cli-list-runner-identity-1313

Conversation

@KM-Alee

@KM-Alee KM-Alee commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Category

  • Bugfix
  • Feature
  • Code style update
  • Refactoring
  • Build related changes
  • Documentation
  • Translation
  • Other

Overview

protonplus list <launcher_id> currently prints display titles without the runner IDs accepted by other CLI commands or the installed release tags. It also includes unrelated launcher directories and repeats entries under groups that share a directory.

Print one row per recorded provider release as runner_id tag title, retaining the existing group headings. For example:

DXVK:
  dxvk-doitsujin  v3.1.1  DXVK (doitsujin) Latest
  • Resolve ownership through InstalledToolInventory's existing persisted-identity and unambiguous legacy matching rules. Exact provider/tool/target matching keeps Lutris's shared Proton/Wine directory correctly grouped and supports shared launcher targets.
  • Preserve identifiable legacy and partial records, including installations with an unknown tag (an empty tag field). Resolve every recorded release, independently of the single-entry installed-state projection.
  • Use the same resolver for CLI uninstall so the listed identities reach the same discovered installation paths.
  • Reject receipts with invalid field types and ignore symlinked receipt files. Unmanaged directories and unresolved or conflicting identities are omitted.

Regression fixtures cover versioned and Latest installations, multiple releases, readable titles, empty results/headings, invalid metadata, symlinks, legacy identities, and Lutris's Wine/Proton, DXVK, and VKD3D layouts. The README documents the output fields.

The optional JSON output suggested in the issue is outside this PR.

Issue Number

Fixes #1313.

New Variables or Dependencies

None.

How to Test

meson setup build
meson compile -C build -j 4
meson test -C build --print-errorlogs
git diff --check

(cd tests && ../build/tests/protonplus-tests -p /cli)
(cd tests && ../build/tests/protonplus-tests -p /protonplus-metadata)
(cd tests && ../build/tests/protonplus-tests -p /installed-tool-inventory)

Validation on the final commit:

  • Native build passed with GTK 4.16.13, libadwaita 1.6.6, SDL 3.2.28, and Vala 0.56.16.
  • All five Meson checks passed, including 550 Vala subtests.
  • Focused CLI, metadata, and inventory runs passed: 10 / 4 / 11 tests.
  • git diff --check passed.
  • Native vala-lint 0.1.0 reports the same 10 errors and 296 warnings as upstream main, with no new findings. The pre-commit wrapper was unavailable locally.
  • The contributor also verified the CLI behavior successfully on a live setup.

GTK desktop interaction, Flatpak packaging, and aarch64 execution were not tested locally.

Screenshots (if applicable)

Not applicable; CLI output only.

Checklist

  • My code follows the project's contribution and style guidance.
  • I have tested my changes and verified that they work as expected.
  • I have updated the relevant documentation.
  • I have regenerated translations (not applicable: no new translatable strings or Vala source files).
  • I have checked for existing pull requests that cover these changes.

Reuse inventory identity matching for release listings and removal, preserving legacy and partial receipts without weakening group ownership. Keep identifiable installations with missing tags visible and reject malformed or symlinked receipts.

Expand isolated CLI and metadata regressions and document the listing fields.
@Vysp3r

Vysp3r commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Thanks, I'll take a look today after work.

@Vysp3r

Vysp3r commented Oct 24, 2026

Copy link
Copy Markdown
Owner

I am just improving a bit on top of what you added and I'll merge it.
I'll send you a screenshot of the result when I am done.

@Vysp3r

Vysp3r commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner
image image

@Vysp3r
Vysp3r merged commit 19af310 into Vysp3r:main Oct 24, 2026
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.

[FEATURE] Print the runner ID and release tag in protonplus list <launcher_id>

2 participants