From 9ff19f3cc3fab2b5267019d6522cbd4d7e26c373 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sun, 12 Jul 2026 12:56:22 +0300 Subject: [PATCH] =?UTF-8?q?@=20feat(bot):=20=D0=B2=D1=81=D0=B5=D0=BE=D0=B1?= =?UTF-8?q?=D1=8A=D0=B5=D0=BC=D0=BB=D1=8E=D1=89=D0=B0=D1=8F=20=D0=B8=D0=BD?= =?UTF-8?q?=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=86=D0=B8=D1=8F=20(36=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=82=D0=B5=D0=B9)=20+=2031=20=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=8D=D0=BA=D1=81=D0=BA=D1=83=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D1=8F,=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D0=B0=D1=8F=20=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D1=80=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=20=D0=BE=D0=BA?= =?UTF-8?q?=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Живой урок владельца 12.07.2026: «дубли чистятся в 2-х местах, а бот выдумал третье», «стыдно такого бота показывать», «видео показываем полное, а я спрашиваю про одно — надо резать», «надо не только кнопку показывать, а и что за ней». База знаний: 17 обзорных статей → 36 узких по темам. Портал обойдён целиком (5 агентов): все экраны, окна, подсказки «(?)», тексты ошибок, внутренние правила. Новое, чего бот не знал: дубли в ДВУХ местах (Поле и Предложения) + окно «источник уже есть»; правило 18:00; почему приходит меньше лимита; оплата по счёту и акты; списания; безопасность и 2FA; отчёты; массовые действия; регистрация. Экскурсии: 15 → 31, каждая на свою тему (3–7 шагов). Раннер GuidedTour научен шагу `open` — сам открывает окно/вкладку и подсвечивает то, что ВНУТРИ (окно дублей, форму подбора, диалог пополнения, панель тарифов, карточку сделки). 99 новых якорей data-tour расставлено по всему порталу (4 агента). Поиск: веса в tsvector (заголовок A / синонимы B / текст C) — иначе на «чистка дублей» первой всплывала статья «Списания» из-за мимоходного упоминания «поля». Тесты: Pest бот 39/39, Vitest 1222/1222. Новые сторожа: у каждой статьи есть экскурсия; экскурсия не короче 3 и не длиннее 7 шагов; каждая цель экскурсии реально существует в разметке; экскурсии про действия обязаны открывать окно. Живая проверка в браузере: экскурсия про дубли сама открыла окно объединения и перешла на второе место чистки. Co-Authored-By: Claude Fable 5 @ --- ..._12_100003_weight_knowledge_search_tsv.php | 45 + app/resources/help/api-i-webhook.md | 31 +- app/resources/help/balans-i-pauza.md | 49 +- app/resources/help/bezopasnost.md | 34 + app/resources/help/chto-takoe-proekt.md | 47 - app/resources/help/dashboard-i-otchety.md | 24 - app/resources/help/dashboard.md | 28 + app/resources/help/dobavit-vruchnuyu.md | 38 + app/resources/help/dubli-konkurentov.md | 53 + app/resources/help/eksport-sdelok.md | 25 + app/resources/help/import-dannyh.md | 40 +- app/resources/help/izuchenie-istochnikov.md | 37 + app/resources/help/kak-popolnit-balans.md | 43 +- app/resources/help/kanban.md | 35 + app/resources/help/konkurentnoe-pole.md | 83 +- app/resources/help/limit-zayavok.md | 35 + app/resources/help/massovye-deystviya.md | 34 + app/resources/help/metki-nomerov.md | 27 + app/resources/help/mobilnaya-versiya.md | 20 +- app/resources/help/nachalo-raboty.md | 46 +- app/resources/help/nastroiki-i-bezopasnost.md | 32 - app/resources/help/oplata-po-schetu.md | 32 + app/resources/help/otchety.md | 28 + app/resources/help/pauza-proekta.md | 33 + app/resources/help/podderzhka.md | 31 +- app/resources/help/pravilo-18-00.md | 33 + app/resources/help/predlozheniya.md | 39 + app/resources/help/proekt-iz-istochnika.md | 37 + app/resources/help/profil-i-rekvizity.md | 24 + app/resources/help/registraciya-i-vhod.md | 28 + app/resources/help/sbor-konkurentov.md | 32 + app/resources/help/sdelki-i-kanban.md | 33 - app/resources/help/sdelki.md | 35 + app/resources/help/smena-istochnika.md | 39 +- app/resources/help/sozdat-proekt.md | 43 + app/resources/help/spisaniya.md | 34 + app/resources/help/statusy-sdelok.md | 30 + app/resources/help/tarify-i-spisaniya.md | 30 - app/resources/help/tarify.md | 29 + app/resources/help/uvedomleniya.md | 40 +- .../billing/AutopodborServicesPanel.vue | 2 +- .../billing/BalanceCapacityIndicator.vue | 7 +- .../billing/BalanceFrozenBanner.vue | 1 + .../js/components/billing/InvoicesTable.vue | 4 +- .../js/components/billing/TierPricesPanel.vue | 10 +- .../js/components/billing/TopupDialog.vue | 14 +- .../components/dashboard/DashboardBalance.vue | 2 +- .../dashboard/DashboardPageHead.vue | 9 +- .../js/components/deals/DealDetailBody.vue | 3 +- .../js/components/deals/DealDetailHero.vue | 1 + .../components/deals/DealDetailTimeline.vue | 2 +- .../js/components/deals/DealsBulkBar.vue | 2 + .../js/components/deals/DealsTable.vue | 3 +- .../import/UnknownStatusesDialog.vue | 2 +- .../js/components/kanban/KanbanCard.vue | 1 + .../js/components/kanban/KanbanColumn.vue | 2 +- .../js/components/layout/GuidedTour.vue | 17 +- .../js/components/projects/BulkActionsBar.vue | 6 +- .../js/components/projects/ProjectCard.vue | 2 +- .../projects/ProjectDetailsDrawer.vue | 5 +- .../projects/ProjectLimitOverloadDialog.vue | 19 +- .../js/components/reports/ReportJobsList.vue | 2 +- .../components/reports/ReportRequestForm.vue | 9 +- .../settings/security/ChangePasswordCard.vue | 5 +- .../settings/security/RecoveryCodesCard.vue | 2 +- .../settings/security/SessionsTable.vue | 2 +- .../settings/security/TwoFactorCard.vue | 3 +- app/resources/js/tours/catalog.ts | 1041 +++++++++++++---- app/resources/js/views/DashboardView.vue | 2 +- app/resources/js/views/HelpView.vue | 4 +- app/resources/js/views/ImportView.vue | 7 +- app/resources/js/views/SettingsView.vue | 4 +- .../screens/FieldCompetitorScreen.vue | 28 +- .../screens/FieldProposalsScreen.vue | 14 +- .../screens/FieldWorkspaceScreen.vue | 18 +- app/resources/js/views/billing/ChargesTab.vue | 10 +- .../js/views/projects/NewProjectDialog.vue | 8 +- app/resources/js/views/settings/ApiTab.vue | 4 + .../js/views/settings/NotificationsTab.vue | 1 + .../js/views/settings/ProfileTab.vue | 2 +- .../js/views/settings/RequisitesTab.vue | 5 +- .../Bot/HelpRebuildKnowledgeCommandTest.php | 9 +- app/tests/Feature/Bot/KnowledgeSearchTest.php | 43 + app/tests/Frontend/GuidedTour.spec.ts | 68 ++ app/tests/Frontend/TourCatalog.spec.ts | 111 +- 85 files changed, 2228 insertions(+), 724 deletions(-) create mode 100644 app/database/migrations/2026_07_12_100003_weight_knowledge_search_tsv.php create mode 100644 app/resources/help/bezopasnost.md delete mode 100644 app/resources/help/chto-takoe-proekt.md delete mode 100644 app/resources/help/dashboard-i-otchety.md create mode 100644 app/resources/help/dashboard.md create mode 100644 app/resources/help/dobavit-vruchnuyu.md create mode 100644 app/resources/help/dubli-konkurentov.md create mode 100644 app/resources/help/eksport-sdelok.md create mode 100644 app/resources/help/izuchenie-istochnikov.md create mode 100644 app/resources/help/kanban.md create mode 100644 app/resources/help/limit-zayavok.md create mode 100644 app/resources/help/massovye-deystviya.md create mode 100644 app/resources/help/metki-nomerov.md delete mode 100644 app/resources/help/nastroiki-i-bezopasnost.md create mode 100644 app/resources/help/oplata-po-schetu.md create mode 100644 app/resources/help/otchety.md create mode 100644 app/resources/help/pauza-proekta.md create mode 100644 app/resources/help/pravilo-18-00.md create mode 100644 app/resources/help/predlozheniya.md create mode 100644 app/resources/help/proekt-iz-istochnika.md create mode 100644 app/resources/help/profil-i-rekvizity.md create mode 100644 app/resources/help/registraciya-i-vhod.md create mode 100644 app/resources/help/sbor-konkurentov.md delete mode 100644 app/resources/help/sdelki-i-kanban.md create mode 100644 app/resources/help/sdelki.md create mode 100644 app/resources/help/sozdat-proekt.md create mode 100644 app/resources/help/spisaniya.md create mode 100644 app/resources/help/statusy-sdelok.md delete mode 100644 app/resources/help/tarify-i-spisaniya.md create mode 100644 app/resources/help/tarify.md diff --git a/app/database/migrations/2026_07_12_100003_weight_knowledge_search_tsv.php b/app/database/migrations/2026_07_12_100003_weight_knowledge_search_tsv.php new file mode 100644 index 00000000..a69739d7 --- /dev/null +++ b/app/database/migrations/2026_07_12_100003_weight_knowledge_search_tsv.php @@ -0,0 +1,45 @@ + {