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
ca9bdc8e0c
fix(spec-client): обязательные риски отклонений в open_questions ТЗ под клиента
2026-06-02 00:24:02 +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
a27ab5b27e
fix(jobs): max_tokens 3500->8000 + лаконичность — должностные не обрезались
2026-06-01 23:53:56 +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
940cf3484f
fix(backend): init_db() на уровне модуля — миграции идут под gunicorn
...
Раньше init_db() звался только в __main__, gunicorn импортирует модуль —
ALTER-миграции (колонка channel) не применялись. Теперь идемпотентно при импорте.
2026-06-01 23:42:50 +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
d0010320b1
ops(deploy): py_compile guard перед рестартом + проверка живости сервиса + Telegram-алерт при сбое
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 17:15:13 +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
d8036dbdb3
docs: шаблон .env для активации СБП Сбера
2026-06-01 09:13:38 +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
b965d689d8
fix(backend): whitelist stage_prices + complexity в /api/project/crm — смета теперь персистится
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 08:16:31 +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
31f39bd36e
legal: add 8.6 reverse license — anonymized business model structure for market templates
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 14:03:10 +03:00
wasrusgen
ffa56b1d18
add: Mokap mockups, CLAUDE.md, project structure
...
- 15 HTML mockups (admin, assembler, manager, owner и др.)
- CLAUDE.md с политикой работы с файлами
- .claude/launch.json
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 13:39:30 +03:00
wasrusgen
2095c56307
legal: update phone to +7 993 079-45-42 (virtual work number)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 13:27:23 +03:00
wasrusgen
9e351b2b61
legal: full address from EGRIP — 198412, СПб, Ломоносов, ул. Ломоносова, 2, лит.А
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 13:24:01 +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
e61ae25647
legal: add Политика обработки ПДн (152-ФЗ) — third doc, referenced by oferta 4/10
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 16:56:06 +03:00
wasrusgen
e0ee138b2b
fix: tg webhook route /api/tg/webhook (nginx strips /consulting prefix)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 16:54:49 +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
15fbe26849
legal: fill last placeholders — address (СПб, Ломоносов) and phone +7 911 279-45-42, all fields complete
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 16:31:39 +03:00
wasrusgen
3014b89d0f
feat: Telegram bot @wasrusgen1_consulting_bot — webhook handler /start /status /help, tg_chat_id in projects
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 16:27:57 +03:00
wasrusgen
9b82fea46a
legal: fill ИНН/ОГРНИП/bank details — only [адрес] and [телефон] remain
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 16:20:07 +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
wasrusgen
ebff789229
presentation: strict brandbook logo, visible nav buttons, remove AI model mentions; cabinet: hide model name
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 16:09:10 +03:00
wasrusgen
0c71ce6699
feat: e-signing UI in cabinet — doc review, consent checkbox, code, sign before payment
2026-05-30 15:37:53 +03:00
wasrusgen
48043ac0b9
feat: e-signing endpoints — code request, confirm with journal, legal text, signed status
2026-05-30 15:36:35 +03:00
wasrusgen
4776b9a9e0
feat: billing type (paid/free) + AI pricing — scale assessment, market analysis, packages with arguments
2026-05-30 15:26:47 +03:00