Name: [ADD] P-OPS-4 Ops Cockpit + AI Operations Manager governance (opens M3)

State: Failed finished in 14m

PR State: merged

PR Author: David Tran

PR Author Email:

PR: #50

Committer: David Tran

Committer Email: davidtran.hp@gmail.com

Commit: 637398f92dc2e343188661eba9f377cfe89606f1

Description:

                                            [FIX] viin_ai_ops_brain: sudo Brain reads in approval-rationale evidence write

The 'Generate Approval Rationale' button is callable by any user with write on
the proposal (no group on the view) and writes an internal audit page under sudo.
But the Brain-config reads on that path ran as the calling user: the rationale
template content_html, the evidence vault auto_approve flag, and the originating
viin.ai.trace business id. A non-Brain (or non-author) user hit AccessError on
the vault/template, and the T5 trace attribution silently degraded to the
no-trace sentinel under the trace own-records rule. Read all three under sudo
(consistent with the already-sudo'd page + link create) so evidence is written
with full-fidelity attribution regardless of who triggers it. Adds a red-before-
green test: a non-author non-manager trigger records the REAL trace_id.
                                            

Branch: 17.0

Instance ID: 0

Age:

Up-time:

Subbuilds Name State Detail
Build 385480 Check the quality with Pylint: from test_lint to test_pylint 14m Failed Log
Build 385481 At install tests: from account to website_twitter 168m Succeed Log
Build 385482 Post install tests: step install all modules 89m Succeed Log
Build 385483 Post install tests: from account to payment_asiapay 159m Succeed Log
Build 385484 Post install tests: from payment_authorize to test_website_slides_full 184m Succeed Log
Build 385485 Post install tests: from test_xlsx_export to to_website_docs_odoo_data 79m Succeed Log
Build 385486 Post install tests: from to_website_odoo_version to viin_estimate 84m Failed Log
Build 385487 Post install tests: from viin_estimate_approval to viin_pricelist_validity_advance 39m Failed Log
Build 385488 Post install tests: from viin_product_multi_barcodes to website_twitter 59m Succeed Log
Build 385489 Test install all modules without demo data: from account to website_twitter 68m Succeed Log
Create Date Level Message
06/13/2026 19:40:34 INFO
Updated repository Viindoo-odoo
06/13/2026 19:40:34 INFO
Updated repository Viindoo-tvtmaaddons
06/13/2026 19:40:34 INFO
Updated repository Viindoo-erponline-enterprise
06/13/2026 19:40:34 INFO
Updated repository Viindoo-branding
06/13/2026 19:40:34 INFO
Cloned repository Viindoo-ai
06/13/2026 19:55:11 ERROR
Subbuild # 385480: odoo.addons.test_pylint.tests.test_eslint: FAIL: TestESLint.test_eslint Traceback (most recent call last): File "/data/build/Viindoo-tvtmaaddons-17.0/test_pylint/tests/test_eslint.py", line 67, in test_eslint self.assertEqual(process.returncode, 0, msg=f""" AssertionError: 1 != 0 : stdout: /data/build/rb-637398f-222167/viin_ai_ops/static/src/ops_cockpit/ops_cockpit.js 219:19 error Replace `⏎············"Live·metrics·could·not·be·loaded·right·now·—·showing·safe·defaults."⏎········` with `"Live·metrics·could·not·be·loaded·right·now·—·showing·safe·defaults."` prettier/prettier 393:98 error Delete `,` prettier/prettier 398:95 error Delete `,` prettier/prettier /data/build/rb-637398f-222167/viin_ai_ops/static/tests/tours/cockpit_tour.js 63:23 error Insert `⏎···············` prettier/prettier 64:17 error Insert `····` prettier/prettier 65:1 error Insert `····` prettier/prettier 66:1 error Insert `····` prettier/prettier 67:1 error Insert `····` prettier/prettier ✖ 8 problems (8 errors, 0 warnings) 8 errors and 0 warnings potentially fixable with the `--fix` option. Perhaps you might benefit from installing the tooling found at: https://github.com/odoo/odoo/wiki/Javascript-coding-guidelines#use-a-linter stderr:
06/13/2026 19:55:11 ERROR
Subbuild # 385480: odoo.modules.loading: Module test_pylint: 1 failures, 0 errors of 7 tests
06/13/2026 19:55:11 ERROR
Subbuild # 385480: odoo.modules.loading: At least one test failed when loading the modules.
06/13/2026 19:55:11 ERROR
Subbuild # 385480: odoo.tests.result: 1 failed, 0 error(s) of 24 tests when loading database 'rb-637398f-222167-385480'
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 297) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 298) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 299) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 300) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 301) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 302) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 303) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 304) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 305) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 306) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 307) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 308) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 309) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 310) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 311) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 312) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 324) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 325) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 326) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 22:35:24 ERROR
Subbuild # 385486: odoo.addons.mail.models.mail_mail: failed sending mail (id: 327) due to You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter. Traceback (most recent call last): File "/data/build/Viindoo-odoo-17.0/addons/mail/models/mail_mail.py", line 664, in _send msg = SendIrMailServer.build_email( File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_mail_server.py", line 526, in build_email assert email_from, self.NO_FOUND_FROM AssertionError: You must either provide a sender address explicitly or configure using the combination of `mail.catchall.domain` and `mail.default.from` ICPs, in the server configuration file or with the --email-from startup parameter.
06/13/2026 21:50:08 ERROR
Subbuild # 385487: odoo.addons.viin_helpdesk_project.tests.test_access_rights: ERROR: TestAccessTicket.test_user_who_following_task_or_project_read_ticket Traceback (most recent call last): File "/data/build/Viindoo-tvtmaaddons-17.0/viin_helpdesk_project/tests/test_access_rights.py", line 13, in test_user_who_following_task_or_project_read_ticket ticket = self.env['viin.helpdesk.ticket'].with_user(self.env.ref('base.user_admin')).create({ File "<decorator-gen-1794>", line 2, in create File "/data/build/Viindoo-odoo-17.0/odoo/api.py", line 430, in _model_create_multi return create(self, [arg]) File "/data/build/Viindoo-tvtmaaddons-17.0/viin_helpdesk/models/helpdesk_ticket.py", line 336, in create vals['stage_id'] = team.stage_ids[:1].id File "/data/build/Viindoo-odoo-17.0/odoo/fields.py", line 2940, in __get__ return super().__get__(records, owner) File "/data/build/Viindoo-odoo-17.0/odoo/fields.py", line 1182, in __get__ recs._fetch_field(self) File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 3824, in _fetch_field self.fetch(fnames) File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 3863, in fetch self.check_access_rule('read') File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 4169, in check_access_rule raise self.env['ir.rule']._make_access_error(operation, forbidden) odoo.exceptions.AccessError: Uh-oh! Looks like you have stumbled upon some top-secret records. Sorry, Mitchell Admin (id=2) doesn't have 'read' access to: - Helpdesk Team (viin.helpdesk.team) If you really, really need access, perhaps you can win over your friendly administrator with a batch of freshly baked cookies.
06/13/2026 21:50:08 ERROR
Subbuild # 385487: odoo.tests.result: 0 failed, 1 error(s) of 1579 tests when loading database 'rb-637398f-222167-385487'