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

State: Failed finished in 15m

PR State: merged

PR Author: David Tran

PR Author Email:

PR: #50

Committer: David Tran

Committer Email: davidtran.hp@gmail.com

Commit: c97e3aeb3dbd5033a5b2ff182af62fc41f573233

Description:

                                            [ADD] viin_ai_ops: P-OPS-4 Ops Cockpit dashboard + ops-manager governance gate

OWL client action 'Ops Cockpit' under AI > Reporting: a COO/CFO governance
pane-of-glass with 6 ACL-respecting metric tiles (pending_approvals,
stuck_workflow, fail_rate, cost_per_goal, stale_evidence, ai_action_backlog) via
retrieve_ops_cockpit() running as the user (read_group/search_count, no sudo, no
raw SQL). Cross-module metrics flow through a decoupling provider hook so
viin_ai_ops gains zero dependency edges. Company-wide view gated on
group_ai_ops_manager (not base.group_system); tiles drill into the same records
within the user's scope. Semantic v17 design tokens (no hardcoded color), AA
contrast, responsive.
                                            

Branch: 17.0

Instance ID: 0

Age:

Up-time:

Subbuilds Name State Detail
Build 385470 Check the quality with Pylint: from test_lint to test_pylint 14m Failed Log
Build 385471 At install tests: from account to website_twitter 134m Succeed Log
Build 385472 Post install tests: step install all modules 74m Succeed Log
Build 385473 Post install tests: from account to payment_asiapay 155m Succeed Log
Build 385474 Post install tests: from payment_authorize to test_website_slides_full 180m Succeed Log
Build 385475 Post install tests: from test_xlsx_export to to_website_docs_odoo_data 70m Succeed Log
Build 385476 Post install tests: from to_website_odoo_version to viin_estimate 74m Failed Log
Build 385477 Post install tests: from viin_estimate_approval to viin_pricelist_validity_advance 29m Failed Log
Build 385478 Post install tests: from viin_product_multi_barcodes to website_twitter 54m Succeed Log
Build 385479 Test install all modules without demo data: from account to website_twitter 55m Succeed Log
Create Date Level Message
06/13/2026 18:20:01 INFO
Updated repository Viindoo-odoo
06/13/2026 18:20:01 INFO
Updated repository Viindoo-tvtmaaddons
06/13/2026 18:20:01 INFO
Updated repository Viindoo-erponline-enterprise
06/13/2026 18:20:01 INFO
Updated repository Viindoo-branding
06/13/2026 18:20:01 INFO
Cloned repository Viindoo-ai
06/13/2026 18:35:29 ERROR
Subbuild # 385470: 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-c97e3ae-222166/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-c97e3ae-222166/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 18:35:29 ERROR
Subbuild # 385470: odoo.modules.loading: Module test_pylint: 1 failures, 0 errors of 7 tests
06/13/2026 18:35:29 ERROR
Subbuild # 385470: odoo.modules.loading: At least one test failed when loading the modules.
06/13/2026 18:35:29 ERROR
Subbuild # 385470: odoo.tests.result: 1 failed, 0 error(s) of 24 tests when loading database 'rb-c97e3ae-222166-385470'
06/13/2026 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:50:18 ERROR
Subbuild # 385476: 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 20:05:07 ERROR
Subbuild # 385477: 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 20:05:07 ERROR
Subbuild # 385477: odoo.tests.result: 0 failed, 1 error(s) of 1579 tests when loading database 'rb-c97e3ae-222166-385477'