v2.4.19 – v2.4.20 — 2026-04-20
- fix(extensions): socket path /run/netcell/ -> /run/enconf/
- fix(apparmor): restore apparmor.service by cleaning orphan profiles
- fix(audit-log): no more FK violations on login, record user columns
- fix(packaging): drop backwards-compat netcell-* symlinks from postinst
- chore: purge every remaining persistent netcell-* artefact
- test(e2e): update screenshot paths for toolkit routes
- chore(docs-site): mkdocs nav refresh + footer link cleanup
- docs(changelog): expand 2.4.18 entry with customer-facing copy
- chore(ui): sync website-version to 2.4.18
- docs(servers): correct agent config path
- refactor(ssl): TLS health stats from inline styles to CSS
- fix(backup): cleanup button deletes all failed jobs immediately
- feat(agent): migrate persistent netcell- paths to enconf- at agent start
- feat(master-ftp): subscription-detail panel + reset-password endpoints
- fix(master-ftp): correct bindfs options, systemd unit escape, stale-mount handling
- chore: rename ephemeral netcell- paths to enconf- + naming convention
- feat(packaging): add bindfs as agent dependency for master-FTP
- feat(api): master-FTP lifecycle hooks and service helpers
- feat(agent): master-FTP routes (Setup/Sync/Teardown) + tests
- feat(subscription): add MasterFTP fields (schema only)
- chore: honest brute-force docs + lint fix
- fix(db): integrity constraints sweep
- refactor(subscription): per-site Linux user, drop Subscription.LinuxUsername
- fix(permissions): expose perm_waf, perm_nodejs_python, perm_custom_backup_target
- fix(agent): harden joomla SSO, db password handling, add regression tests
- feat(import): feature-flag incomplete Enhance/cPanel importers
- fix(apparmor-migration): inject tunables/global when missing from old netcell profile