Commit graph

203 commits

Author SHA1 Message Date
Pat Hartl
538d6b4676 Fix download queue progress 2026-04-18 18:55:28 -05:00
Pat Hartl
9a7cadf1ca Add better logging for installs 2026-04-17 23:52:22 -05:00
Pat Hartl
eaaaf39b8d Refactor install process to use major/minor task queue
Tasks are broken down into major and minor tasks. Major tasks are like install game, redistributable, or tool. These are reported as individual tasks in the download queue. Minor tasks are running of a script, downloading saves, extracting/downloading, etc.
2026-04-17 22:24:47 -05:00
Pat Hartl
c9fb738a21 Update to .NET 10 2026-04-10 00:54:43 -05:00
Pat Hartl
91a56c5d3b Fix uninstall -> reinstall not working correctly 2026-04-08 18:07:32 -05:00
Aaron Powell
3115ed4ea3 Merge branch 'main' into avalonia-launcher
# Conflicts:
#	Directory.Packages.props
2026-03-21 14:15:00 +11:00
Pat Hartl
a9d32c6bef Open debug window for elevated scripts 2026-03-15 17:06:37 -05:00
Pat Hartl
2e46c6ecc5 Launcher: Only import games since last import 2026-03-09 22:12:57 -05:00
Pat Hartl
23678107e8 Fix downloading updates to user avatar 2026-03-08 14:50:42 -05:00
Pat Hartl
d417ce264e Fix downloading avatar 2026-03-04 19:03:57 -06:00
Pat Hartl
46bbf85093 First pass of adding tool installation to launcher 2026-02-10 18:04:49 -06:00
Pat Hartl
4474164e9b Split ScriptClient into partials 2026-02-10 17:34:35 -06:00
Pat Hartl
1936f50599 Remove singular Client service for DI clients 2026-01-24 15:32:40 -06:00
Aaron Powell
8d53430ff8 Add script debugging console for Avalonia launcher
- Create ScriptConsoleControl for displaying script output and interactive input
- Create PowerShellConsoleWindow to host the script console
- Wire up ScriptDebugger events to console control for real-time output
- Add debug scripts menu to GameActionBarView (visible when EnableScriptDebugging=true)
- Scripts run via SDK's ScriptClient and stay interactive after completion
- Fix MediaImporter.ExistsAsync to check database record instead of file existence
- Remove Iciclecreek.Avalonia.Terminal dependency, revert Avalonia to 11.2.3
2026-01-23 15:05:59 +11:00
Aaron Powell
b45944ebab fix: Use async database check for IsInLibrary status 2026-01-19 22:12:18 +11:00
Pat Hartl
58b09ab378 Remove use of Client in InstallService 2026-01-18 04:40:18 -06:00
Aaron Powell
a8184f763e Merge branch 'main' into refactor/remove-window-service 2026-01-12 17:15:35 +11:00
Aaron Powell
869b7ea466 Fixing media importer and adding importer robustness
ImportContext wasn't being set on the importers which caused problems during the import process. Fixed that and added a bunch more logging around the place so we can get better tracing into what's happening through the import pipeline
2025-12-19 11:14:43 +11:00
Aaron Powell
ef12bc58c9 Missing service registration 2025-12-19 10:35:50 +11:00
Pat Hartl
5b0abac404 Merge branch 'main' into development 2025-12-15 23:15:40 -06:00
Aaron Powell
a3b840ca36 refactor: Remove WindowService abstraction layer
- Removed WindowService.cs which was just a thin wrapper around PhotinoBlazor

- Removed WindowOptions, WindowType, and WindowRef models (unused or part of incomplete window tracking)

- Updated Program.cs to directly use PhotinoBlazorAppBuilder

- Service registration now done through direct extension method calls

- Window configuration uses existing extension methods in Startup/Window.cs

- Simplified initialization flow with clearer code structure

