feat(assistant): v2 — query-language detection, analytics, chips, auto-index

Addresses real gaps found in testing (a Macedonian question on an English
page returned nothing):

- Detect the language of the QUESTION (Cyrillic -> MK; Slovene markers -> SI;
  else the page language) and load that language's index + curated answers.
  Fixes cross-language questions.
- Expand curated multilingual intents (now incl. enrolment/eVŠ, deadlines,
  health, "what is MSOS", etc.) with stem keywords for better paraphrase
  matching. MK/SI answers machine-drafted — proofread before launch.
- Suggested-question chips on open (localized) to guide users.
- Privacy-safe analytics: fire a GA4 'assistant_query' event ONLY after the
  visitor accepts cookies (q text, result type, question vs page language) so
  the team can see real FAQs and unanswered questions.
- Move the widget to bottom-left on pages with the floating "Become a member"
  CTA so they never overlap. Design polish (chips, typing dots, launcher pulse).
- CI: rebuild the search index on every deploy (setup-python + build script)
  so the assistant stays in sync with content automatically. Build script is
  now path-portable (no hardcoded path).

Verified in a headless browser: MK-on-EN now answers correctly, chips work,
analytics event fires only with consent, become-a-member offset applies,
zero console errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
popovskikandClaude Opus 4.8 committed 2026-08-04 01:48:39 +02:00
1 parent f7f297bd65
commit 661943bb34
4 files changed
+263 -185

No files matched your search

+12
View File
@@ -13,6 +13,18 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
# Rebuild the assistant search index from the CURRENT content so it is
# always in sync — no manual step needed when pages change.
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Rebuild assistant search index
run: |
python -m pip install --quiet beautifulsoup4
python tools/build_search_index.py
- name: Deploy to Server via rsync
run: |
mkdir -p ~/.ssh