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

State: Failed finished in 15m

PR State: merged

PR Author: David Tran

PR Author Email:

PR: #23

Committer: David Tran

Committer Email: davidtran.hp@gmail.com

Commit: 26f18368a36d1903dc98ba5ce15b22c802a236b2

Description:

                                            [FIX] viin_ai_brain: chatgpt_dialog tour replaces dead vault selector and slash-trigger

The chatgpt_dialog tour was failing on three pre-existing issues that
together blocked the entire run:

  1. ``.o_brain_vault_item`` is a dead selector — VaultSidebar now
     renders ``<select class="o_brain_sidebar_vault_select">`` and
     auto-selects the first vault when only one exists. The tour now
     waits for ``.o_brain_sidebar`` instead and lets the auto-select
     happen.
  2. ``run: "text /ai_write"`` only works on input/textarea — the
     editor body is a contenteditable div, so the legacy helper threw
     ``$element.focusIn is not a function``. Synthesise the keystroke
     by appending a fresh text node, placing the caret at its end, and
     dispatching the ``input`` event the editor listens on.
  3. The post-tour assertion silently no-op'd when ``demo_page_welcome``
     was absent. Reuse ``TourCaseBase`` (which now backfills the
     Welcome page) so the assertion always runs, and make the test
     class actually inherit it.

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 381342 Check the quality with Pylint: from test_lint to test_pylint 14m Failed Log
Build 381343 At install tests: from account to website_twitter 129m Succeed Log
Build 381344 Post install tests: step install all modules 64m Succeed Log
Build 381345 Post install tests: from account to payment_alipay 164m Succeed Log
Build 381346 Post install tests: from payment_aps to test_viin_web_cohort 183m Succeed Log
Build 381347 Post install tests: from test_website to to_website_apps_store 79m Succeed Log
Build 381348 Post install tests: from to_website_apps_store_loc to viin_estimate_sale 89m Failed Log
Build 381349 Post install tests: from viin_event_checkin_website to viin_project_gantt 39m Succeed Log
Build 381350 Post install tests: from viin_project_progress to website_twitter 48m Succeed Log
Build 381351 Test install all modules without demo data: from account to website_twitter 49m Succeed Log
Create Date Level Message
05/02/2026 14:50:26 INFO
Updated repository Viindoo-odoo
05/02/2026 14:50:26 INFO
Updated repository Viindoo-tvtmaaddons
05/02/2026 14:50:26 INFO
Updated repository Viindoo-erponline-enterprise
05/02/2026 14:50:26 INFO
Updated repository Viindoo-branding
05/02/2026 14:50:26 INFO
Cloned repository Viindoo-ai
05/02/2026 15:05:38 ERROR
Subbuild # 381342: 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-26f1836-221683/viin_ai_agent/tests/test_sql_template.py:156:9: F841 local variable 'p_visible' is assigned to but never used /data/build/rb-26f1836-221683/viin_ai_chat/models/mail_compose_message.py:19:1: F401 'odoo.api' imported but unused
05/02/2026 15:05:38 ERROR
Subbuild # 381342: 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-26f1836-221683/viin_ai_agent/tests/test_parallel_tool_execution.py:366 ------------------------------------ Your code has been rated at 10.00/10
05/02/2026 15:05:38 ERROR
Subbuild # 381342: odoo.modules.loading: Module test_pylint: 2 failures, 0 errors of 7 tests
05/02/2026 15:05:38 ERROR
Subbuild # 381342: odoo.modules.loading: At least one test failed when loading the modules.
05/02/2026 15:05:38 ERROR
Subbuild # 381342: odoo.tests.result: 2 failed, 0 error(s) of 24 tests when loading database 'rb-26f1836-221683-381342'
05/02/2026 17:25:19 ERROR
Subbuild # 381348: ERROR: operator does not exist: jsonb ~~ unknown
05/02/2026 17:25:19 ERROR
Subbuild # 381348: 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 17:25:19 ERROR
Subbuild # 381348: 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-26f1836-221683/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-26f1836-221683/viin_ai_agent/models/sql_template.py", line 269, 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 17:25:19 ERROR
Subbuild # 381348: odoo.tests.result: 0 failed, 1 error(s) of 1750 tests when loading database 'rb-26f1836-221683-381348'