187 changes from 9 contributors (of which 1 is a new contributor). 124 files were affected.
What's Changed
New features
- feat(other): search by nickname and company in recipient autocomplete by @IrAlfred in #1890
- feat(other): add Monolog for structured logging with environment-based configuration by @IrAlfred in #1891
- feat(other): allow HTML signature in the profile by @IrAlfred in #1896
- feat(frontend): add configurable/custom action buttons by @camilevahviraki in #1764
- feat(other): add module-aware PHP dependency checker to build script by @IrAlfred in #1830
- feat(backend): add possibility to send php errors to glitchtip by @josaphatim in #1901
- feat(frontend): add complete Polish interface translation by @szporwolik in #1907
- feat(backend): implement support for application/ms-tnef message by @mercihabam in #1902
- feat(module/2fa): auto-generate APP_2FA_SECRET in config_gen when unset by @IrAlfred in #1925
- feat(frontend/backend): support configurable page query parameter name by @mercihabam in #1919
- feat(backend): disable archive button when ews In-Place Archive is not provisioned by @kambereBr in #1936
- feat(frontend): show collapsed nav subitems on hover by @mercihabam in #1932
Bug fixes
- fix(other): point docker compose to latest Cypht release 2.7.0 by @IrAlfred in #1887
- fix(backend): ensure that css-hidden content in messages is not shown in Cypht as well and no HTML head content embedded in the output by @mercihabam in #1888
- fix(backend): prioritize exact, case-insensitive match over substring-based when searching for a message body struct. Preventing falsy match of subtype (e.g., 'x-amp-html' to 'html') by @mercihabam in #1889
- fix(workflow): allow underscores and digits in module scope pattern by @IrAlfred in #1893
- fix(other): update commonmark to version 2.8.1 to fix CVE-2026-30838 by @IrAlfred in #1892
- fix(other): fix "TRANSLATION NOT FOUND" warnings by @IrAlfred in #1895
- fix(frontend): css: visual fixes to the calendar and contacts page by @pom2ter in #1894
- fix(other): only init KindEditor for signature in HTML compose mode by @IrAlfred in #1898
- fix(backend): allow custom sources by @josaphatim in #1899
- build(deps): bump league/commonmark from 2.8.1 to 2.8.2 by @dependabot[bot] in #1900
- fix(backend): correct cache path for folder names in message list type handler by @Shadow243 in #1910
- fix(module/imap): fix snooze feature by @josaphatim in #1908
- fix(other): align league/commonmark version between composer.json and lock file by @IrAlfred in #1915
- fix(other): remove custom log file path and default to empty from env config to use default PHP error log by default by @IrAlfred in #1916
- fix(backend): gmail_contacts - migrate to Google People API v1 by @szporwolik in #1905
- fix(frontend): stabilize filter editing, custom actions, and ux by @camilevahviraki in #1912
- fix(module/sievefilters): avoid duplicate modal bindings and invalid main_sc… by @camilevahviraki in #1921
- fix(other): show nav menu on save page by adding missing route entry and supporting handler-less routes by @IrAlfred in #1922
- fix(frontend): message page had a title Filter by @camilevahviraki in #1926
- fix(frontend): visual fixes for message list and mobile by @pom2ter in #1927
- fix(other): use db_name for SQLite DSN instead of db_socket by @IrAlfred in #1929
- fix(module/highlights): fix highlights module bugs by @IrAlfred in #1931
- fix(module/imap_folders): clear parent folder cache on subfolder creation by @IrAlfred in #1934
- fix(other): run composer install before setup.sh in Test-phpunit job by @IrAlfred in #1933
- fix(docker): remove misleading unused nginx default site config by @IrAlfred in #1940
- fix(backend): ensure Hm_Mailbox is constructed with a connection type by @mercihabam in #1941
- fix(other): update version reference to 2.8.0 for upcoming release by @IrAlfred in #1939
- fix(e2e): fix CI sqlite setup and replace flaky navigation wait with deterministic counter + AJAX idle check by @IrAlfred in #1942
Refactoring
- refactor(frontend/backend): propose sieve filter actions according to server extensions by @josaphatim in #1897
- refactor(frontend): maintain a dedicated logout page to separate session termination from navigation handling, preventing related issues by @mercihabam in #1750
- refactor(frontend): move some JS code of the sievefilter module for execution in route handlers instead of a global execution by @mercihabam in #1903
- refactor(frontend): imap folders page to show wich folder is being edited by @camilevahviraki in #1923
New Contributors
- @szporwolik made their first contribution in #1907
Full Changelog: v2.7.0...v2.8.0