Fixed
- Settings save CSRF failure: Ensure antiforgery token is refreshed and tied to the authenticated session; added
tokenReadyPromiseinApiServiceand block unsafe requests until token is available. Removed manual CSRF fetch fromsaveApplicationSettings. Seefe/src/services/api.ts. - Token export: Properly export
ensureImageCachedand removed stray/unused code that caused build errors. Seefe/src/services/api.ts. - Startup cache logging: Added missing
loggerimport and removed unsafeconsoleusage. Seefe/src/services/api.ts. - Save rollback:
StartupConfigService.SaveAsyncnow preserves previous in-memory_configand restores it on write failures; rollback exceptions are logged. Seelistenarr.api/Services/StartupConfigService.cs.
Changed
- Logging cleanup: Converted remaining
console.logcalls inApiServicetologger.debugand tidied comments. Seefe/src/services/api.ts. - Frontend type imports: Added missing types (
QualityScore,StartupConfig) to the generated API client to fix TS errors. Seefe/src/services/api.ts. - StartupConfig typing: Added PascalCase
AuthenticationRequiredto accept bothauthenticationRequiredandAuthenticationRequiredpayload shapes. Seefe/src/types/index.ts. - CI-friendly type-check: Limited frontend
type-checkscript totsconfig.app.json(excludes tests) to avoid test-only typings breakingdotnet publish. Seefe/package.json. - Antiforgery whitelist: Allowed
/api/configuration/startupconfigin antiforgery middleware so the SPA can persistconfig.jsonin development. - Development ContentRoot resolution: Prefer repo
config/config.jsonandconfig/database/listenarr.dbinDevelopment(withLISTENARR_CONTENT_ROOToverride); added Serilog messages that report resolved paths. - Code quality: Replaced generic/empty catches and
Path.Combineusages with narrower catches andPath.Joinwhere applicable.
Fix...
Automated canary build