v1.2.0
Desktop support
Corsarr Desktop for macOS is the supported non-technical onboarding release.
Windows and Linux Desktop archives are experimental previews: they launch on
their target systems, but automatic runtime preparation and native secure
credential storage are not implemented yet. The CLI remains supported on all
published platforms.
Changelog
New Features
- 628f1c9: feat(application): manage installed app lifecycle (@woliveiras)
- a0a2996: feat(autostart): manage macOS login registration (@woliveiras)
- 4ce85a5: feat(catalog): migrate Jellyseerr to official Seerr (@woliveiras)
- 63f9865: feat(catalog): pin approved desktop images (@woliveiras)
- 4e69afe: feat(credentials): store secrets in macOS Keychain (@woliveiras)
- a365742: feat(dashboard): expose managed Arr credentials (@woliveiras)
- 03c6a85: feat(dashboard): install applications directly (@woliveiras)
- 17804c2: feat(dashboard): prioritize live service status (@woliveiras)
- 006ba34: feat(data): show configuration size before removal (@woliveiras)
- 512cda6: feat(desktop): add credits and licenses catalog (@woliveiras)
- 0242e29: feat(desktop): add explicit start-at-login setting (@woliveiras)
- 09a3ea5: feat(desktop): add setup review workflow (@woliveiras)
- 19fb784: feat(desktop): create base app (@woliveiras)
- e00d29b: feat(desktop): explain operation failures safely (@woliveiras)
- 76976ef: feat(desktop): install reviewed applications (@woliveiras)
- a77261f: feat(desktop): localize application catalog (@woliveiras)
- 3875641: feat(desktop): manage installed applications (@woliveiras)
- 7fdd597: feat(desktop): offer safe application updates (@woliveiras)
- 4a399bf: feat(desktop): persist app selection with dependencies (@woliveiras)
- c109ffc: feat(desktop): persist local setup state (@woliveiras)
- 7c3485d: feat(desktop): prepare runtime during installation (@woliveiras)
- f681cd7: feat(desktop): require versioned runtime consent (@woliveiras)
- 846b954: feat(diagnostics): copy installation support report (@woliveiras)
- f43036b: feat(diagnostics): export redacted support report (@woliveiras)
- ba71edd: feat(installation): report per-app progress (@woliveiras)
- e2eb478: feat(jellyfin): show reviewed local network address (@woliveiras)
- 03caa22: feat(legal): localize application notices (@woliveiras)
- 2a2ff5a: feat(lifecycle): prevent dependency-breaking removal (@woliveiras)
- 63aed6a: feat(network): allow explicit Jellyfin LAN access (@woliveiras)
- b70498a: feat(onboarding): add expandable installation progress (@woliveiras)
- 0db346d: feat(onboarding): gate runtime preparation on Mac readiness (@woliveiras)
- 4a52ed9: feat(onboarding): guide first desktop setup (@woliveiras)
- 1b715a7: feat(onboarding): make integrations optional (@woliveiras)
- 00ca0d4: feat(onboarding): prepare Docker Desktop on macOS (@woliveiras)
- e3c68cd: feat(onboarding): recommend integrated application stack (@woliveiras)
- 2d15e1d: feat(onboarding): supervise Podman machine (@woliveiras)
- 76c454a: feat(orchestrator): install containers transactionally (@woliveiras)
- c8650c2: feat(orchestrator): reconcile selected installations (@woliveiras)
- cddf07a: feat(orchestrator): update containers with rollback (@woliveiras)
- 60a0850: feat(orchestrator): wait for application readiness (@woliveiras)
- 271d702: feat(provisioning): automate Jellyfin first run (@woliveiras)
- c7a642a: feat(provisioning): automate Seerr media setup (@woliveiras)
- 1705c32: feat(provisioning): bootstrap Arr authentication (@woliveiras)
- 76b1263: feat(provisioning): bootstrap qBittorrent securely (@woliveiras)
- e202e56: feat(provisioning): configure Arr root folders (@woliveiras)
- c07aac0: feat(provisioning): connect Arr apps to qBittorrent (@woliveiras)
- e468302: feat(provisioning): connect Bazarr to Arr apps (@woliveiras)
- 4dd78d7: feat(provisioning): connect Prowlarr to Arr apps (@woliveiras)
- 5dcbb20: feat(provisioning): read Arr credentials safely (@woliveiras)
- 70b2b47: feat(recovery): start existing services after login (@woliveiras)
- a6e9c8e: feat(release): generate SPDX software inventories (@woliveiras)
- 17fd004: feat(release): ship license inventory and desktop SBOMs (@woliveiras)
- d80ced9: feat(release): unify CLI and desktop versioning (@woliveiras)
- e82a234: feat(runtime): add direct Podman adapter (@woliveiras)
- fd4d0d1: feat(runtime): add ownership-safe Docker lifecycle (@woliveiras)
- a12065d: feat(runtime): derive host container profile (@woliveiras)
- 37733f8: feat(runtime): detect Podman readiness (@woliveiras)
- 673a096: feat(runtime): read bounded managed logs (@woliveiras)
- 08d29c0: feat(runtime): validate immutable container specs (@woliveiras)
- e659984: feat(setup): add recommended media stack (@woliveiras)
- df3d325: feat(storage): archive application data safely (@woliveiras)
- 61412d6: feat(storage): back up application configuration (@woliveiras)
- d90179b: feat(storage): prepare idempotent media layout (@woliveiras)
- e6f39e3: feat(storage): require verifiable free capacity (@woliveiras)
- af9e623: feat: Implement directory picker and environment diagnostics (@woliveiras)
- 5ebfe83: feat: Introduce Corsarr Desktop proposal and architecture documentation (@woliveiras)
- e1ccac4: feat: add Corsarr landing and Cloudflare delivery (@woliveiras)
- 9ee01ef: feat: replace app screenshots with landing previews (@woliveiras)
Bug Fixes
- db8bbfe: fix(dashboard): keep onboarding guidance out of sidebar (@woliveiras)
- 1182bda: fix(dashboard): keep selection guidance in onboarding (@woliveiras)
- 1db7cb2: fix(data): clear credentials with archived config (@woliveiras)
- 2b5d60e: fix(desktop): clarify constrained lifecycle actions (@woliveiras)
- 240addb: fix(desktop): minimize operation result payloads (@woliveiras)
- 1d36eb4: fix(desktop): redact application status errors (@woliveiras)
- bc522b3: fix(desktop): remove prototype-only interface copy (@woliveiras)
- 528298c: fix(desktop): serialize mutating operations (@woliveiras)
- e63ffe7: fix(install): reject stale container contracts (@woliveiras)
- e6f6c89: fix(installer): recover completed container creates (@woliveiras)
- d3d11ff: fix(macos): require supported system version (@woliveiras)
- 1460b3e: fix(onboarding): explain protected storage access (@woliveiras)
- fb2ff91: fix(onboarding): keep authorization save silent (@woliveiras)
- ed3690f: fix(onboarding): persist Jellyfin network choice (@woliveiras)
- 4d1f59c: fix(onboarding): recover application catalog loading (@woliveiras)
- 1a0ec83: fix(onboarding): replace integration guidance with warning (@woliveiras)
- 37f0023: fix(onboarding): scale typography for large displays (@woliveiras)
- 66342c5: fix(onboarding): space installation status from catalog (@woliveiras)
- f8f4a0e: fix(onboarding): surface integration warning above catalog (@woliveiras)
- 80cc13f: fix(provisioning): resume partial Seerr setup (@woliveiras)
- 1fe558d: fix(provisioning): send Seerr Jellyfin URL base (@woliveiras)
- 1a0d774: fix(provisioning): wait for Jellyfin setup API (@woliveiras)
- 5d43e97: fix(qbittorrent): accept no-content login response (@woliveiras)
- 6f6da94: fix(radarr): use managed qBittorrent port (@woliveiras)
- 737620a: fix(release): inventory desktop licenses across platforms (@woliveiras)
- c82dcb8: fix(release): keep desktop assets outside checkout (@woliveiras)
- f1bf01c: fix(setup): preserve choices during runtime outages (@woliveiras)
- ed91510: fix(setup): retain installed applications in selection (@woliveiras)
- 993b72b: fix(storage): revalidate before setup mutations (@woliveiras)
- 530bd62: fix(update): recheck runtime disk capacity (@woliveiras)
- cdddfb7: fix(update): reject container contract drift (@woliveiras)
- c6ec639: fix(update): revalidate storage before backup (@woliveiras)
- 8782b00: fix: allow Cloudflare analytics beacon (@woliveiras)
- 68d76e5: fix: satisfy pinned Go lint checks (@woliveiras)
Other Changes
- b9badc3: Add Corsarr landing and Cloudflare delivery (@woliveiras)
- 3a487e6: Fix CI validation failures (@woliveiras)
- 0c9fde3: ci(release): publish experimental desktop builds (@woliveiras)
- ffe4ae5: ci(release): require manual publication and scan vulnerabilities (@woliveiras)
- 30e3bd9: docs(desktop): publish installation and acceptance guidance (@woliveiras)
- aa21254: docs(security): add private reporting and bug intake (@woliveiras)
- 5b16d3b: test(catalog): verify remote arm64 manifests (@woliveiras)
- a7c09f8: test(orchestrator): verify real Docker installation (@woliveiras)
- c9fe4f6: test(runtime): verify Docker lifecycle contract (@woliveiras)
- ebb0b8d: test(storage): verify Docker bind mount contract (@woliveiras)
- 2e2d7f9: test(update): verify real Docker rollback (@woliveiras)