- Add one hub `/hubs/jobs`, strongly typed API included.
- Adjust request pipeline to support SignalR.
- Allow `Accept: text/event-stream` for SSE requests.
- Add client library support for hubs.
- Add integration tests.
- Add IPermissionSetNotifyee to support dynamic changes based on perms.
- Keep job state in `JobService` for pushing updates.
- Added functionality to release notes app to generate full changelog.yml from GitHub metadata. (Incremental)
- Updated PULL_REQUEST_TEMPLATE.md to reflect changes (Strict component list)
- Move `Tgstation.Server.Host.Common.Constants` to `Tgstation.Server.Common`.
- Use `Tgstation.Server.Common.Constants.CanonicalPackageName` in strings everywhere where it makes sense.
- Add `SrcCommon.props` to dedupe more .csproj properties.
- Rename `TgsNugetNetVersion` to `TgsNugetNetFramework` and move to `Version.props`.
- Change Nugets packages' author to just `Jordan Dominion`.
- Fix name of wix extensions namespace.
- Update Octokit to `7.0.0`.
- Add missing documentation comment for `PackageReference`.
Wix is just better, it drives the fucking Visual Studio installer for gods' sakes. Thankfully, v4 is a whole lot better than v3 in that it's native dotnet tooling.
- Added ability to set base path for loading configuration files.
- Added Service command descriptions for help text.
- New `.exe` installer also installs dotnet dependencies.
- New `.msi` properly invokes configure, sets up and controls service, sends detach stop signal on upgrades, and uses ProgramData for configs with appropriate permissions.
- Remove .deb symlinks in favor of explicitly setting config directory.
- Adjust CI pipeline with new installer changes.
- Appropriately bump TGS migrator version.
- `DelayedFileDownloader` changed into `RequestFileStreamProvider` which provides a direct network stream.
- `CachedResponseStream` now only caches the `HttpContent` as opposed to the `HttpResponseMessage`.
- `IFileDownloader` now synchronously returns `IFileStreamProvider`s.
- `FileDownloader` now returns `RequestFileStreamProviders`.
- Added `ISeekableFileStreamProvider`.
- BufferedFileStreamProvider now implements `ISeekableFileStreamProvider`.
- Set all requests to use assemblyInformationProvider UserAgent by default.
- Removed DefaultIOManager's dependency on IAssemblyInformationProvider.
- Fixed bad Dispose scope for requests under construction in SwarmService.