Daily updates from Odoo
Tuesday, November 25, 2025
31 changes
3 changes
Enhancements to existing features
- `-g 0` turns out to significantly increases file size without increasing quality (apparently it makes every frame an i-frame) - lossless video seems useful for comparing different runs, and while it *is* costly it's pretty reasonable for screencasting (5~6 times the size of a normal output, but a third the size of current outputs) - "lossless h264" (per ffmpeg) does not seem to actually be lossless - lossless av1 does work (and is slightly smaller than h265), but the libsvtav1 shipped by ub
Original PR description
- `-g 0` turns out to significantly increases file size without increasing quality (apparently it makes every frame an i-frame) - lossless video seems useful for comparing different runs, and while it *is* costly it's pretty reasonable for screencasting (5~6 times the size of a normal output, but a third the size of current outputs) - "lossless h264" (per ffmpeg) does not seem to actually be lossless - lossless av1 does work (and is slightly smaller than h265), but the libsvtav1 shipped by ubuntu does not support it, and libaom is *extremely* slow, so that might be something to revisit in a few years Testing on the main flow tour (desktop), - the current setting generates a 40MB file - removing `-g 0` generates a 2.6MB file, quality seems about the same - h264 pseudo-lossless yields a 9.4MB file - h265 lossless is 16.9MB - av1 (libsvtav1) is 2.5MB - av1 lossless (libaom) is 13.2MB Forward-Port-Of: odoo/odoo#236710
This update streamlines the Peppol Registration Wizard by ensuring a warning banner only appears after endpoint details are entered, and removing unnecessary placeholders. This simplifies the process for users and improves the overall user experience within the account module.
Original PR description
In the Peppol Registration Wizard: - Warning banner should only show up when endpoint as been filled - Remove placeholder - ~Remove the "in" migration~ Ref PR for master: odoo/odoo#234088 Task [link](https://www.odoo.com/odoo/project/967/tasks/5170831?debug=assets) task-5170831 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235982 Forward-Port-Of: odoo/odoo#234087
This update allows users to backdate Saudi invoices within Odoo, resolving a previous limitation that prevented accurate reporting to ZATCA. By aligning the invoice confirmation date with the invoice date itself, this change ensures consistency and simplifies invoice processing for Saudi Arabia. This improves compliance and reduces potential discrepancies.
Original PR description
Previously, `l10n_sa_confirmation_datetime` represented the time where the invoice was posted, that meant that we could not backdate invoices, since it would cause disparity between what zatca receives and what we consider in odoo (i.e. `invoice_date`) This commit allows us to set the date component of `l10n_sa_confirmation_datetime` to the `invoice_date` so we can safely backdate invoices. task-5009969 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236979 Forward-Port-Of: odoo/odoo#229517
4 changes
Enhancements to existing features
This update enhances the Peppol Registration Wizard by streamlining the user experience. Specifically, a warning banner now only appears after endpoint details are entered, and a placeholder has been removed for clarity. This simplifies the process for users registering for Peppol.
Original PR description
In the Peppol Registration Wizard: - Warning banner should only show up when endpoint as been filled - Remove placeholder - ~Remove the "in" migration~ Ref PR for master: odoo/odoo#234088 Task [link](https://www.odoo.com/odoo/project/967/tasks/5170831?debug=assets) task-5170831 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235982 Forward-Port-Of: odoo/odoo#234087
This update enables the IoT box to connect without requiring a secure HTTPS certificate. By utilizing Local Network Access (LNA), the system now defaults to HTTP requests, simplifying the connection process and improving reliability. This change ensures consistent functionality for IoT devices.
Original PR description
Enterprise PR: https://github.com/odoo/enterprise/pull/100331 **This PR contains 2 commits:** - **[IMP] iot_base: allow use of LNA for IoT requests** Chromium 142 added support for HTTPS -> HTTP…
Enterprise PR: https://github.com/odoo/enterprise/pull/100331 **This PR contains 2 commits:** - **[IMP] iot_base: allow use of LNA for IoT requests** Chromium 142 added support for HTTPS -> HTTP requests on the local network (Local Network Access). This commit adds a flag to the IoT longpolling class to enable LNA support. The flag forces all requests to use HTTP even in an HTTPS environment. It also sets the `targetAddressSpace` option to `local` in the `fetch` request. - **[IMP] point_of_sale: use_lna support for IoT requests** Since https://github.com/odoo/odoo/pull/235702, there is a `point_of_sale.use_lna` system parameter. When it is set, ePOS requests will use HTTP instead of HTTPS, and the `targetAddressSpace: "local"` option is used in the `fetch` request. This bypasses the need for a HTTPS certificate. This commit adds the same functionality to all IoT requests from the POS. This should allow the IoT box to function correctly without a HTTPS certificate. task-5353672 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update enhances the reliability of IoT devices connected to our Point of Sale system. By supporting HTTP requests instead of HTTPS, the IoT box can now function without requiring a certificate, resolving a previous connectivity issue. A warning message is also displayed if a fallback to the websocket is necessary.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/237147 Since odoo/odoo#235702, there is a `point_of_sale.use_lna` system parameter. When it is set, ePOS requests will use HTTP instead of HTTPS, and the `targetAddressSpace: "local"` option is used in the `fetch` request. This bypasses the need for a HTTPS certificate. This commit adds the same functionality to all IoT requests from the POS. This should allow the IoT box to function correctly without a HTTPS certificate. In addition, we now show a warning message when a request to the Blackbox via HTTP fails and has to fallback to the websocket. task-5353672
This pull request introduces new automated tests for the UrbanPiper integration, ensuring the functionality continues to work correctly. Additionally, several minor fixes have been implemented to improve stability and data accuracy, specifically related to receipt printing and timer display.
Original PR description
## 1. Hoot test
in this commit:
- add HOOT tests for components, model, screen, and service
- added test for methods in `order_info_popup` and `order_display`
- include tests for `pos_order`, `ticket_screen`, and `pos_store`
- add utility to generate UrbanPiper-filled order
## 2. minor fixes
in this commit:
- kept serialized data for receipt printing
- ensure timer does not display negative values
- correct variable usage in ticket screen to fetch proper props for display order
- revamp `getTime` method to use l10n time format
task: 50483122 changes
Enhancements to existing features
This update automatically notifies users when invoices are canceled due to DGI rejections, preventing unnoticed cancellations and ensuring timely corrections. It also allows users to easily update invoice statuses when DGI acceptance is received, resolving inconsistencies and improving data accuracy.
Original PR description
Added 3 improvements to the process of updating the state of an invoice in Odoo, according to the state in DGI: **For invoices that have been rejected by DGI:** - Added logic to automatically notify…
Added 3 improvements to the process of updating the state of an invoice in Odoo, according to the state in DGI: **For invoices that have been rejected by DGI:** - Added logic to automatically notify relevant users when an electronic invoice (CFE) is rejected by the DGI and, as a result, canceled in the system. The goal is to ensure that there is always someone responsible who is informed to correct and resend the receipt. - Added logs in the terminal to make the debug easier in case we want to identify rejected invoices. **Particular case of an invoice that had been rejected by DGI but the user somehow fixes it and then DGI accepts it:** - Added logic to verify both DGI state and Invoice state and adjust it accordingly when updating invoice DGI status. - Make 'Update DGI status' button always visible to be able to adjust invoices states. **== Context of the Problem ==** Previously, when Odoo detected that a CFE had been rejected by the DGI, the system proceeded to cancel the invoice automatically. However, this process was carried out silently, without generating any notification. This could mean that if no user or salesperson was actively monitoring the status of the receipts, the cancellation would go unnoticed, resulting in invoices that were never corrected or reissued. For the case of a previously rejected and then accepted invoice, we always thought that 'Rejected' state in DGI was a definite state and could not suffer any change. But recently it has been a case that this state changed, creating inconsistencies in Odoo invoices states as they appear as cancelled. With these changes, the user can adjust the invoices state by clicking 'Update DGI status' button. **== Automatic Notification Logic ==** With the new functionality, every time an invoice is automatically canceled due to a DGI rejection, the system posts a message in the document chatter to report the situation. The logic for determining who is notified is as follows: _Scenario 1: Invoice with Internal Followers_ - If the canceled invoice has at least one internal follower (an Odoo user), the system will perform the following actions: - It will post a message in the invoice chatter. - It will tag (@) all internal followers to notify them directly. _Scenario 2: Invoice without Internal Followers_ - If the invoice does not have any internal followers, the system will search for a more general but relevant audience to ensure that the notification is addressed: - It will post a message in the invoice chat. - It will tag (@) all users who belong to the “Accounting Manager” permission group (technical name: group_account_manager). Task ODOO: #[1362](https://latam-localizations.odoo.com/web?debug=1#id=1362&cids=1&menu_id=88&action=131&active_id=16&model=project.task&view_type=form) Task ADHOC: #[54799](https://www.adhoc.inc/odoo//project.task/54799) Forward-Port-Of: odoo/enterprise#94502
This update enhances compatibility with newer IoT Boxes (v19.1+) by adding a check for the 'bb status' within the system's data status. This ensures seamless integration and prevents potential issues related to the latest IoT Box versions. It's a routine maintenance update to maintain compatibility.
Original PR description
We now check the bb status in `data.status` in addition to `data.status.status` to ensure compatibility with v19.1+ IoT Boxes. Forward-Port-Of: odoo/enterprise#100440
11 changes
Enhancements to existing features
In this commit, we converted the payroll benefits into salary rules and adjusted the demo data. task-5122374.
Original PR description
In this commit, we converted the payroll benefits into salary rules and adjusted the demo data. task-5122374.
This update enhances the spreadsheet module by allowing charts to be directly linked to underlying data sources. This provides a more seamless and intuitive way to visualize data within spreadsheets, improving reporting and analysis capabilities. It's a key improvement for users relying on spreadsheet data for insights.
Original PR description
Enterprise counterpart of https://github.com/odoo/odoo/pull/221871 Task-4079971
This update enhances the Odoo barcode scanner to correctly identify and display all products associated with the same lot number, even if they are different items. Previously, the scanner only recognized the first product linked to a lot. Now, users can easily view and manage all products sharing the same lot number, improving inventory accuracy.
Original PR description
Within Odoo, its possible to have the same SN/Lot for different products, but when you scan the SN/Lot in barcode it only takes in account the first product. After this commit, scanning a SN/Lot will show the products that have the same SN/Lot with the ability to access it in details by clicking on it and seeing the SN/Lot in form view while retaining the old behaviour if its just one product for a specific SN/LOT. Task: 4910195
This update improves the Tyro point-of-sale system's compatibility with self-order kiosks. Specifically, it allows kiosks to access product information and prevents receipt printing, while displaying an error message for unsupported features like surcharges and tips. This ensures a smoother user experience on kiosk systems.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/231190 This commit includes some small changes to make Tyro compatible with the kiosk: - Allow the `get_tyro_product_info` method to be called from the kiosk. - Don't try to print merchant receipts from the kiosk. - Show an error message if surcharges/tips are used in the kiosk, these are not yet supported. task-4882726
This update ensures the 'New' ribbon remains visible on documents linked to ECOs, even after the ECO is completed. This enhancement improves traceability for changes made during the ECO process, allowing reviewers to clearly see what modifications were implemented. It strengthens the audit trail for product development and engineering changes.
Original PR description
The 'New' ribbon remains visible on documents linked through an ECO, even after the ECO is marked as done. This improves traceability and allows reviewers to identify what was added or removed as part of the change. Task - [4641242](https://www.odoo.com/odoo/my-tasks/4641242)
This update allows users to select the optimal label size (8.5" x 11" or 4" x 6") for EasyPost shipping labels, eliminating the need for manual cropping and streamlining the printing process. Previously, labels were always created in a default size, leading to user frustration and wasted time.
Original PR description
With this commit, we enable the option for users to select their preferred `label size in the EasyPost` delivery carrier configuration, giving users more control over how `shipping labels` are generated and printed. Before this commit, EasyPost always `defaulted` to creating `labels in 8.5" x 11"` size, even when the actual label was intended to be `4" x 6"`. As a result, users often had to `manually crop` the label before printing, which was `time-consuming.` `By allowing label size selection`, users can now choose the `best format` directly based on their requirements. This eliminates the `need for cropping` and ensures a smoother and faster printing process. taskId :- 4604014
This update simplifies how employee benefits are managed within Odoo. Instead of fixed fields, benefits like housing allowances and medical expenses are now stored as flexible properties for each employee. This allows HR to easily adjust benefits and add new ones without requiring complex system changes.
Original PR description
Replace traditional hardcoded benefit fields with the flexible property-based system for managing employee allowances and payslip inputs. - Benefits like HRA, meal allowance, medical allowance, and transport exemptions are now stored as properties on employees. - Payslip-specific inputs like extra hours and salary advances are stored as properties on payslips. - This provides more flexibility for HR to configure benefits per employee and add occasional inputs without system configuration changes. Task-5122396
This update adds fields to the Odoo Enterprise payroll module to better support translations for Luxembourg, Mexico, and the Netherlands. These changes enhance the user experience by allowing for localized content within the payroll system, aligning with regional requirements and improving usability for international users. This supports compliance and localization efforts.
Original PR description
* = l10n_{lu,mx,nl}_payroll + l10n_mx_hr_payroll_account_edi
Some fields become translatable to improve user experience
task-4571722This update enhances the user experience of Odoo's payroll system by refining the visual presentation of pay run and employee payslip views. Specifically, minor formatting adjustments and label changes have been made to improve clarity and consistency.
Original PR description
- Replace '-' with '→' in Period on pay run payslip form - Change label 'payslip' to 'Payslip' in pay run kanban view - Remove kanban view from the Employee Payslips task-5163907
This pull request addresses improvements to the generation of UBL test files for Odoo's tax localization modules (GT and MX). Specifically, it streamlines XML processing and formatting for better test file structure and consistency, ensuring accurate validation of invoices.
Original PR description
When backporting to 18.0, we discovered a few improvement findings which are important to add in the original master version. - `_sort_xml_attributes` is reinventing the wheel. etree has a built in method- `canonicalize` which handles converting the XML to fit in to the `c14n` v2 standard, which already includes sorting of the attributes. We should use that instead of `_sort_xml_attributes`. - collect all namespaces from the whole document and put them on the root element, after the canonicalization process. This reverts the canonicalize standard of placing namespaces as deep inside the tree as possible which makes the generated UBL test ugly & crowded, as almost all element tag in UBL files are prefixed with namespaces. These collected namespaces are also sorted to ensure consistency. - remove xml_declaration on the test files related-community-PR: https://github.com/odoo/odoo/pull/237365 task-4891206
This update ensures the Legal Welfare Fund (LWF) setting is automatically enabled within the payroll configuration. Because ESIC coverage is limited, enabling it by default would be unnecessary. This change guarantees compliance with mandatory LWF requirements for all payroll setups.
Original PR description
ESIC applies only to employees whose wages are ≤ ₹21,000. Most companies have fewer employees who fall under ESIC (though it is applicable in the case of workers). So enabling the ESIC setting by default in Payroll may not be necessary. However LWF is mandatory so the LWF setting must be enabled in the Payroll configuration. Task-5349724
9 changes
Enhancements to existing features
This update enhances account reports to ensure they only display journals relevant to the currently selected company when multi-company accounting is enabled. Previously, reports could inadvertently include data from other companies' ledgers. This change improves report accuracy and simplifies the user experience for businesses managing multiple companies.
Original PR description
When multi-company, if multi-ledger is visible to one company, exclude journals of other companies when opening the report. task-5180393
This update enhances the multi-company ledger feature by preventing confusion when multiple companies are selected. It now includes the company name in the journal selection options, making it easier to manage and understand which companies are associated with a particular ledger.
Original PR description
* When a company is selected on multi-ledger, exclude other companies journal from excluded journals view. * When multi-ledger is visible for all companies, add the company name to the tags list and autocomplete options of the excluded journals to avoid confusion. task-5180393 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update introduces new tax groups for AR withholdings and perceptions, enhancing tax tracking accuracy. By creating distinct groups for withholdings and aligning with existing sales/purchase structures, this change simplifies tax reporting and improves data management. It also corrects naming conventions for key accounts.
Original PR description
Update id and tax groups on tax csv files. Before this change all the perceptions and withholdings were in the same tax group. New withholding tax groups are created on…
Update id and tax groups on tax csv files. Before this change all the perceptions and withholdings were in the same tax group. New withholding tax groups are created on addons/l10n_ar_withholding/data/template/account.tax.group-ar_base.csv and addons/l10n_ar_withholding/data/template/account.tax.group-ar_ex.csv 1) Replace/unify "ARBA" with "PBA" and "Provincia de Buenos Aires (P. Buenos Aires)" 2) Replace/unify "CABA" with "CABA" and "Ciudad Autónoma de Buenos Aires" 3) Multiply the tax groups for AR withholdings taxes: a) To improve tax tracking. Currently, all withholdings are grouped into a single group, making it very difficult to retrieve all taxes related to a specific withholding. The tax group concept fits this need well. b) Aligns with how tax groups are structured for sales/purchases. c) Also, the current single withholding group is incorrectly named "VAT Withholding". 4) Fix the name of the generic account from "Default VAT Payable/Receivable Account" to "Default Tax Payable/Receivable Account" Task Adhoc side: 57644 Task Latam side: 1361 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
- `-g 0` turns out to significantly increases file size without increasing quality (apparently it makes every frame an i-frame) - lossless video seems useful for comparing different runs, and while it *is* costly it's pretty reasonable for screencasting (5~6 times the size of a normal output, but a third the size of current outputs) - "lossless h264" (per ffmpeg) does not seem to actually be lossless - lossless av1 does work (and is slightly smaller than h265), but the libsvtav1 shipped by ub
Original PR description
- `-g 0` turns out to significantly increases file size without increasing quality (apparently it makes every frame an i-frame) - lossless video seems useful for comparing different runs, and while it *is* costly it's pretty reasonable for screencasting (5~6 times the size of a normal output, but a third the size of current outputs) - "lossless h264" (per ffmpeg) does not seem to actually be lossless - lossless av1 does work (and is slightly smaller than h265), but the libsvtav1 shipped by ubuntu does not support it, and libaom is *extremely* slow, so that might be something to revisit in a few years Testing on the main flow tour (desktop), - the current setting generates a 40MB file - removing `-g 0` generates a 2.6MB file, quality seems about the same - h264 pseudo-lossless yields a 9.4MB file - h265 lossless is 16.9MB - av1 (libsvtav1) is 2.5MB - av1 lossless (libaom) is 13.2MB Forward-Port-Of: odoo/odoo#236710
This update improves the HTML editor's syntax highlighting by adding a dedicated read-only component, ensuring highlighting is visible even when the editor is in read-only mode. It also refactors the underlying component structure for better efficiency and maintainability, addressing several related improvements and bug fixes.
Original PR description
The syntax highlighting plugin cleans itself up on save so the `pre` is not dependent on Prism's css. But we still want to see the highlighting in readonly mode, so this adds a readonly version of the component in order to parse the `pre` in readonly as well. This also refactors the syntax highlighting embedded component so it uses an embedded state instead of reinventing it with `commitToHost`. task-5159286 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update simplifies the Peppol Registration Wizard by removing unnecessary warnings and placeholders. Specifically, the outdated 'in' migration process has been removed, streamlining the registration experience for users. This change focuses on clarity and efficiency within the wizard.
Original PR description
In the Peppol Registration Wizard: - ~Warning banner should only show up when endpoint as been filled~ - Remove placeholder - ~Remove the "in" migration~ Ref PR for master: odoo/odoo#234088 Task [link](https://www.odoo.com/odoo/project/967/tasks/5170831?debug=assets) task-5170831 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235982 Forward-Port-Of: odoo/odoo#234087
This pull request optimizes how Odoo handles employee data, resulting in faster loading times and improved responsiveness when working with employee records. The changes enhance the performance of the HR module, leading to a smoother user experience. This is a general performance improvement.
Original PR description
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
This update ensures that the same optional fields related to vehicle assets are consistently shown on both Receipts and Vendor Bills within the Enterprise module. This improves data clarity and simplifies processes for users managing fleet assets. The change aligns field visibility across related documents.
Original PR description
This commit ensures that the same optional fields are displayed consistently on both Receipts and Vendor Bills. Updated the visibility of the following fields: - vehicle_id (Vehicle) task-5349202
This update ensures that key optional fields – like deductible amounts, vehicle IDs, landed costs indicators, and purchase order references – are consistently displayed on both Receipts and Vendor Bills. This improves data clarity and simplifies processes for users managing financial transactions across multiple modules.
Original PR description
Modules modified - account, account_fleet, stock_landed_costs, purchase This commit ensures that the same optional fields are displayed consistently on both Receipts and Vendor Bills. Updated the visibility of the following fields: - deductible_amount (Professional %) - vehicle_id (Vehicle) - is_landed_costs_line (Landed Costs) - purchase_order_id (Purchase Order) task-5349202
2 changes
Enhancements to existing features
This update enhances how Odoo calculates taxes, specifically addressing scenarios where taxes are based on volume (e.g., per unit). This change, requested during Odoo Exp 2025, ensures more accurate tax calculations for products sold by volume, improving financial reporting. It impacts the account and point of sale modules.
Original PR description
The use case to cover is when you have a volume based tax. Requested during Odoo Exp 2025. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update streamlines accounting test creation by introducing a standardized helper for asserting and saving XML files. This simplifies test maintenance, reduces errors, and provides a more organized approach to XML handling within the Odoo accounting tests.
Original PR description
> This is a backport of the merged https://github.com/odoo/odoo/pull/235565 - with a couple of improvements & adaptations to the test files. This commit adds helpers and improves on the way we assert…
> This is a backport of the merged https://github.com/odoo/odoo/pull/235565 - with a couple of improvements & adaptations to the test files. This commit adds helpers and improves on the way we assert XML files in `AccountTestInvoicingCommon` and all accounting test that extend from it. From now on, all accounting test code that assert an XML tree/string to an XML file should call the `assert_xml` helper, and design their test file name/location/etc. around this framework. This approach has a few major benefits: Assert / Save XML When testing XML files, we often need to perform create/read/update operations on the asserted XML to make sure it corresponds to the most updated/intended data. Previously, to save something to an XML, a developer would need to write their own local helpers to save the XML in the right directory. This was cumbersome and error-prone, so we decided to design a helper that allows developer to immediately save AND/OR update the asserted XML: to save/update an XML, we can simply add `SAVE_XML` as an additional test tags. Better test naming and optional subfolder management To better organize test files, the `assert_xml` method allows us to write just the test key name (without `.xml`), and the framework will automatically get the XML to assert/save from the `test_files` directory. An optional `subfolder` parameter is also added to allow writing to specific subfolder within `test_files`. Better `___ignore___` management in assertion XMLs Sometimes, we want to ignore a few XML node that are not relevant, or have content that are not deterministic (changes on every test run). To handle this, previously, developers would need to modify the assertion XML content by hand or write their own local script to do so. With this new framework, we just need to add an `ignore_schema.xml` file somewhere in the `test_files` directory. If put inside a subfolder, it will be applied with more priority towards the XML that are put on that specific subfolder. Save "pure" XML (before applying `___ignore___`) in temporary folder When calling `SAVE_XML`, before applying the ignore patches, the XML will be saved in a temporary folder (same folder as the screenshots for tours), so that developers can use them in external tests in the future, and for any other saving reasons. In addition, this commit also: - add `extra_tags` helper to save all the common tags for EDIs, for a better way to enable `EXTERNAL_MODE` testing inspired by `l10n_mx_edi` - convert some non-assert XML test helpers into a class method - canonicalize the XML to ensure consistency of the generated test files following the C14N Version 2 standard. (Deterministic namespaces location, sorted attributes, etc.) task-4891206