Name: [ADD] AI Cognitive Wave-1: Memory L0-L3 + Skill runtime + Pulse cost gate + KG temporal (supersedes #53)

State: Failed finished in 145m

PR State: merged

PR Author: David Tran

PR Author Email:

PR: #54

Committer: David Tran

Committer Email: davidtran.hp@gmail.com

Commit: c17ff36cb5ac043a37ab178b12afb2d39cc922b8

Description:

                                            [FIX] viin_ai: clear Runbot errors and warnings (PR #54)

Resolve every Runbot build error and warning on the Cognitive Wave-1
branch without masking any behavior. Each fix is root-cause proven and
verified by a real Odoo 17 test run on a fresh DB (--skip-auto-install).

- viin_ai_chat: fix stale mock signature in test_user_error_passed_through.
  _user_err now matches _collect_allowed_tools(self, applied_skills=None),
  which viin_ai_skill's _resolve_run_skills override calls positionally.
  This was the only build-breaking failure.

- viin_ai_base: guard the _record_error_usage separate-cursor write so a
  provider_id/model_id not yet visible to that cursor is set NULL instead
  of raising a ForeignKeyViolation. Removes the odoo.sql_db ERROR noise
  while preserving the trace-durability invariant (the error usage.log is
  still committed independently). Add a regression test that verifies via
  a fresh cursor.

- viin_ai_approval: remove the dead advisory tool ACL-gap warning in
  _advisory_agent_has_tools (unreachable - every caller runs sudo, so it
  could never detect a real gap); this clears the false-positive log.
  Assert the H8 executable-tools refusal warning via assertLogs instead of
  letting it leak. Add mail_notify_force_send=False to
  TestAdvisoryInfra.setUpClass to stop the mail.catchall send ERROR.

- viin_ai_memory: align the promotion.log / observation owner ir.rule perms
  with ir.model.access.csv (promotion.log read-only, observation
  append-only), clearing the to_base record-rule validator warning. Assert
  the BYOK no-provider skip warning via assertLogs. Add ACL regression
  tests driven via with_user.

- viin_ai_agent: assert the sudo-escalation refusal security warning via
  assertLogs so the expected signal is captured, not leaked to the log.
                                            

Branch: 17.0

Instance ID: 0

Age:

Up-time:

Subbuilds Name State Detail
Build 386021 Check the quality with Pylint: from test_lint to test_pylint 14m Succeed Log
Build 386022 At install tests: from account to website_twitter 134m Succeed Log
Build 386023 Post install tests: step install all modules 79m Succeed Log
Build 386024 Post install tests: from account to payment_authorize 114m Succeed Log
Build 386025 Post install tests: from payment_bidv_viin to theme_default 129m Succeed Log
Build 386026 Post install tests: from to_account_accountant to transifex 59m Succeed Log
Build 386027 Post install tests: from uom to viin_estimate_approval 64m Failed Log
Build 386028 Post install tests: from viin_estimate_budget to viin_project 28m Succeed Log
Build 386029 Post install tests: from viin_project_access_timesheet to website_twitter 48m Succeed Log
Build 386030 Test install all modules without demo data: from account to website_twitter 58m Succeed Log
Create Date Level Message
06/16/2026 20:25:39 INFO
Updated repository Viindoo-odoo
06/16/2026 20:25:39 INFO
Updated repository Viindoo-tvtmaaddons
06/16/2026 20:25:39 INFO
Updated repository Viindoo-erponline-enterprise
06/16/2026 20:25:39 INFO
Updated repository Viindoo-branding
06/16/2026 20:25:39 INFO
Cloned repository Viindoo-ai
06/16/2026 22:50:49 ERROR
Subbuild # 386027: odoo.addons.viin_ai_memory.tests.test_memory_recall: FAIL: TestMemoryRecallBehavior.test_summarize_cron_makes_zero_external_call_when_disallowed Traceback (most recent call last): File "/data/build/rb-c17ff36-222223/viin_ai_memory/tests/test_memory_recall.py", line 322, in test_summarize_cron_makes_zero_external_call_when_disallowed with self.assertLogs( File "/usr/lib/python3.10/unittest/_log.py", line 84, in __exit__ self._raiseFailure( AssertionError: no logs of level WARNING or higher triggered on odoo.addons.viin_ai_memory.models.viin_ai_memory
06/16/2026 22:50:49 ERROR
Subbuild # 386027: odoo.addons.mail.models.mail_mail: failed sending mail (id: 348) 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/16/2026 22:50:49 ERROR
Subbuild # 386027: odoo.tests.result: 1 failed, 0 error(s) of 2096 tests when loading database 'rb-c17ff36-222223-386027'