Name: [ADD/FIX] viin_ai: Phase 3.5 hardening + Phase 3.7 features (SRS v1.1 follow-up)

State: Failed finished in 14m

PR State: merged

PR Author: David Tran

PR Author Email:

PR: #23

Committer: David Tran

Committer Email: davidtran.hp@gmail.com

Commit: fb9347c4a1e744a49b441b268bcf1da454c97bae

Description:

                                            [FIX] viin_ai_chat: widen exception tuple in AI draft attribution path

message_post can raise ValueError (subject/recipient validation) and
UserError (sender email config) per Odoo CE 17 mail_thread.py. Previous
narrow tuple (AccessError, MissingError) caused user to lose draft when
hitting these. Expanded to keep best-effort attribution intent.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
                                            

Branch: 17.0

Instance ID: 0

Age:

Up-time:

Subbuilds Name State Detail
Build 381332 Check the quality with Pylint: from test_lint to test_pylint 14m Failed Log
Build 381333 At install tests: from account to website_twitter 124m Succeed Log
Build 381334 Post install tests: step install all modules 64m Succeed Log
Build 381335 Post install tests: from account to payment_alipay 155m Succeed Log
Build 381336 Post install tests: from payment_aps to test_viin_web_cohort 185m Succeed Log
Build 381337 Post install tests: from test_website to to_website_apps_store 75m Succeed Log
Build 381338 Post install tests: from to_website_apps_store_loc to viin_estimate_sale 79m Failed Log
Build 381339 Post install tests: from viin_event_checkin_website to viin_project_gantt 39m Succeed Log
Build 381340 Post install tests: from viin_project_progress to website_twitter 49m Succeed Log
Build 381341 Test install all modules without demo data: from account to website_twitter 54m Succeed Log
Create Date Level Message
05/02/2026 12:15:16 INFO
Updated repository Viindoo-odoo
05/02/2026 12:15:16 INFO
Updated repository Viindoo-tvtmaaddons
05/02/2026 12:15:16 INFO
Updated repository Viindoo-erponline-enterprise
05/02/2026 12:15:16 INFO
Updated repository Viindoo-branding
05/02/2026 12:15:16 INFO
Cloned repository Viindoo-ai
05/02/2026 12:30:16 ERROR
Subbuild # 381332: odoo.addons.test_pylint.tests.test_flake8: FAIL: TestFlake8.test_flake8 Traceback (most recent call last): File "/data/build/Viindoo-tvtmaaddons-17.0/test_pylint/tests/test_flake8.py", line 91, in test_flake8 self.fail("flake8 test failed:\n" + (b"\n" + out + b"\n" + err).decode('utf-8').strip()) AssertionError: flake8 test failed: /data/build/rb-fb9347c-221682/viin_ai_agent/tests/test_sql_template.py:156:9: F841 local variable 'p_visible' is assigned to but never used /data/build/rb-fb9347c-221682/viin_ai_chat/models/mail_compose_message.py:19:1: F401 'odoo.api' imported but unused
05/02/2026 12:30:16 ERROR
Subbuild # 381332: odoo.addons.test_pylint.tests.test_pylint: FAIL: TestPyLint.test_pylint Traceback (most recent call last): File "/data/build/Viindoo-tvtmaaddons-17.0/test_pylint/tests/test_pylint.py", line 147, in test_pylint self.fail("pylint test failed:\n" + (b"\n" + out + b"\n" + err).decode('utf-8').strip()) AssertionError: pylint test failed: ************* Module viin_ai_agent.tests.test_parallel_tool_execution String parameter on "UserError" requires translation. Use _('boom: business invariant') (C8107) at rb-fb9347c-221682/viin_ai_agent/tests/test_parallel_tool_execution.py:358 ------------------------------------ Your code has been rated at 10.00/10
05/02/2026 12:30:16 ERROR
Subbuild # 381332: odoo.modules.loading: Module test_pylint: 2 failures, 0 errors of 7 tests
05/02/2026 12:30:16 ERROR
Subbuild # 381332: odoo.modules.loading: At least one test failed when loading the modules.
05/02/2026 12:30:16 ERROR
Subbuild # 381332: odoo.tests.result: 2 failed, 0 error(s) of 24 tests when loading database 'rb-fb9347c-221682-381332'
05/02/2026 14:40:28 ERROR
Subbuild # 381338: odoo.addons.viin_ai_agent.tests.test_parallel_tool_execution: ERROR: TestParallelToolExecution.test_serialization_failure_propagates Traceback (most recent call last): File "/data/build/rb-fb9347c-221682/viin_ai_agent/tests/test_parallel_tool_execution.py", line 348, in test_serialization_failure_propagates self.agent.run( File "/data/build/rb-fb9347c-221682/viin_ai_agent/models/agent.py", line 656, in run tool_results = self._execute_tool_calls_sequential( File "/data/build/rb-fb9347c-221682/viin_ai_agent/models/agent.py", line 455, in _execute_tool_calls_sequential return [ File "/data/build/rb-fb9347c-221682/viin_ai_agent/models/agent.py", line 456, in <listcomp> self._execute_one_tool_call(call, tool_by_name) File "/data/build/rb-fb9347c-221682/viin_ai_agent/tests/test_parallel_tool_execution.py", line 327, in raising_one_tool exc.pgcode = SERIALIZATION_FAILURE AttributeError: readonly attribute
05/02/2026 14:40:28 ERROR
Subbuild # 381338: odoo.addons.viin_ai_agent.tests.test_parallel_tool_execution: ERROR: TestParallelToolExecution.test_user_error_becomes_tool_error Traceback (most recent call last): File "/data/build/rb-fb9347c-221682/viin_ai_agent/tests/test_parallel_tool_execution.py", line 384, in test_user_error_becomes_tool_error result = self.agent.run( File "/data/build/rb-fb9347c-221682/viin_ai_agent/models/agent.py", line 656, in run tool_results = self._execute_tool_calls_sequential( File "/data/build/rb-fb9347c-221682/viin_ai_agent/models/agent.py", line 455, in _execute_tool_calls_sequential return [ File "/data/build/rb-fb9347c-221682/viin_ai_agent/models/agent.py", line 456, in <listcomp> self._execute_one_tool_call(call, tool_by_name) File "/data/build/rb-fb9347c-221682/viin_ai_agent/tests/test_parallel_tool_execution.py", line 358, in raising_one_tool raise UserError('boom: business invariant') odoo.exceptions.UserError: boom: business invariant
05/02/2026 14:40:28 ERROR
Subbuild # 381338: ERROR: operator does not exist: jsonb ~~ unknown
05/02/2026 14:40:28 ERROR
Subbuild # 381338: odoo.sql_db: bad query: WITH __acl_allowed AS (SELECT res_partner.id FROM "res_partner" WHERE (((("res_partner"."partner_share" IS NULL OR "res_partner"."partner_share" = FALSE) OR ("res_partner"."company_id" IN (SELECT "res_company"."id" FROM "res_company" WHERE ("res_company"."id" IN (1))))) OR "res_partner"."company_id" IS NULL) AND (("res_partner"."id" != '1286') OR "res_partner"."id" IS NULL))) SELECT id, name FROM res_partner WHERE id IN (SELECT id FROM __acl_allowed) AND name LIKE 'TPL-%%-PARTNER' LINE 1: ...ERE id IN (SELECT id FROM __acl_allowed) AND name LIKE 'TPL-... ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
05/02/2026 14:40:28 ERROR
Subbuild # 381338: odoo.addons.viin_ai_agent.tests.test_sql_template: ERROR: TestSqlTemplateAclAndExecute.test_ir_rule_subquery_acl Traceback (most recent call last): File "/data/build/rb-fb9347c-221682/viin_ai_agent/tests/test_sql_template.py", line 186, in test_ir_rule_subquery_acl rows = tpl.with_user(regular).execute({}) File "/data/build/rb-fb9347c-221682/viin_ai_agent/models/sql_template.py", line 264, in execute cr.execute(full_sql, params) File "/data/build/Viindoo-odoo-17.0/odoo/sql_db.py", line 342, in execute res = self._obj.execute(query, params) psycopg2.errors.UndefinedFunction: operator does not exist: jsonb ~~ unknown LINE 1: ...ERE id IN (SELECT id FROM __acl_allowed) AND name LIKE 'TPL-... ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
05/02/2026 14:40:28 ERROR
Subbuild # 381338: odoo.tests.result: 0 failed, 3 error(s) of 1750 tests when loading database 'rb-fb9347c-221682-381338'