Дмитрий
2affe6db01
docs(G7-A): спека клиентской «Помощь» (форма+email+JivoSite)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 14:18:16 +03:00
Дмитрий
d33050f8f6
fix(schema): закрыть остаток дрейфа (project_routing_snapshots) + guard CREATE POLICY 05_27 (v8.47)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 13:37:48 +03:00
Дмитрий
4139896e0c
fix(migration): guard CREATE POLICY в tenant_requisites (DROP IF EXISTS) — чинит migrate:fresh
...
G1-миграция guard'ила CREATE TABLE, но не CREATE POLICY (в PG нет IF NOT EXISTS) → коллизия с политикой из schema.sql на migrate:fresh. Тот же дрейф-класс. Теперь migrate:fresh зелёный целиком.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 12:58:37 +03:00
Дмитрий
1cb00e149c
fix(schema): синк дрейфа lead-region в schema.sql + guard миграции 05_31 (v8.46)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 12:55:04 +03:00
Дмитрий
ef28196082
fix(stan): Larastan-долг G1/G6 = 0 ошибок (реальные баги — починены, не спрятаны)
...
Продуктовый код (фиксы, не baseline): TenantRequisites+SupplierLead — явные @property (ide-helper:models пропускал модели); DealsController V1 — лишний ?-> на non-null received_at; ScrubPii — guard instanceof Monolog. Тест-код: ImitationTestCase @param int; findByInn return-type. Baseline перегенерён — в нём ТОЛЬКО ложноположительные (Pest TestCall + защитный ?-> на nullable first() в debug-строках ScenarioBC), 0 продуктовых подавлений (проверено диффом). composer stan: 0.
NB: столбцы lead-region (dadata_qc/phone_operator/region_source/resolved_subject_code) есть в БД, но отсутствуют в db/schema.sql — отдельный дрейф схемы.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 12:40:00 +03:00
Дмитрий
91e00b606f
fix(G3): счётчик «7 событий» в уведомлениях + убрать «напоминаниях» из подсказки таймзоны
...
Хвосты, пойманные живым Playwright: захардкоженное «8 событий» после удаления reminder-события + stale-подсказка профиля.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 12:06:17 +03:00
Дмитрий
ca04b45a55
chore(G3): почистить phpstan-baseline от напоминаний
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:55:57 +03:00
Дмитрий
3c214a692b
feat(G3): drop таблицы reminders — миграция + schema.sql + CHANGELOG
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:48:26 +03:00
Дмитрий
8de94c46aa
fix(G3): убрать создание reminders из HistoricalImportService (шов CSV-импорта)
...
CSV-колонку «Напоминание» парсер по-прежнему читает (внешний формат), но строки-напоминания больше не создаются — модель Reminder удалена.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:43:00 +03:00
Дмитрий
8e8cce885d
feat(G3): убрать reminder из дефолтов notification_preferences (factory+seeder)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:38:58 +03:00
Дмитрий
5df354c39c
feat(G3): удалить контроллер/роуты/модель/команду/письмо напоминаний
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:37:57 +03:00
Дмитрий
c0f7d9ac73
feat(G3): убрать ветку reminder из NotificationService
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:36:27 +03:00
Дмитрий
cb73457ec7
feat(G3): убрать next_reminder_at-подзапрос из DealController
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:34:36 +03:00
Дмитрий
25ac65e5e5
feat(G3): убрать преференцию «Напоминание» + хвосты фронт-тестов
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:29:46 +03:00
Дмитрий
0a3f90839c
feat(G3): убрать next_reminder_at из фронт-слоя сделок
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:29:35 +03:00
Дмитрий
abe6d51b0e
feat(G3): убрать экран «Напоминания» и раздел в карточке сделки
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:18:49 +03:00
Дмитрий
d6534375e3
docs(G3): план реализации удаления фичи «Напоминания»
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 11:08:29 +03:00
Дмитрий
c9c5b44358
docs(G3): спека полного удаления фичи «Напоминания» (вкл. таблицу)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-19 10:56:18 +03:00
Дмитрий
ca8bc0f415
docs: хэндофф сессии 19.06 — G1-хвосты+G2-B+G6 DONE, промпт следующей сессии
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 10:27:32 +03:00
Дмитрий
bb2e0daad8
feat(G6): контроллер + роут GET /api/v1/deals (публичный read-API сделок)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 10:13:08 +03:00
Дмитрий
206e7a328d
feat(G6): middleware ApiKeyAuth — аутентификация по API-ключу
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 10:12:03 +03:00
Дмитрий
1fd24745d1
test(G6): приёмка публичного API сделок (RED)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 10:11:24 +03:00
Дмитрий
4eb9ae3bb9
docs: G6 план реализации — публичный read-API сделок (middleware+контроллер+роут+тест)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 10:10:16 +03:00
Дмитрий
f6a985c905
docs: G6 дизайн — публичный read-API сделок по API-ключу
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 10:07:11 +03:00
Дмитрий
6bfe654efa
test(G2-B): UserFactory зеркалит новый дефолт new_lead.email true
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:53:36 +03:00
Дмитрий
8a3569df9e
feat(G2-B): миграция — дефолт new_lead.email true + дотяжка существующих
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:53:07 +03:00
Дмитрий
e0312734c0
chore(G2-B): канон схемы — дефолт new_lead.email true + CHANGELOG v8.44 (+sync v8.43 в header)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:52:31 +03:00
Дмитрий
e6c921935c
test(G2-B): дефолт new_lead.email=true (RED) + backfill SQL
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:51:04 +03:00
Дмитрий
3cef5ac88c
docs: G2-B план реализации — дайджест по умолчанию (миграция + дотяжка + тест)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:50:08 +03:00
Дмитрий
16bdd3a91e
docs: G2-B дизайн — дайджест новых сделок по умолчанию (флип дефолта + дотяжка)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:47:52 +03:00
Дмитрий
9317a45e7e
fix(G1-tail): письмо с кодом в очередь + не валить register/resend при сбое доставки
...
Owner-decision: register не должен падать 500 при сбое SMTP — код уже создан,
клиент может «отправить повторно». Mail::queue + try/catch + Log (без email — ПДн).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:29:15 +03:00
Дмитрий
df8f568888
fix(G1-tail): убран стейл-Шаг 6 (webhook_log удалён в v8.35) из OperationalFullFlowTest
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:18:30 +03:00
Дмитрий
a8f833e5fe
fix(G1-tail): NBSP перед ₽ через escape \u00A0 в DashboardPageHead (lint:vue green)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:18:30 +03:00
Дмитрий
dec1c95092
feat(G1/SP3c): блок платёжных реквизитов + статус-чип + валидация (поля по типу лица)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:58:47 +03:00
Дмитрий
c4bd6db523
docs: G1/SP3c план реализации — полные платёжные реквизиты (фронт)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:56:38 +03:00
Дмитрий
240146813a
docs: G1/SP3c дизайн — полные платёжные реквизиты (фронт)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:54:57 +03:00
Дмитрий
6dd9f041fa
feat(G1/SP3b): UX гейта — alert requisites_required + переход к реквизитам
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:24:27 +03:00
Дмитрий
4fddba60b0
feat(G1/SP3b): вкладка Реквизиты в Настройках + deep-link ?tab=requisites
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:24:26 +03:00
Дмитрий
5347976566
feat(G1/SP3b): вкладка RequisitesTab — лёгкая форма реквизитов
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:24:26 +03:00
Дмитрий
c42e99747e
feat(G1/SP3b): api-обёртка реквизитов (get/update/lookup-inn)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:24:26 +03:00
Дмитрий
5011fbd41c
docs: G1/SP3b план реализации — форма реквизитов (фронт) + UX гейта
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:20:12 +03:00
Дмитрий
2447cb706c
docs: G1/SP3b дизайн — форма реквизитов (фронт) + UX гейта первого проекта
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 04:56:53 +03:00
Дмитрий
633bfe3ccc
docs: хэндофф G1 SP1/SP2/SP3a DONE + промпт следующей сессии (стена снята)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 04:36:45 +03:00
Дмитрий
ac3d4364b7
chore: gitleaks allowlist — factories + specs (демо-телефоны фикстур, не реальные ПДн)
...
ru-phone-unmasked ловил фейковые телефоны в TenantFactory::withRequisites и в internal-спеке — та же категория, что уже исключённые seeders/tests/plans/audits. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 04:26:05 +03:00
Дмитрий
f9e1ddb7da
fix: дополнен мок DashboardSummary в DashboardView.spec (avg_lead_cost_rub) — type-check green
...
Пред-существующая type-ошибка (поле required в DashboardSummary отсутствовало в моке). Не связано с SP3a; убирает единственную ошибку vue-tsc. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 23:45:08 +03:00
Дмитрий
d3483c21d8
feat: G1/SP3a фронт входа — регистрация + подтверждение почты
...
Переработка register под новый бэкенд SP1 (код на почту), новый ConfirmEmailView, капча-шов, роут /confirm-email. Проверено Playwright: register→код→confirm→dashboard, негатив, fallback email. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 23:33:26 +03:00
Дмитрий
60f76d5919
feat: G1/SP2 реквизиты клиента + ИНН по DaData + гейт первого проекта
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 22:25:23 +03:00
Дмитрий
9a661401a2
feat: G1/SP1 самозапись клиента с подтверждением почты 6-значным кодом
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 19:33:33 +03:00
Дмитрий
834fa144dd
docs: G1/SP1 спека+план+хэндофф (печать стены не закрепилась, передаю в след. сессию)
2026-06-18 17:35:32 +03:00
Дмитрий
93335c26a7
docs: план G1/SP1 самозапись с подтверждением почты
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 16:03:21 +03:00