feat: game list, mark configured games in game detect (#205) - #207
Merged
Conversation
Add `lmm game list` (table of id/name/paths/deploy mode/sources, marks the default game, --json support) and mark already-configured games `[configured]` in `lmm game detect`, excluding them from the default "all" selection while keeping them listed and still repairable via explicit selection. Cross-link README's game-detection mention to the existing steam-games.yaml docs section. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a new lmm game list command and improves lmm game detect UX by marking already-configured games and adjusting default selection behavior, with corresponding docs/manpage + changelog updates.
Changes:
- Add
lmm game list(table +--json) for viewing configured games and the default marker. - Update
lmm game detectto mark[configured]games and exclude them from the default"all"selection while still allowing explicit re-add/repair by number. - Regenerate man pages and update README/CHANGELOG to document the new command and updated detect behavior.
Reviewed changes
Copilot reviewed 59 out of 59 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Documents lmm game list and updates game detect row to mention steam-games.yaml override docs. |
| CHANGELOG.md | Adds unreleased entries describing game list and the updated game detect selection semantics. |
| cmd/lmm/root.go | Updates global --json help text to include game list. |
| cmd/lmm/game.go | Updates game command help; refactors detect flow to mark [configured] games and adjust "all" selection. |
| cmd/lmm/game_list.go | Implements lmm game list table output + --json output and deterministic source formatting. |
| cmd/lmm/game_list_test.go | Adds unit tests for table columns, default marker, source formatting, empty state, and JSON contract. |
| cmd/lmm/game_detect_selection_test.go | Adds unit tests for configured-game marking and default "all" selection exclusion logic. |
| docs/man/man1/lmm.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-verify.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-update.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-update-rollback.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-uninstall.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-tui.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-status.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-source.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-source-validate.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-source-list.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-search.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-purge.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-profile.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-profile-sync.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-profile-switch.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-profile-reorder.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-profile-list.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-profile-import.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-profile-export.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-profile-delete.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-profile-create.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-profile-apply.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-mod.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-mod-unlock.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-mod-show.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-mod-set-update.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-mod-lock.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-mod-files.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-mod-enable.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-mod-edit.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-mod-disable.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-list.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-install.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-import.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-game.1 | Updates game man page to mention game list; adds lmm-game-list(1) to SEE ALSO; regenerates --json help line. |
| docs/man/man1/lmm-game-show-default.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-game-set-default.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-game-list.1 | Adds the new man page for lmm game list. |
| docs/man/man1/lmm-game-detect.1 | Updates man page text to document [configured] marker and "all" default selection change; regenerates --json help line. |
| docs/man/man1/lmm-game-clear-default.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-game-add.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-deploy.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-conflicts.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-completion.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-completion-zsh.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-completion-powershell.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-completion-fish.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-completion-bash.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-auth.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-auth-status.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-auth-logout.1 | Regenerates --json help line to include game list. |
| docs/man/man1/lmm-auth-login.1 | Regenerates --json help line to include game list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
lmm game list: table of every configured game (ID, name, install path, mod path, deploy mode, compactsource:idsources), marking the default game. Empty state points atgame add/game detect. Supports--jsonfor parity withlist/search/source list.lmm game detectmarks already-configured games[configured](mirroringsearch's[installed]convention) and excludes them from the default "all" selection — they stay listed, and naming a number explicitly still repairs/re-adds (same overwrite semanticslmm game addhas always used; documented in--helpand CHANGELOG).docs/configuration.md'ssteam-games.yamlsection already existed; cross-linked it from README'slmm game detectrow and added the newlmm game listrow.gameCmd's Long help to mentionlistalongsideadd/detect.make manregenerated (newlmm-game-list.1; every page's--jsonhelp line updated).Closes #205.
Test plan
go build ./...go vet ./...go test ./... -race(all packages pass)trunk check --ci(0 new issues)make man(clean re-run, no diff)cmd/lmm/game_list_test.go,cmd/lmm/game_detect_selection_test.go🤖 Generated with Claude Code