-
DcRouter v32.7.0
StableRelease / build-and-release (push) Successful in 32m59sreleased this
2026-10-05 20:43:22 +00:00 | 19 commits to main since this release2026-10-05 - 32.7.0
Fixes
- Push every renewal of the SMTP certificate to the running listener (email). A renewal pushed to the listener used to be copied into the runtime email configuration as inline PEM, which the next resolution served ahead of the certificate store, so only the first renewal per process reached the listener and later renewals re-pushed the old certificate. Resolved material now stays out of the configuration and every listener start or renewal reads the store again. A renewal also applies when its certificate is stored under a wildcard or sibling route domain and covers the mail hostname, not only when it is stored under the mail hostname itself.
- Report a served SMTP certificate that is expired, not yet valid, does not cover the mail hostname or an enabled mail-edge hostname, or does not match its key as an error in the log and in
getEmailServerSettings, instead of serving it silently.
Features
- Add the email server setting
tlsSource(managedCertificate|configuredMaterial) to choose where the SMTP certificate comes from (email).updateEmailServerSettingsswitches it in-process; switching tomanagedCertificateis refused while no currently valid stored certificate covers the mail hostname and every enabled mail-edge hostname, and removes the configuredcertPath/keyPath/inline PEM when accepted. Settings stored without the field keep their behaviour: configured material while it is present, otherwise the stored certificate. - Report the served SMTP certificate in
getEmailServerSettingsastlsCertificate(source, origin, DNS names,notBefore/notAfter, required hostnames, problems) (email).
Maintenance
- Release tooling: pnpm 12.5.1 → 12.8.1,
@git.zone/tsbuild5.0.0 → 5.1.2,@git.zone/tsbundle3.0.0 → 3.1.3,@git.zone/tsdeno1.12.0 → 1.15.0,@git.zone/tsdocker3.9.0 → 3.11.0,@git.zone/tstest6.3.2 → 7.1.0,@git.zone/tswatch4.0.2 → 6.0.1 and@types/node26.6.2 → 26.6.3;@git.zone/tsrun3.0.2 is current. No test uses the tstest helpers whose results changed in 6.3.3–7.0.0 (TapNodeTools.runCommand()no longer folds stderr intostdout,createHttpsCert()writes a PKCS#8 key,createBrowser()), and thetestscript's options stay valid under tstest 7. tswatch 5 and 6 keep the@git.zone/tswatchwatcher configuration unchanged; tswatch 6 bundles through tsbundle 3, whichdcrouter-devdoes not use (its command runspnpm run build, already on tsbundle 3 with third-party notices). tsdeno stays on 1.x: 2.0.0 changestsdeno compileto embed exactly the versionspnpm-lock.yamlpins and fail on any difference, a lockfile-model migration ofbuild:binarythat gets its own change. pnpm 12.8.2 and@types/node26.6.4 wait for the seven-day rule.
Downloads