What's Changed
- [stable31] fix(AccountProperty): better validation of twitter and fediverse handles by @backportbot in #50700
- [stable31] feat(admin_audit): write admin audit log for AnyLoginFailedEvent by @backportbot in #50710
- [stable31] enh: Fix display default expire date, add tests & tiny refactors by @backportbot in #50695
- [stable31] fix(files): support submenu in batch actions header too by @backportbot in #50714
- [stable31] fix(files): only send config update requests if user is logged in by @backportbot in #50736
- [stable31] chore(deps-dev): bump karma-coverage from 2.2.0 to 2.2.1 by @dependabot in #50718
- [stable31] chore(deps-dev): bump sass from 1.81.0 to 1.81.1 by @dependabot in #50719
- [stable31] chore(deps-dev): bump dockerode from 4.0.2 to 4.0.4 by @dependabot in #50720
- [stable31] fix: make sure we process mime extensions as string by @backportbot in #50705
- [stable31] chore(deps-dev): bump cypress-split from 1.24.0 to 1.24.10 by @dependabot in #50743
- [stable31] chore(deps-dev): bump cypress from 13.15.0 to 13.15.2 by @dependabot in #50721
- [stable31] Add LDAP test settings command by @backportbot in #50690
- [stable31] fix(setupcheck): Update setup check for PHP version to be more accurate by @backportbot in #50751
- [stable31] feat(sharing): Allow to set default view mode for public shares by @backportbot in #50758
- [stable31] Don't rethrow a type error by @backportbot in #50763
- [stable31] build(deps): Bump phpseclib/phpseclib from 2.0.47 to 2.0.48 by @susnux in #50709
- [stable31] fix: don't use cached root info from shared cache if the watcher has detected an update by @backportbot in #50760
- [stable31] fix(core): Fix undefined "application" array key error by @backportbot in #50766
- [stable31] fix(emailTemplate): use instance Name instead of Url in subject by @backportbot in #50776
- [stable31] fix: template field title by @backportbot in #50790
- 31.0.0 RC4 by @Altahrim in #50770
Full Changelog: v31.0.0rc3...v31.0.0rc4