Commit graph

4059 commits

Author SHA1 Message Date
Pat Hartl
1983cf4bb3 Apply database migration on startup, add default install directory 2025-11-06 20:15:05 -06:00
Pat Hartl
707332b68e Add null checks for participants and user 2025-11-05 23:42:36 -06:00
Pat Hartl
5a9606bf71 Fix redistributable not installing if no archives exist 2025-11-05 18:59:02 -06:00
Pat Hartl
a92c7be6ec Enhance chat list
- Added SafeAvatar component for retrieving user avatars with fallback to initials
- Added a title/name for chat threads
- Moved chat input to a separate component
2025-11-03 23:27:05 -06:00
Pat Hartl
7a562cdb10 Fix authentication limbo in launcher 2025-11-03 23:24:47 -06:00
Pat Hartl
e98d4d449a Auth with RPC, simplify chat delegates, load threads and implement sending messages 2025-10-28 22:21:16 -05:00
Pat Hartl
191827ed6d Remove manual tracking of user connections, populate participants in database
Removes the manual tracking of user connections by connection ID in the RPC hub. SignalR automatically links connections to connected users and provides Client.User[s] methods.

Also fixes message sending to participants and tracking of participants per thread.
2025-10-28 22:19:48 -05:00
Pat Hartl
9b14134ebf Missing window code 2025-10-26 17:05:49 -05:00
Pat Hartl
d25003481c Avoid exception stream progress update 2025-10-26 17:05:24 -05:00
Pat Hartl
ede0e814a5 Change how windows are created. Refactor SignalR client to be named subscriber. Call ChatClient static methods on response from SignalR chat client. Fix dependency loop with chat. 2025-10-25 22:00:50 -05: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
50401469c4 Notify progress on dispatcher thread 2025-10-22 00:07:48 -05:00
Pat Hartl
2076c6e93b Allow different cookie policies for HTTP/S 2025-10-21 21:28:52 -05:00
Pat Hartl
ac223c6959 Move auth routes to endpoints, change OIDC response mode to query, fix link w/o antiforgery 2025-10-21 02:41:00 -05:00
Pat Hartl
30a1683c1b Organize components 2025-10-15 21:47:28 -05:00
Pat Hartl
d85e716bbb Add cancel install to launcher
Fixes #293
2025-10-15 21:26:40 -05:00
Pat Hartl
2f969a196d Add ability to browse files on Linux/macOS
Fixes #349
2025-10-15 20:21:54 -05:00
Pat Hartl
9c86c4f99d Add validation for base game for addons
Fixes #324
2025-10-12 21:07:59 -05:00
Pat Hartl
0812387c55 Switch OIDC to use configuration endpoints 2025-10-12 20:54:56 -05:00
Pat Hartl
c4217d7b41 Refactor HTTP streaming
Greatly reduces the amount of memory usage when streaming from the server by:
1. Shedding use of an internal MemoryStream
2. Using HttpCompletionOption.ResponseHeadersRead to start reading the stream without loading all of the HttpContent into memory
2025-10-09 02:16:20 -05:00
Pat Hartl
36761bede7 Fix configuration getting wiped on start 2025-10-08 20:45:57 -05:00
Pat Hartl
41f9191745 Register server configuration source refresher 2025-10-08 19:53:05 -05:00
Pat Hartl
14f8bfc372 Simplify settings write, increase debounce 2025-10-08 19:52:37 -05:00
Pat Hartl
cf73dca217 Increase debug logging 2025-10-08 19:51:44 -05:00
Pat Hartl
19db052fac Send minimal response with server settings 2025-10-06 23:21:26 -05:00
Pat Hartl
694b8b9842 Use SettingsProvider when getting any settings
SettingsProvider uses IOptionsMonitor to maintain the current value of settings. This gets updates on YML file changes and since it's a single instance (instead of injecting IOptions<Settings>), consumers always have the latest values.
2025-10-06 20:29:34 -05:00
Pat Hartl
14e789beae Fix loaded server config breaking local config 2025-10-06 19:25:42 -05:00
Pat Hartl
2b30158764 Implement debounce to avoid thrashing disk on settings update 2025-10-06 19:25:24 -05:00
Pat Hartl
3783dac472 Reload config on change 2025-10-06 19:24:18 -05:00
Pat Hartl
4968481460 Standardize YAML serializers 2025-10-06 19:23:49 -05:00
Pat Hartl
3d06db770a Fix build for launcher CLI 2025-10-05 23:45:55 -05:00
Pat Hartl
d11200451a Merge branch 'main' into development 2025-10-05 21:31:28 -05:00
Pat Hartl
ad034918a4 Register client, rename settings file 2025-10-05 21:31:16 -05:00
Pat Hartl
b1e5034ed9 Remove projection overloads 2025-10-05 19:41:24 -05:00
Pat Hartl
c6bcb7e920 Refactor KeepAliveService to rely on IConnectionClient 2025-10-05 19:30:59 -05:00
Pat Hartl
e7653cb33e Clean up selected library item main view
The library view was constructed to be a monolithic component. It has been split out to multiple components, with the potential for expansion into other library items types in the future (other than just a game). The handler for failed installs has also been moved to the queue.
2025-10-05 19:30:32 -05:00
Pat Hartl
f5cdea1afc Handle connection state based on SignalR connection state 2025-10-05 17:52:37 -05:00
Pat Hartl
382a270b03 Simplify connection state management 2025-10-05 17:13:47 -05:00
Pat Hartl
0466fd38bd Use SettingsProvider 2025-10-02 20:07:44 -05:00
Pat Hartl
ab73e9c4e0 Rework SettingsProvider 2025-10-02 19:41:47 -05:00
Pat Hartl
4cbf672bb1 Fix auth, API response deserialization 2025-10-01 18:45:30 -05:00
Pat Hartl
d21a7dfc0d Store server address as string in Settings.yml 2025-09-29 19:51:16 -05:00
Pat Hartl
5cab1f3618 Remove old SettingsService, replace with Options pattern 2025-09-29 19:49:09 -05:00
Pat Hartl
6dd210af3c Add workflow for making development builds 2025-09-27 16:41:20 -05:00
Pat Hartl
aaf65fcf09 Runnable launcher using new client 2025-09-27 16:39:54 -05:00
Pat Hartl
9050722890 Grab settings via authenticated API 2025-09-26 00:51:25 -05:00
Pat Hartl
7f99fb481c Use Options pattern, 2025-09-26 00:51:02 -05:00
Pat Hartl
14208b34a3 Serve client settings via new endpoint 2025-09-26 00:49:34 -05:00
Pat Hartl
22df6677bc Remove settings interfaces 2025-09-26 00:33:59 -05:00
Pat Hartl
82024fb117 Remove unused includes 2025-09-25 19:53:04 -05:00