Sunday, September 13, 2026
6 changes · master
Enhancements to existing features
The Belgian CODA Clean import process now records clearer log information when importing CODA bank files. This helps support teams investigate import issues faster without changing the user workflow.
Original PR description
This commit will improve the logs of _l10n_be_codaclean_import_coda_files to help the support team to debug possible problem. task-5436868 Forward-Port-Of: odoo/enterprise#131258 Forward-Port-Of: odoo/enterprise#129854
Resolved issues and error corrections
Switching to another view via Ask AI while a full email composer is open no longer triggers an error after the original record view is closed. This avoids a disruptive warning for users and keeps navigation smooth when moving between CRM and other views.
Original PR description
Asking the AI agent to navigate to a different view calls doAction with clearBreadcrumbs, which tears down the current form view (and its chatter) before the still-open full mail composer dialog is…
Asking the AI agent to navigate to a different view calls doAction with clearBreadcrumbs, which tears down the current form view (and its chatter) before the still-open full mail composer dialog is closed. Closing that dialog then calls the chatter's onCloseFullComposerCallback, which reloads the parent record through reloadParentView(). However at that point the chatter no longer exists, so the reload's RPC call gets rejected with "Component is destroyed", and nothing is left to catch it.
How to reproduce:
- Open "Ask AI" from the top bar.
- Open an opportunity in CRM, then open the mail composer (click either 'Send message' or 'Log Note'), then click the enlarge button so it opens as a full composer dialog.
- Ask the agent (the one you pre-opened) to open another view, e.g. "show me all my contacts in the US", "show me the contact view of Abigail Peterson"
Current behavior:
The requested view opens correctly, but an UncaughtPromiseError ("Component is destroyed") is raised.
Expected behavior:
Switching views while a full composer dialog is open should not raise any error. The chatter's parent record should simply not be reloaded if the chatter has already been destroyed by the time its full composer dialog closes.
community: https://github.com/odoo/odoo/pull/287125
task: 6365003
Forward-Port-Of: odoo/enterprise#131279
Forward-Port-Of: odoo/enterprise#131112This fixes an error that could appear when users asked the AI assistant to open another view while a full email composer was still open. Odoo now avoids trying to refresh a record view that has already been closed, so the requested navigation completes without disruptive error messages.
Original PR description
Asking the AI agent to navigate to a different view calls doAction with clearBreadcrumbs, which tears down the current form view (and its chatter) before the still-open full mail composer dialog is…
Asking the AI agent to navigate to a different view calls doAction with clearBreadcrumbs, which tears down the current form view (and its chatter) before the still-open full mail composer dialog is closed. Closing that dialog then calls the chatter's onCloseFullComposerCallback, which reloads the parent record through reloadParentView(). However at that point the chatter no longer exists, so the reload's RPC call gets rejected with "Component is destroyed", and nothing is left to catch it.
How to reproduce:
- Open "Ask AI" from the top bar.
- Open an opportunity in CRM, then open the mail composer (click either 'Send message' or 'Log Note'), then click the enlarge button so it opens as a full composer dialog.
- Ask the agent (the one you pre-opened) to open another view, e.g. "show me all my contacts in the US", "show me the contact view of Abigail Peterson"
Current behavior:
The requested view opens correctly, but an UncaughtPromiseError ("Component is destroyed") is raised.
Expected behavior:
Switching views while a full composer dialog is open should not raise any error. The chatter's parent record should simply not be reloaded if the chatter has already been destroyed by the time its full composer dialog closes.
task: 6365003
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#287877
Forward-Port-Of: odoo/odoo#287125Vertical notebook tabs now line up correctly when users open pages that use this layout. Long tab names wrap onto the next line instead of disrupting the page, making the affected dialogs easier to read and use.
Original PR description
When a user opened a page with a vertical notebook, the tabs were not aligned with each other. Vertical notebooks should now have properly aligned tabs. If a tab title is too long, it will wrap onto the next line instead of breaking the layout. task-[5933892](https://www.odoo.com/odoo/project/4105/tasks/5933892) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#287711 Forward-Port-Of: odoo/odoo#279098
Vertical notebook tabs now appear more clearly separated when using dark mode. This makes pages easier to read and navigate, especially where multiple tabs are shown side by side.
Original PR description
## Behavior Before the Commit When a user opens a page with a vertical notebook in dark mode, the different tabs aren't separate from one another. task-[5933892](https://www.odoo.com/odoo/project/4105/tasks/5933892) Forward-Port-Of: odoo/enterprise#131166 Forward-Port-Of: odoo/enterprise#126013
This fixes a rare calendar issue where selecting an undefined partner in the Gantt view could cause the system to crash. The calendar now handles missing attendee information safely, improving reliability for users scheduling or viewing events.
Original PR description
Although it is not usually expected it is technically possible for the value of default partner_ids to be `False`. In which case we don't want to crash.. This can now happen when clicking the "undefined partner" row in gantt. task-6185278