Wednesday, March 25, 2026
10 changes · master
Enhancements to existing features
Odoo now saves more useful Chrome debug logs during automated browser tests, making it easier to understand why tests fail or time out. This replaces noisy, misleading error output with clearer diagnostic information and allows teams to adjust log detail when needed.
Original PR description
Followup and partial revert of #232612: turns out chrome's stderr is worthless at best and confusing at worst (because it logs a bunch of dbus errors which don't actually matter), however chrome…
Followup and partial revert of #232612: turns out chrome's stderr is worthless at best and confusing at worst (because it logs a bunch of dbus errors which don't actually matter), however chrome turns out to have pretty extensive debug logging facilities which are somewhat valuable: https://www.chromium.org/for-testers/enable-logging/
For instance if the oomkiller decides to nuke a chrome tab (example selected for no reason whatsoever), the debug log will have an entry along the lines of
[...:WARNING::chrome/browser/ui/sad_tab.cc:256] Tab Killed: http://127.0.0.1:8069/
which is a much more helpful hint than just being told a test timed out (to say nothing of being told that chrome was not able to do dbus stuff when we never asked for that).
Because it can be useful for all sort of debugging, this log is saved not just when chrome fails to start, but also when a Chrome completes, successfully or unsucessfully (in the latter case it's logged as RUNBOT to be available from the runbot UI).
The chrome logging facilities are controlled by a new envvar `ODOO_BROWSER_LOG_VERBOSITY`, it can be set to `-1` to disable logging, or a strictly positive integer for ever increasing amounts of logging. At `1` chrome will log every network request it attempts which can be useful for debugging some races but is already extremely noisy.
Forward-Port-Of: odoo/odoo#255548
Forward-Port-Of: odoo/odoo#255054This change lets Odoo simplify certain custom filters into standard database-friendly rules. It can improve performance and consistency when checking access permissions without changing what users are allowed to see.
Original PR description
Allow optimizing custom domains. There are some cases where we may want to have a custom domain for filtering, but for SQL, we could sometimes translate it back to a normal domain. The use case: we can use ORM methods to check access, but we can translate it into the record rules domain. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
List group headers now label their item totals with "Count:" so users can easily distinguish the count from regular field values. This reduces confusion when reading grouped lists and makes the interface clearer without changing workflows.
Original PR description
The group header count was sometimes mistaken for a field. Adding `Count: ` in front of it to avoid confusion. task-5976034
The wording shown in the mail composer placeholder has been updated to make the send-message action clearer for users. This improves guidance in chatter and discussion areas without changing underlying business workflows.
Original PR description
<img width="743" height="147" alt="image" src="https://github.com/user-attachments/assets/5b33222f-569b-4c5b-8a71-3d2c72c016fd" /> task-5867464 (point 69)
Archived employee records will no longer display presence indicators across HR views. This keeps inactive employees from appearing as available or active, reducing confusion for managers and HR teams.
Original PR description
### In this PR: When an employee is archived: - Hide presence status in every view when employee is in archive state. Task: 6067448 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The bus module’s internal test checks now provide clearer feedback when messages arrive in a different order than expected. This makes it faster for developers to understand and resolve test failures, supporting more reliable maintenance without changing customer-facing behavior.
Original PR description
This commit improves the message of assertBus when the order of messages is not as expected. When the messages are received but in a different order than expected, it shows the expected order and the actual order of messages, making it easier to understand what went wrong. task-6065374 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Repair orders no longer restrict the transfer field to return transfers only. This gives users more flexibility when linking transfers to repair work, reducing unnecessary limitations in the repair workflow.
Original PR description
Task-4921581
The setup tooling now lets teams route Claude Code API requests through OpenRouter when running in the sandbox. This gives technical teams more flexibility in choosing AI model providers while keeping configuration controlled through environment settings.
Original PR description
Add --openrouter option to configure Claude Code to use OpenRouter as a proxy for Anthropic API calls. When enabled, passes the required environment variables to the sandbox: - OPENROUTER_API_KEY (required, from host environment) - ANTHROPIC_BASE_URL (default: https://openrouter.ai/api) - ANTHROPIC_DEFAULT_*_MODEL (configurable model defaults) - ANTHROPIC_AUTH_TOKEN, ANTHROPIC_API_KEY (for authentication) All default values can be overridden via host environment variables. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The manufacturing screens now hide the Destination Package column when viewing detailed operations for production order components. This prevents users from entering package information that is not used, reducing confusion during manufacturing workflows.
Original PR description
Hide the `Destination Package` column in `Detailed Operations` for MO components as they are always consumed unpacked. Keeping it visible can mislead users into entering information that has no functional meaning. Enterprise PR:- odoo/enterprise#107810 TaskID-4068485
This update simplifies the tracking of materials within MRP components by removing unnecessary packaging fields from the SML form. These fields were previously visible but are not used when components are consumed unpacked, preventing user confusion and ensuring data accuracy. This change improves the user experience and data integrity.
Original PR description
Hide the `Destination Package` and `Destination Container Package` fields in the SML form for MO components in the Barcode app, as they are always consumed unpacked. Keeping these fields visible can mislead users into entering information with no functional meaning. Community PR:- odoo/odoo#243072 TaskID-4068485