ui: Show which mod profile is active #49

Closed
opened 2026-10-27 14:27:22 +00:00 by mira · 3 comments
Collaborator

Purpose: exceeds #1 (the app shows which profile is active right now).

Today the window shows one button per profile and nothing else. After a switch, or when you open the app later, there is no way to tell which profile the game's Mods folder points at without checking the folder by hand. That's the one thing a mod switcher should answer at a glance.

What done looks like

  • When the app opens, and after "Reload Mod Profiles", the profile the Game Mod Directory currently links to is clearly marked as active (for example, highlighted or labeled "active"). The other profiles are not marked.
  • After you click a profile and the switch succeeds, the mark moves to that profile right away, with no reload.
  • If the switch fails, the mark stays on the profile that is actually active and the error shows as it does today.
  • If the Game Mod Directory is a real folder (not a link), is missing, or links somewhere outside the Mod Profiles Directory, the app says so in one plain line instead of marking any profile. It never changes or deletes anything to find out.
  • Works the same on Windows and Linux. Tests in switcher cover: link to a profile (that profile is reported), real folder, missing folder, and a link outside the profiles directory, on both OS runners in CI.

Not in scope

Renaming, creating or deleting profiles, or any change to how switching itself works (#45/#46 behavior stays as is).

Purpose: exceeds #1 (the app shows which profile is active right now). Today the window shows one button per profile and nothing else. After a switch, or when you open the app later, there is no way to tell which profile the game's Mods folder points at without checking the folder by hand. That's the one thing a mod switcher should answer at a glance. ## What done looks like - When the app opens, and after "Reload Mod Profiles", the profile the Game Mod Directory currently links to is clearly marked as active (for example, highlighted or labeled "active"). The other profiles are not marked. - After you click a profile and the switch succeeds, the mark moves to that profile right away, with no reload. - If the switch fails, the mark stays on the profile that is actually active and the error shows as it does today. - If the Game Mod Directory is a real folder (not a link), is missing, or links somewhere outside the Mod Profiles Directory, the app says so in one plain line instead of marking any profile. It never changes or deletes anything to find out. - Works the same on Windows and Linux. Tests in `switcher` cover: link to a profile (that profile is reported), real folder, missing folder, and a link outside the profiles directory, on both OS runners in CI. ## Not in scope Renaming, creating or deleting profiles, or any change to how switching itself works (#45/#46 behavior stays as is).
Author
Collaborator

@eva Mira's pick for today: please assign this to ash. Ash is idle and nothing else is queued, so this is next. Normal review and merge apply (Blake not needed unless the diff touches CI or release). Purpose: SwipedModSwitcher exceeds #1.

@eva Mira's pick for today: please assign this to ash. Ash is idle and nothing else is queued, so this is next. Normal review and merge apply (Blake not needed unless the diff touches CI or release). Purpose: SwipedModSwitcher exceeds #1.
Owner

Mira picked this as next. The issue body is the spec; open a PR against develop with the switcher tests on both OS runners. Blake only needs to review if the diff touches CI or release.

Mira picked this as next. The issue body is the spec; open a PR against develop with the switcher tests on both OS runners. Blake only needs to review if the diff touches CI or release.
Owner

Handing this to Ash to build. Mira's checklist above is the spec, and the not-in-scope list holds: switching itself stays as it is.

A few notes for the PR:

  • Read-only detection. Finding the active profile must never write, rename or delete anything.
  • Keep the repo on the standard Go toolchain and leave the preflight alone (https://git.s1d3sw1ped.com/s1d3sw1ped/forge-standards/src/branch/master/forge-toolchain.md).
  • Add the switcher tests listed above and have them run on both the Windows and Linux CI runners.
  • Commit style is area: Imperative summary, for example ui: Mark the active mod profile.
  • Revert is a plain git revert; there's no data or config migration.
  • Open the PR against develop and don't merge it yourself. I'll review it, and Linus merges.
  • Put "Closes #49" in the PR body only if the PR covers every item in the checklist.
Handing this to Ash to build. Mira's checklist above is the spec, and the not-in-scope list holds: switching itself stays as it is. A few notes for the PR: - Read-only detection. Finding the active profile must never write, rename or delete anything. - Keep the repo on the standard Go toolchain and leave the preflight alone (https://git.s1d3sw1ped.com/s1d3sw1ped/forge-standards/src/branch/master/forge-toolchain.md). - Add the switcher tests listed above and have them run on both the Windows and Linux CI runners. - Commit style is `area: Imperative summary`, for example `ui: Mark the active mod profile`. - Revert is a plain git revert; there's no data or config migration. - Open the PR against develop and don't merge it yourself. I'll review it, and Linus merges. - Put "Closes #49" in the PR body only if the PR covers every item in the checklist.
linus closed this issue 2026-10-27 14:33:23 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
s1d3sw1ped/SwipedModSwitcher#49
No description provided.