It doesn't work with the PortProton version when you select a folder.
Log:
(.venv) ➜ tsm-app-linux git:(develop) tsm-app
2026-03-27 15:44:40 INFO tsm.workers.async_runner: AsyncRunner event loop started
2026-03-27 15:44:40 INFO tsm.storage.database: Database connected: /home/XXXXXX/.local/share/tsm-app/data.db
2026-03-27 15:44:50 INFO tsm.core.services.auth: Logging in as XXXXXX
2026-03-27 15:44:51 INFO tsm.core.services.auth: Login successful (remember=False)
2026-03-27 15:44:51 INFO tsm.core.scheduler: WoW: no valid configured path, running auto-detection
2026-03-27 15:44:51 INFO tsm.core.services.wow_detector: Scanning for WoW installs
2026-03-27 15:44:51 INFO tsm.core.services.auction: Fetching status from TSM API
2026-03-27 15:44:51 INFO tsm.wow.detector: No WoW installs found in common paths
2026-03-27 15:44:51 INFO tsm.core.services.wow_detector: Found 0 WoW install(s)
2026-03-27 15:44:51 WARNING tsm.core.scheduler: WoW: no installs found; user should configure a path in Settings
2026-03-27 15:44:51 INFO apscheduler.schedulers.async: Added new schedule (task='tsm.workers.jobs:job_auction_refresh', trigger=IntervalTrigger(minutes=5, start_time='2026-03-27 12:49:51.909009+00:00')); next run time at 2026-03-27 12:49:51.909009+00:00
2026-03-27 15:44:51 INFO apscheduler.schedulers.async: Added new schedule (task='tsm.workers.jobs:job_backup', trigger=IntervalTrigger(minutes=60, start_time='2026-03-27 13:44:51.909009+00:00')); next run time at 2026-03-27 13:44:51.909009+00:00
2026-03-27 15:44:51 INFO apscheduler.schedulers.async: Added new schedule (task='tsm.workers.jobs:job_auth_refresh', trigger=IntervalTrigger(minutes=25, start_time='2026-03-27 13:09:51.909009+00:00')); next run time at 2026-03-27 13:09:51.909009+00:00
2026-03-27 15:44:51 INFO tsm.core.scheduler: JobScheduler started (debug_interval=None)
2026-03-27 15:44:51 INFO apscheduler.schedulers.async: Cleaned up expired job results and finished schedules
2026-03-27 15:44:51 INFO apscheduler.schedulers.async: Scheduler started
2026-03-27 15:44:52 INFO tsm.core.services.wow_detector: Scanning for WoW installs
2026-03-27 15:44:52 INFO tsm.wow.detector: No WoW installs found in common paths
2026-03-27 15:44:52 INFO tsm.core.services.wow_detector: Found 0 WoW install(s)
2026-03-27 15:44:52 INFO tsm.core.services.auction: No TSM_AppHelper AppData.lua found, realm list will be empty
2026-03-27 15:45:25 INFO tsm.storage.config_store: Config saved to /home/zebra/.config/tsm-app/config.toml
2026-03-27 15:45:25 INFO tsm.ui.viewmodels.settings_vm: Settings saved
2026-03-27 15:45:31 INFO tsm.core.services.auction: Fetching status from TSM API
2026-03-27 15:45:31 INFO tsm.core.services.wow_detector: Scanning for WoW installs
2026-03-27 15:45:31 INFO tsm.wow.detector: No WoW installs found in common paths
2026-03-27 15:45:31 INFO tsm.core.services.wow_detector: Found 0 WoW install(s)
2026-03-27 15:45:31 INFO tsm.core.services.auction: No TSM_AppHelper AppData.lua found, realm list will be empty
2026-03-27 15:46:26 INFO tsm.storage.config_store: Config saved to /home/zebra/.config/tsm-app/config.toml
2026-03-27 15:46:26 INFO tsm.ui.viewmodels.settings_vm: Settings saved
2026-03-27 15:46:27 INFO tsm.core.services.auction: Fetching status from TSM API
2026-03-27 15:46:28 INFO tsm.core.services.wow_detector: Scanning for WoW installs
2026-03-27 15:46:28 INFO tsm.wow.detector: No WoW installs found in common paths
2026-03-27 15:46:28 INFO tsm.core.services.wow_detector: Found 0 WoW install(s)
2026-03-27 15:46:28 INFO tsm.core.services.auction: No TSM_AppHelper AppData.lua found, realm list will be empty
2026-03-27 15:46:44 INFO tsm.core.services.auction: Fetching status from TSM API
2026-03-27 15:46:45 INFO tsm.core.services.wow_detector: Scanning for WoW installs
2026-03-27 15:46:45 INFO tsm.wow.detector: No WoW installs found in common paths
2026-03-27 15:46:45 INFO tsm.core.services.wow_detector: Found 0 WoW install(s)
2026-03-27 15:46:45 INFO tsm.core.services.auction: No TSM_AppHelper AppData.lua found, realm list will be empty
Config:
1 │ minimize_to_tray = true
2 │ notifications_enabled = true
3 │ notify_realm_data = true
4 │ notify_addon_update = true
5 │ notify_backup = true
6 │ start_minimized = false
7 │ show_confirmation_on_exit = false
8 │ backup_period_minutes = 60
9 │ backup_retain_days = 30
10 │
11 │ [[wow_installs]]
12 │ path = "/home/zebra/PortProton/prefixes/BATTLE_NET/drive_c/Program Files (x86)/World of Warcraft"
13 │ version = "retail"
14 │
15 │ [[wow_installs]]
16 │ path = "/home/zebra/PortProton/prefixes/BATTLE_NET/drive_c/Program Files (x86)/World of Warcraft/retail"
17 │ version = "retail"
It doesn't work with the PortProton version when you select a folder.
Log:
(.venv) ➜ tsm-app-linux git:(develop) tsm-app
2026-03-27 15:44:40 INFO tsm.workers.async_runner: AsyncRunner event loop started
2026-03-27 15:44:40 INFO tsm.storage.database: Database connected: /home/XXXXXX/.local/share/tsm-app/data.db
2026-03-27 15:44:50 INFO tsm.core.services.auth: Logging in as XXXXXX
2026-03-27 15:44:51 INFO tsm.core.services.auth: Login successful (remember=False)
2026-03-27 15:44:51 INFO tsm.core.scheduler: WoW: no valid configured path, running auto-detection
2026-03-27 15:44:51 INFO tsm.core.services.wow_detector: Scanning for WoW installs
2026-03-27 15:44:51 INFO tsm.core.services.auction: Fetching status from TSM API
2026-03-27 15:44:51 INFO tsm.wow.detector: No WoW installs found in common paths
2026-03-27 15:44:51 INFO tsm.core.services.wow_detector: Found 0 WoW install(s)
2026-03-27 15:44:51 WARNING tsm.core.scheduler: WoW: no installs found; user should configure a path in Settings
2026-03-27 15:44:51 INFO apscheduler.schedulers.async: Added new schedule (task='tsm.workers.jobs:job_auction_refresh', trigger=IntervalTrigger(minutes=5, start_time='2026-03-27 12:49:51.909009+00:00')); next run time at 2026-03-27 12:49:51.909009+00:00
2026-03-27 15:44:51 INFO apscheduler.schedulers.async: Added new schedule (task='tsm.workers.jobs:job_backup', trigger=IntervalTrigger(minutes=60, start_time='2026-03-27 13:44:51.909009+00:00')); next run time at 2026-03-27 13:44:51.909009+00:00
2026-03-27 15:44:51 INFO apscheduler.schedulers.async: Added new schedule (task='tsm.workers.jobs:job_auth_refresh', trigger=IntervalTrigger(minutes=25, start_time='2026-03-27 13:09:51.909009+00:00')); next run time at 2026-03-27 13:09:51.909009+00:00
2026-03-27 15:44:51 INFO tsm.core.scheduler: JobScheduler started (debug_interval=None)
2026-03-27 15:44:51 INFO apscheduler.schedulers.async: Cleaned up expired job results and finished schedules
2026-03-27 15:44:51 INFO apscheduler.schedulers.async: Scheduler started
2026-03-27 15:44:52 INFO tsm.core.services.wow_detector: Scanning for WoW installs
2026-03-27 15:44:52 INFO tsm.wow.detector: No WoW installs found in common paths
2026-03-27 15:44:52 INFO tsm.core.services.wow_detector: Found 0 WoW install(s)
2026-03-27 15:44:52 INFO tsm.core.services.auction: No TSM_AppHelper AppData.lua found, realm list will be empty
2026-03-27 15:45:25 INFO tsm.storage.config_store: Config saved to /home/zebra/.config/tsm-app/config.toml
2026-03-27 15:45:25 INFO tsm.ui.viewmodels.settings_vm: Settings saved
2026-03-27 15:45:31 INFO tsm.core.services.auction: Fetching status from TSM API
2026-03-27 15:45:31 INFO tsm.core.services.wow_detector: Scanning for WoW installs
2026-03-27 15:45:31 INFO tsm.wow.detector: No WoW installs found in common paths
2026-03-27 15:45:31 INFO tsm.core.services.wow_detector: Found 0 WoW install(s)
2026-03-27 15:45:31 INFO tsm.core.services.auction: No TSM_AppHelper AppData.lua found, realm list will be empty
2026-03-27 15:46:26 INFO tsm.storage.config_store: Config saved to /home/zebra/.config/tsm-app/config.toml
2026-03-27 15:46:26 INFO tsm.ui.viewmodels.settings_vm: Settings saved
2026-03-27 15:46:27 INFO tsm.core.services.auction: Fetching status from TSM API
2026-03-27 15:46:28 INFO tsm.core.services.wow_detector: Scanning for WoW installs
2026-03-27 15:46:28 INFO tsm.wow.detector: No WoW installs found in common paths
2026-03-27 15:46:28 INFO tsm.core.services.wow_detector: Found 0 WoW install(s)
2026-03-27 15:46:28 INFO tsm.core.services.auction: No TSM_AppHelper AppData.lua found, realm list will be empty
2026-03-27 15:46:44 INFO tsm.core.services.auction: Fetching status from TSM API
2026-03-27 15:46:45 INFO tsm.core.services.wow_detector: Scanning for WoW installs
2026-03-27 15:46:45 INFO tsm.wow.detector: No WoW installs found in common paths
2026-03-27 15:46:45 INFO tsm.core.services.wow_detector: Found 0 WoW install(s)
2026-03-27 15:46:45 INFO tsm.core.services.auction: No TSM_AppHelper AppData.lua found, realm list will be empty
Config:
1 │ minimize_to_tray = true
2 │ notifications_enabled = true
3 │ notify_realm_data = true
4 │ notify_addon_update = true
5 │ notify_backup = true
6 │ start_minimized = false
7 │ show_confirmation_on_exit = false
8 │ backup_period_minutes = 60
9 │ backup_retain_days = 30
10 │
11 │ [[wow_installs]]
12 │ path = "/home/zebra/PortProton/prefixes/BATTLE_NET/drive_c/Program Files (x86)/World of Warcraft"
13 │ version = "retail"
14 │
15 │ [[wow_installs]]
16 │ path = "/home/zebra/PortProton/prefixes/BATTLE_NET/drive_c/Program Files (x86)/World of Warcraft/retail"
17 │ version = "retail"