- All functionality preserved, just more transparent and maintainable
2025-12-12 11:27:13 +11:00
Pat Hartl
88301d9c79 Move config/user files to Data directory 2025-12-11 01:58:28 -06:00
Aaron Powell
8c436b3d47 Consolidating to consistent logging across all apps 2025-12-11 16:18:33 +11:00
Pat Hartl
ccb7bebd48 Merge branch 'main' into development 2025-12-10 21:49:20 -06:00
Pat Hartl
17fa802c19 Implementation of script debugger component with RPC via SignalR 2025-12-10 20:55:38 -06:00
Aaron Powell
e48db47603 Event handlers weren't initialised, causing null ref exception on launcher start 2025-12-11 11:57:35 +11:00
Pat Hartl
b67d47ce51 Update game actions/save paths if installed version is latest version 2025-12-05 21:24:30 -06:00
Pat Hartl
30423a139a Update import event handlers to AsyncEventHandler 2025-12-05 21:24:08 -06:00
Pat Hartl
18bf0f251c Refactor launcher import (again)
Implements a queue-based importer based on the implementation server-side.
2025-12-05 21:04:01 -06:00
Pat Hartl
01d0b3fa5c Make status required 2025-12-03 02:22:51 -06:00
Pat Hartl
4951aa1a95 Download media on import 2025-12-01 01:21:21 -06:00
Pat Hartl
2ddcd75c19 Bind import UI events 2025-12-01 01:05:32 -06:00
Pat Hartl
09eae10935 Try to get existing entity before creating another 2025-12-01 01:05:18 -06:00
Pat Hartl
0f4633aa50 Rework game importer to maintain collections 2025-11-30 21:52:18 -06:00
Pat Hartl
54ace5d141 Map relational game data, fix individual game import 2025-11-29 19:31:43 -06:00
Pat Hartl
6dfc0906ac Refactor launcher library importing, manifests
Switched the library importing in the launcher to work based on a queue. As a new game is added to the queue, it should find any related data and also add it to the queue. This should result in an easier to maintain importer while reducing the load on the launcher's DAL. This may result in more RAM usage while importing. Local manifests have also been refactored to match manifests in import/export LCX files, removing the old manifest format. This is a large breaking change that will probably break existing game installations. A migration will probably have to be created.
2025-11-29 18:24:27 -06:00
Pat Hartl
a281ef473e Fix script debugging in launcher, fix cmdlet registration 2025-11-26 22:38:04 -06:00
Pat Hartl
e6c12b4809 Refactor script debugging
Instead of providing delegates to a ScriptClient singleton, script execution now relies on dependency injection for debugging. This can be handled by registering an implementation of IScriptDebugger. Multiple script debuggers are supported. These changes required the creation of a PowerShellScriptFactory to handle DI of the service provider to the script.

In the case of LANCommander, "debugging" scripts really just gives an opportunity for the application to break after a script's execution and provide a poor-man's pty. This could be expanded upon in the future to hook directly into PowerShell's debugging functionality, but would require a substantial refactor to script execution.
2025-11-26 01:09:52 -06:00
Pat Hartl
d8af75df26 Load all cmdlets defined in code 2025-11-25 23:58:43 -06:00
Pat Hartl
a549f06a85 Fix service registration in CLI. Create abstraction for external script runners. 2025-11-23 20:54:56 -06:00
Pat Hartl
d6577564db Move launcher settings to separate assembly 2025-11-23 20:53:45 -06:00
Pat Hartl
52dc00791b Fix null reference when no token is stored 2025-11-20 01:20:51 -06:00
Pat Hartl
256b46e823 Fix storage of authentication token 2025-11-19 00:36:03 -06:00
Pat Hartl
5fa665f5ed Merge branch 'main' into development
# Conflicts:
#	LANCommander.Launcher.Services/AuthenticationService.cs
#	LANCommander.Launcher/UI/App.Chat.razor
#	LANCommander.Launcher/UI/App.Main.razor
#	LANCommander.Launcher/UI/Pages/Settings/Index.razor
2025-11-09 14:33:07 -06:00
Pat Hartl
f05e125809 Fix scope lifetime, remove OnLogin/OnRegister events 2025-11-09 14:30:31 -06:00
Pat Hartl
acb91f8484 Fix login/logout UX
- Moves authentication back to a /Authenticate page route
- Flatten the namespaces of page components
- Implement top-level layouts as windows
- Move handling of redirecting to /Authenticate with component inside of an AuthenticatedLayout
- Use individiual injected services instead of SDK.Client
- Wipe out tokens on logout
- Process logout even if server can't be reached
2025-11-07 20:19:13 -06:00
Pat Hartl
cf0ccc3b70 Load additional data for populating depot results 2025-11-07 19:24:04 -06:00
Pat Hartl
1983cf4bb3 Apply database migration on startup, add default install directory 2025-11-06 20:15:05 -06:00
Pat Hartl
8b3bf3de7b Add grace period to keep alive
Adds a grace period to the keep alive watchdog. This ensures that if the connection is severed for more than 10 seconds, it will then raise the ConnectionSevered event, thus displaying the notification of disconnection.
2025-10-22 00:09:18 -05:00
Pat Hartl
d85e716bbb Add cancel install to launcher
Fixes #293
2025-10-15 21:26:40 -05:00