Monday, October 6, 2025
4 changes · 19.0
Enhancements to existing features
Email handling now avoids loading large unnecessary message content into memory during common operations. This reduces the risk of out-of-memory failures and improves processing speed for mail-heavy databases, while keeping the same user-facing behavior.
Original PR description
Modifications are made around read, filtered, list comprehension. The read function usually does not prefetech fields other than stated. But in this case, since the fields are related fields from…
Modifications are made around read, filtered, list comprehension. The read function usually does not prefetech fields other than stated. But in this case, since the fields are related fields from another model, The fields of the other model are prefeteched. This includes the body which can be very big in size and cause an out of memory error. Filtered does not need other fields and keeps them unnecessarily in cache. List comprehension where it has a reference to specific field inside the model also triggers the prefetecher. Benchmark: | |Number of queries| SQL time| Python time|| |-------|----------------------------|----------------|---------------|-| |with prefetch| 82| 1.887 | 7.898| Out of memory| |Without prefetch| 120| 0.385 | 5.973| | The benchmark with the prefetch was done locally with increasing the memory limit. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#211075 Forward-Port-Of: odoo/odoo#183893
Changing a folder to not be discoverable no longer automatically makes the files inside require a direct link. This keeps folder visibility settings from unexpectedly restricting access to existing documents, making document sharing behavior more predictable for users.
Original PR description
Changing the discoverability to not propagate to its children. Previously setting a folder to Discoverable to 'No' would result in all the files also requiring a link to access them, which is unwanted behaviour. Task-4996667
IoT connections now reuse saved IoT box information so devices can continue receiving requests when the internet connection is unavailable. This reduces unnecessary server calls and improves reliability for connected hardware and self-ordering flows during network interruptions.
Original PR description
In order to make the `iot_http` service work offline, we cache the iot box records until there is a full action failure. This avoids useless orm calls and in the meantime, allow making requests to the iot box without internet connection. Community PR: odoo/odoo#226839 Forward-Port-Of: odoo/enterprise#93895
VoIP call recordings are now saved in a single audio channel instead of stereo. This reduces storage usage while keeping recordings suitable for typical business review and compliance needs.
Original PR description
Task-5082457