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: