Skip to content

Stable v2.8.32

  • docs(whatsnew): pending notes for SSH key-only, localized errors, self-healing
  • fix(agent): unbound-resolvconf mask must trigger on failed-state, not resolvconf presence
  • fix(agent): mask always-failing no-op unbound-resolvconf helper
  • fix(agent): SSH key-only drop-in must win over cloud-init + not touch root policy
  • feat(agent): key-only SSH hardening — disable password auth once a key is present
  • fix(agent): self-heal orphaned per-customer PHP-FPM template instances
  • i18n(review): kick off native translation review — per-language workbooks + safe re-import
  • i18n: eliminate residual prose display (frontend) + German in error API
  • i18n: migrate middleware auth/error responses to error-code contract
  • i18n: migrate remaining ~1042 backend error responses to error-code contract
  • i18n(review): normalize NL mailbox term + record internal translation review
  • i18n: guardrail — block regressions of German prose in error responses
  • docs(i18n): consolidate + kick off translation review
  • i18n: generic error-code sweep across 51 remaining handlers
  • i18n: migrate FTP + Databases handlers to error codes (5th+6th domains)
  • i18n: migrate Email handler to error codes (4th domain)
  • i18n: migrate Backup handler to error codes (3rd domain)
  • i18n: migrate Domains handler to error codes (2nd domain)
  • i18n: error-code contract — the sustainable clean architecture (Sites reference)
  • i18n(P3+P4): eliminate all remaining German backend text in the UI
  • i18n(P1+P2): stop leaking German backend messages into toasts