start_month, end_month, start_year and end_year on date search filters are now invalid in views. An upgrade script removes them from stored views, but module XML that still sets them fails validation.
filtered_domain() computed quarters in four-month groups and counted weekdays from Monday, so it could disagree with search(). Both now follow PostgreSQL. Check custom code that relied on the old in-memory results.
When a portal payment creates and sends invoices, email and government EDI now go out after commit. A rollback can no longer leave a government-registered invoice that no longer exists in Odoo.
For AVCO and FIFO, later corrections to consumed component values now update the value of finished products from completed manufacturing orders. Valuation inputs on completed orders can no longer be edited in the UI.
Validating moves no longer loads quants of other packages or owners. On a database with 700k quants at a customer location, that was most of the table.
Session info now carries a hash of the translations, so the client only fetches them when they changed. This saves a request of about 6–7 ms of worker time per page view in the backend and on the website.
PerformanceWeb, HTML Editor · 18.0, 19.0, 20.0ee71b75b ↗
The repository now ships a skill for coding agents that covers commit tags, scopes, message bodies and PR target branches. It signals how Odoo expects AI tools to contribute.