Wednesday, April 22, 2026
4 changes · saas-19.3
Enhancements to existing features
Discuss messages can now display and edit code blocks more naturally. This improves the experience for users sharing technical snippets by keeping formatting clear and showing code in a readable way when messages are viewed.
Original PR description
splitting the code block plugin from the font plugin, and make it available in mail composer. use the syntax highlighting embedded component to render code blocks in readonly mode in the message bodies. task-5262721 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The system now checks for missed notifications as soon as a user connects to the messaging socket, instead of relying on a separate page-watcher process. This simplifies the flow and makes the warning about lost updates more dependable when a connection is interrupted.
Original PR description
The outdated page watcher service tries to guess if the bus table was GCed during disconnect to warn the user about missed notifications. To do so, it has a complex logic, deeply coupled to the websocket lifecycle events and requires an RPC request to check if the server still knows about the last notification received. It would be much simpler to check this when first subscribing to the socket. This commit implement this solution. part of task-6144132
The 0% S tax for Belgium now uses the correct exemption code and exemption reason. This helps ensure invoices and tax reports reflect the right legal classification and reduces the risk of reporting errors.
Original PR description
The tax 0% S had a wrong tax exemption code and tax exemption reason. This commit corrects it. Task-6127195 Forward-Port-Of: odoo/odoo#259639
After synchronizing databases with Odoo.com, the system now tries to create a database-specific API key instead of relying on one global key. This reduces unnecessary validation calls and can speed up database access by around half a second in some cases.
Original PR description
Before this commit, databases fetched from Odoo's SaaS were contacted using the global API key, which is more costly than using a key local to each database. Avoiding the call from the server to Odoo to check the foreign API key can spare about 500ms on each database where this key is not in the LRU. With this commit, after the synchronization with Odoo.com, we try to generate an API key on each database that doesn't have one yet. To do so, it relies on the API introduced by odoo/odoo#246118. Forward-Port-Of: odoo/enterprise#114406 Forward-Port-Of: odoo/enterprise#106372