Commit graph

521 commits

Author SHA1 Message Date
Pat Hartl
4086cbaeeb Update read status when sending message, scroll to bottom on new message, merge message into group if gap < 5 mins 2026-01-11 21:21:12 -06:00
Pat Hartl
66abc6e59e Implement infinite loading with chat thread
- Chat messages are now loaded based on scroll position
- Read status is now updated and set by last message read
- Reworked script importing by using ScriptProvider
2026-01-11 14:38:24 -06:00
Pat Hartl
2d95541942 Remove overload for GetMessages 2026-01-03 23:22:25 -06:00
Pat Hartl
1bbe105adc Fix SDK SignalR implementation of IChatClient, registration of chat client 2025-12-31 20:01:37 -06:00
Pat Hartl
6bfaa7b9e6 Fix virtualized rendering of message groups 2025-12-30 18:03:57 -06:00
Pat Hartl
83ff6a8237 Separate SignalR chat client from RPC client. Create abstraction for getting server address. Implement server-side chat client. 2025-12-23 21:12:06 -06:00
Aaron Powell
216f34144b Adding more info to migration history 2025-12-19 16:01:14 +11:00
Aaron Powell
b07ad7d9a9 Adding migration history tracking 2025-12-18 11:12:41 +11:00
Aaron Powell
8600bae9ec Overhauling the migrations to be a bit more explicit in the steps that they go through.
Changed the IMigration interface to have a series of steps, first a method to indicate that the migration should run, next some pre-checks (like is it in a container), and lastly the actual execution.

Next, the settings and folder migrations are broken into individual migrations, which means that it's a lot more obvious which ones run and which ones are skipped.
2025-12-18 10:57:26 +11:00
Pat Hartl
8ffca6d99f Add XML docs for AppPaths 2025-12-17 00:33:38 -06:00
Aaron Powell
e2b2654a61 Adding SQLite database migration step
Created a new abstraction for migrations that have to run against the file system, so that we don't need to do the check in each migration.

Adding the default DB name to the settings so it's got a const value.

Updated the Settings migrator to check a few more places
2025-12-17 17:09:36 +11:00
Pat Hartl
397919ff0a Don't move user data if running in container with unmounted volume 2025-12-16 19:35:21 -06:00
Pat Hartl
9d8f8cc238 Error handling for migrations 2025-12-16 19:13:14 -06:00
Pat Hartl
a8ffbb601b Safely move contents to new data directory 2025-12-16 00:55:15 -06:00
Pat Hartl
f345b49263 Apply SemVer sort ordering 2025-12-16 00:20:48 -06:00
Pat Hartl
5b0abac404 Merge branch 'main' into development 2025-12-15 23:15:40 -06:00
Pat Hartl
1679719ad4 Add application migrations 2025-12-13 00:27:54 -06:00
Pat Hartl
2c7a835efa Move clients out of Services directory 2025-12-13 00:26:43 -06:00
Pat Hartl
369f298aaf Expression bodies 2025-12-11 02:06:18 -06:00
Pat Hartl
88301d9c79 Move config/user files to Data directory 2025-12-11 01:58:28 -06:00
Aaron Powell
22113f9ef2 Removing Serilig from the sdk 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
ce183c8eb9 Implement debugger for packaging scripts 2025-12-10 21:46:46 -06:00
Pat Hartl
17fa802c19 Implementation of script debugger component with RPC via SignalR 2025-12-10 20:55:38 -06:00
Aaron Powell
0992d95bd1 Adding some logging into server connect/disconnect for debugging 2025-12-11 12:09:58 +11:00
Pat Hartl
04f7a0a07a
Merge pull request #375 from LANCommander/development
Refactor Launcher Import
2025-12-05 21:49:19 -06:00
Pat Hartl
df521b60f3 Add method to check if manifest is legacy 2025-12-05 21:04:14 -06:00
Pat Hartl
b93c0f6732
Merge pull request #374 from LANCommander/development
Refactored Importing / Legacy Game Importing
2025-12-05 14:40:12 -06:00
Pat Hartl
414f728181 Inherit IKeyedModel, restrict ManifestHelper.Write to only manifests 2025-12-04 23:43:25 -06:00
Pat Hartl
18d58ec305 Include version in LCX manifest 2025-12-04 19:03:05 -06:00
Aaron Powell
5e305fc0b0 Endpoint for saves uploading was missing Game from it 2025-12-04 14:38:09 +11:00
Aaron Powell
d0f6782d3e Adding a file name when uploading
The file name is ignored by the server, but if you don't add one, you can't attach a file to the form
2025-12-04 13:35:27 +11:00
Pat Hartl
3d991dc601 Add import progress/success stage to dialog 2025-12-03 18:32:27 -06:00
Aaron Powell
ead5b3ef9e Cleanup warnings 2025-12-03 19:35:44 +11:00
Aaron Powell
96327b3e2f Fixing how regex paths are handled and removing dead code 2025-12-03 19:34:53 +11:00
Pat Hartl
b4e8925e0e Merge branch 'main' into development 2025-12-01 17:57:07 -06:00
Pat Hartl
f6f673b1ca
Merge pull request #367 from aaronpowell/download-resiliance
Adding some resiliance to the download queue
2025-12-01 17:53:43 -06:00
Aaron Powell
eb4adabb35 Adding some resiliance to the download queue 2025-12-01 22:40:47 +11:00
Aaron Powell
e5ffb4c8ad Handling null in settings that causes a pain when debugging 2025-12-01 21:43:41 +11: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
ffa8ba2399 Add cmdlet to patch GameSpy games 2025-11-26 18:45:19 -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
edc3e706d1 Check if the game archive can stream before trying to download 2025-11-20 22:05:02 -06:00
Pat Hartl
17c45d9821 Fix token secret not loading from config 2025-11-20 01:21:23 -06:00
Pat Hartl
88686383db Unwrap settings config builder extensions 2025-11-19 19:52:36 -06:00
Pat Hartl
256b46e823 Fix storage of authentication token 2025-11-19 00:36:03 -06:00
Pat Hartl
b0025daea0 Prefer IOptions, fix setting duplication bug 2025-11-17 18:01:53 -06:00