wasrusgen
6ad0441ddd
landing: Model A offer rewrite (SMB) + scroll animations
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 19:47:21 +03:00
wasrusgen
9edac11850
ux(cabinet): кнопка «Предложить идею» в шапке (на каждой вкладке), убран дубль из «Консультант»
2026-06-03 19:36:10 +03:00
wasrusgen
4dccf23849
feat(miniapp): кабинет как полноценный Telegram Mini App (тема, BackButton, защита закрытия, хаптик) + бот: постоянная кнопка-меню Кабинет + привязка tg клиента
2026-06-03 19:21:29 +03:00
wasrusgen
4d492bf1d4
brand: последний глиф (бургер ☰) -> Lucide menu. Ноль эмодзи в продукте
2026-06-03 19:00:41 +03:00
wasrusgen
6da6de6b07
brand(landing): иконки фич/проблем -> Lucide по брендбуку (убраны эмодзи)
2026-06-03 18:49:53 +03:00
wasrusgen
8ca8076e5b
feat: лендинг как main.html + новый бот @wasrusgen1_cons_bot в ссылках
2026-06-03 18:41:21 +03:00
wasrusgen
0a335d0075
brand: убраны ВСЕ эмодзи -> Lucide-иконки по брендбуку (статус-бейджи, чипы, кнопки)
2026-06-03 18:39:08 +03:00
wasrusgen
7bfedb3b8d
brand: логотип по брендбуку (пульс-знак + @wasrusgen1 КОНСАЛТИНГ) вместо @
2026-06-03 18:10:25 +03:00
wasrusgen
f87e6ebe81
feat(funnel): лендинг -> кабинет (фикс ссылок /consulting/, убраны SaaS-демо) + тег source=Лендинг
2026-06-03 17:57:41 +03:00
wasrusgen
25c785f520
brand(crm): дашборд-заголовки и поиск без эмодзи
2026-06-03 16:50:40 +03:00
wasrusgen
d704bd84ef
brand(crm): пиктограммы по брендбуку (Lucide stroke 1.75) — навигация, вкладки, заголовки
2026-06-03 16:48:56 +03:00
wasrusgen
c003faf931
brand(cabinet): пиктограммы по брендбуку (Lucide stroke 1.75) вместо эмодзи
2026-06-03 16:40:04 +03:00
wasrusgen
cf98ff1a7e
ux(cabinet): панель «Спросить Елену» раскрыта по умолчанию на всех этапах — Елена всегда на виду
2026-06-03 13:50:03 +03:00
wasrusgen
6e0e85db86
ux(cabinet): объединить Этап 1+2 в «Разговор с Еленой» — клиент не теряет контекст (4 шага вместо 5)
2026-06-03 13:43:17 +03:00
wasrusgen
492b1adae4
fix(cabinet): Этап 2 — рабочий чат с Еленой (продолжение беседы), вместо заглушки
2026-06-03 13:35:36 +03:00
wasrusgen
5ded2c7312
feat: предложения клиента — фиксация и триаж
...
Отдельный backlog «Предложения» (не отклонения): Елена ловит идею в диалоге
(record_suggestion) + кнопка «Мои идеи» в кабинете. Статусы new/discussion/
accepted/rejected + решение. CRM-вкладка «Предложения» с триажем, клиент видит статус.
2026-06-03 13:18:39 +03:00
wasrusgen
4be49a25fb
feat(chat): авто-обновление канала Консультант (polling 15с, GET /api/operator-chat)
2026-06-03 12:57:47 +03:00
wasrusgen
865b87e664
feat: живой канал «Консультант» (клиент ↔ руководитель проекта)
...
Отдельный человеческий канал рядом с Еленой (AI):
- backend: /api/operator-chat (channel=operator), уведомления в Telegram обеим сторонам
- кабинет: раздел «💬 Консультант» (чат с Русланом, мик)
- CRM: вкладка «Чат с клиентом» + бейдж непрочитанных + мик
2026-06-03 12:36:32 +03:00
wasrusgen
9c4f68cf55
feat(ux): микрофон везде + документы у оператора + полировка интерфейса
...
🎤 голос: «Спросить Елену» и профиль (кабинет), заметка и задачи (CRM) — переиспользуемая кнопка-мик
📎 документы: вкладка «Документы» в CRM (просмотр+загрузка оператором), открытие/скачивание файлов,
прикрепление файла к вопросу Елене (кабинет), backend /api/doc
🖥 интерфейс: модалка «Новый клиент» (имя/ниша/контакт/источник) вместо prompt(),
inline-правка цены этапа, тосты вместо alert()
2026-06-03 12:17:48 +03:00
wasrusgen
7c79cd305a
security(crm): закрыть операторские роуты + авто-токен на все вызовы CRM
...
- gate /api/project/crm|tasks|approve|delete под is_operator() (только crm.html их зовёт)
- crm.html: обёртка window.fetch — X-Operator-Token на все /api/ вызовы оператора
2026-06-02 07:05:04 +03:00
wasrusgen
a3fc1b6d9d
feat: операторская авторизация (Telegram initData + пароль) + MiniApp + каркас Sber PAY
...
- backend: /api/operator/auth (initData HMAC | пароль), gate /api/projects,
бот /myid + кнопка «Открыть CRM» для оператора (ADMIN_TG_IDS)
- crm.html: Telegram SDK + гейт (вход через TG на телефоне, пароль на десктопе),
X-Operator-Token на /api/projects
- каркас Sber PAY: mTLS из .p12, OAuth-токен, /api/payment/sber-invoice,
/api/payment/sber-status — активируется по .env (SBER_PAY_ENABLED + пароль + secret)
2026-06-02 07:01:13 +03:00
wasrusgen
835b6a05df
feat(crm): индикатор баланса AI-движка
...
/api/ai-status — пинг в 1 токен, ловит low_balance. В CRM: точка в шапке
(зелёная/красная) + плашка «AI-движок недоступен — пополните баланс».
Без названия вендора (публичный репо + правило конфиденциальности).
2026-06-02 06:28:15 +03:00
wasrusgen
5e67ddb286
feat: орг.слой в CRM + Организация в смете + Phase 3 (ТЗ под клиента) + выгрузка
...
1. Операторская CRM: вкладка «Организация» (оргструктура+должностные) с пересборкой
2. Смета: «Организация» — оплачиваемый этап (org:10000) во всех массивах стадий
3. Phase 3: /api/build-spec-client — ТЗ под вариант клиента (учёт отклонений+орг),
переключатель «Эталон Елены / Вариант клиента» в ТЗ-вкладке CRM
4. Должностные+оргструктура в выгрузку ТЗ (PDF в CRM, MD+JSON в кабинете)
2026-06-02 00:14:52 +03:00
wasrusgen
024c3fb500
fix(cabinet): чат интервью открывается сразу внизу, без «пролёта» сверху
...
Причина: addMsg скроллил .chat (без своего скролла), реальный контейнер .scroll
оставался вверху, потом уезжал вниз скролл-анкерингом. Теперь скроллим .scroll,
прыжок вниз после показа sv1 (rAF), overflow-anchor:none против дрейфа.
2026-06-02 00:09:05 +03:00
wasrusgen
149f02da37
feat: организационный слой — оргструктура + должностные инструкции (между IDEF0 и ТЗ)
...
- backend: генераторы build-orgchart (из IDEF0 mechanisms) и build-jobs
(должностные с учётом отклонений клиента), артефакты orgchart/jobs в state
- кабинет: вкладка «🏢 Организация» на этапе 4 — оргструктура (роли, штат,
подчинённость, узкие места) + должностные (ответственность, KPI, полномочия)
2026-06-01 23:48:34 +03:00
wasrusgen
9558c8b423
feat(crm): вкладка «Отклонения» — эталон Елены против выбора клиента
...
Оператор при внедрении видит расхождения: решение клиента (внедряем) +
рекомендация Елены (флажок) + причина клиента. Бейдж со счётчиком.
2026-06-01 23:38:38 +03:00
wasrusgen
cf5e4f050a
feat(cabinet): «Спросить Елену» на этапах 3-5 + память + фиксация отклонений
...
- backend: канал messages (interview/qa), /api/ask с полным контекстом
(интервью + документы + артефакт этапа + Q&A), tool record_deviation
- хранилище отклонений (артефакт deviations: эталон Елены + выбор клиента + причина)
- кабинет: свёрнутый док «Спросить Елену» на этапах 3-5, контекст этапа
2026-06-01 23:36:28 +03:00
wasrusgen
30160a0999
feat(воронка): drag-and-drop смены этапа, суммы по колонкам, степпер+бейдж на картах, моб.скролл
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 22:59:40 +03:00
wasrusgen
0a9d924d58
feat(CRM): мобильный адаптив — гамбургер-меню, drawer-сайдбар, KPI/гриды в 1-2 колонки
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 21:52:20 +03:00
wasrusgen
11486ce8a8
feat(кабинет): мобильный адаптив — гамбургер-меню + выезжающий сайдбар (Telegram на телефоне)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 21:23:06 +03:00
wasrusgen
509ce225b9
fix(смета): «Получено» и разблокировка ТЗ считаются по всему реестру платежей, не только по этап-привязанным (устранён рассинхрон чисел)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 17:22:07 +03:00
wasrusgen
c7c91d9dbe
feat(дашборд): поиск по клиентам + сортировка (имя/сумма/этап/статус)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 17:12:41 +03:00
wasrusgen
c56d7ebf00
feat(СБП): динамический QR Сбера — кнопка на этапе, демо-режим, webhook + ручное подтверждение
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 09:12:11 +03:00
wasrusgen
2fc91433da
feat(платежи): автозадачи-напоминания о сроках оплаты этапов
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 09:02:00 +03:00
wasrusgen
066a628695
feat(платежи): нераспределённый остаток, сроки этапов (график), нал/безнал, клиент видит даты
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 08:54:07 +03:00
wasrusgen
a621f301ce
ui: правка существующих платежей в реестре (дата/сумма/назначение) + sync со сметой
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 08:14:24 +03:00
wasrusgen
9b0d0af277
ui: полное редактирование сметы — правка цены этапа, отмена оплаты, синхронизация с реестром
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 08:00:44 +03:00
wasrusgen
24bd0e29d5
ui: сворачиваемые секции (динамика свёрнута) + фильтры клиентов и задач
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 07:55:10 +03:00
wasrusgen
984ead3f2f
ui: вкладка Сделка — плотный обзор клиента (прогресс+финансы+контакт+заметка)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 07:48:35 +03:00
wasrusgen
6828ecfeb3
ui: компактный дашборд — таблицы вместо карточек, степпер в строку
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 07:38:32 +03:00
wasrusgen
5b146fb7e5
feat: смета проекта — гибридная модель оплаты (вход 0₽ + модули)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 07:27:31 +03:00
wasrusgen
1a1dd83cbb
Revert "feat: 3 color themes (green/gray/dark) + switcher in header"
...
This reverts commit 7be9b4e14b .
2026-05-31 19:45:38 +03:00
wasrusgen
7be9b4e14b
feat: 3 color themes (green/gray/dark) + switcher in header
2026-05-31 19:36:57 +03:00
wasrusgen
d6923e5ad1
fix: payment stages from client progress (5 analysis stages), no generator; rule: 100% paid = ТЗ unlocked; backend adds stage_payments
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 01:22:46 +03:00
wasrusgen
78b3e22eb6
feat: payment plan (schedule) bound to analysis milestones — flexible per-client schemes (100%/50-50/staged), mark stage paid creates registry payment; backend whitelists payment_schedule
2026-05-31 01:14:24 +03:00
wasrusgen
9a349fe21e
crm dashboard: client rows show billing type + 5-stage stepper + current stage; backend adds has_selection
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 00:01:07 +03:00
wasrusgen
37c7486cc0
crm: screen mockup table full-width + horizontal scroll (nowrap cells, no 640px cap)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 23:56:00 +03:00
wasrusgen
1d9d4ef9c8
cabinet: Telegram WebApp init (expand + start_param token), add Политика ПДн to signing docs
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 16:59:48 +03:00
wasrusgen
435f9b9a4d
crm: functional client card — top main-tabs (Сделка/Цена/Платежи/Задачи/Анализ) with badges, pricing for paid+free, Telegram invite button
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 16:49:26 +03:00
wasrusgen
7b5162937d
feat: payment gating — view always, print/download/export ТЗ unlock after debt closed (free clients always unlocked)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 16:13:19 +03:00