This website requires JavaScript.
d041acf183
docs(ПИЛОТ): снимок 19.06 — G1-G7 выкачены на боевой liderra.ru, метод/грабли/бэкапы
main
Дмитрий
2026-06-19 19:29:33 +03:00
01a9029c25
fix(G7-B): stray не-lpimp Bearer на sanctum-роуте → чистый 401 вместо 500 (нет таблицы PAT)
Дмитрий
2026-06-19 17:35:53 +03:00
1e5ef3342f
chore(G7-B): baseline Pest TestCall-ложноположительных для impersonation-тестов (0 продуктовых подавлений)
Дмитрий
2026-06-19 17:25:28 +03:00
173b089629
feat(G7-B): клиентская плашка impersonation + редирект/ключ в диалоге + leave
Дмитрий
2026-06-19 17:09:59 +03:00
a2f086cc40
feat(G7-B): leave из кабинета + impersonation-контекст в /api/auth/me + end-письмо
Дмитрий
2026-06-19 17:04:48 +03:00
56f54dfdb7
feat(G7-B): изоляция админ-зоны при impersonation + авто-истечение сессии 1 ч
Дмитрий
2026-06-19 16:51:21 +03:00
3e1eb7e835
feat(G7-B): guard impersonation + envelope машинного ключа на рабочих группах кабинета
Дмитрий
2026-06-19 16:44:42 +03:00
377a16a605
feat(G7-B): verify — session-takeover целевого юзера + выдача машинного ключа
Дмитрий
2026-06-19 16:35:03 +03:00
ab0787c887
feat(G7-B): письма impersonation код-согласие + завершение, wire в init
Дмитрий
2026-06-19 16:25:49 +03:00
8bdff8b761
feat(G7-B): колонка session_token_hash под машинный ключ impersonation, schema v8.49
Дмитрий
2026-06-19 16:21:32 +03:00
739c28d296
docs(G7-B): план реализации двери impersonation + машинный ключ
Дмитрий
2026-06-19 16:17:56 +03:00
42cdd5233b
docs(G7-B): спека двери impersonation + машинный ключ под ИИ + карта каналов
Дмитрий
2026-06-19 16:09:07 +03:00
93def8b6b4
docs(G7-B): хэндофф достройки impersonation — состояние брейншторма + промпт след. сессии
Дмитрий
2026-06-19 15:20:24 +03:00
734ed08ce9
chore(G7-A): baseline Pest-ложноположительных в SupportRequestControllerTest
Дмитрий
2026-06-19 15:08:30 +03:00
b133ceb98a
feat(G7-A): экран «Помощь» (форма-заявка) + пункт меню + роут
Дмитрий
2026-06-19 15:04:17 +03:00
b5eb0eb1cd
feat(G7-A): meta support-email + условный JivoSite в shell-blade
Дмитрий
2026-06-19 15:02:14 +03:00
bfdc45b757
feat(G7-A): POST /api/support-requests + тест (store+mail+валидация)
Дмитрий
2026-06-19 15:00:12 +03:00
4732408545
feat(G7-A): SupportRequestMail + шаблон письма
Дмитрий
2026-06-19 14:55:21 +03:00
46efd40b9f
feat(G7-A): модель SupportRequest
Дмитрий
2026-06-19 14:54:25 +03:00
2d1c2e8487
feat(G7-A): таблица support_requests (schema + миграция, RLS)
Дмитрий
2026-06-19 14:53:57 +03:00
15a66b52a9
feat(G7-A): конфиг support.email + jivosite.widget_id
Дмитрий
2026-06-19 14:50:39 +03:00
799d775361
docs(G7-A): план реализации клиентской «Помощь»
Дмитрий
2026-06-19 14:48:18 +03:00
102f97ca92
docs(G7-A): спека клиентской «Помощь» (форма+email+JivoSite)
Дмитрий
2026-06-19 14:18:16 +03:00
a6db8d9cfa
fix(schema): закрыть остаток дрейфа (project_routing_snapshots) + guard CREATE POLICY 05_27 (v8.47)
Дмитрий
2026-06-19 13:37:48 +03:00
fec15a3703
fix(migration): guard CREATE POLICY в tenant_requisites (DROP IF EXISTS) — чинит migrate:fresh
Дмитрий
2026-06-19 12:58:37 +03:00
9ac5382d2c
fix(schema): синк дрейфа lead-region в schema.sql + guard миграции 05_31 (v8.46)
Дмитрий
2026-06-19 12:55:04 +03:00
2eaa78f95b
fix(stan): Larastan-долг G1/G6 = 0 ошибок (реальные баги — починены, не спрятаны)
Дмитрий
2026-06-19 12:40:00 +03:00
ca5fd8d2f6
fix(G3): счётчик «7 событий» в уведомлениях + убрать «напоминаниях» из подсказки таймзоны
Дмитрий
2026-06-19 12:06:17 +03:00
0c53f929e8
chore(G3): почистить phpstan-baseline от напоминаний
Дмитрий
2026-06-19 11:55:57 +03:00
3605d83092
feat(G3): drop таблицы reminders — миграция + schema.sql + CHANGELOG
Дмитрий
2026-06-19 11:48:26 +03:00
6bbfa1f624
fix(G3): убрать создание reminders из HistoricalImportService (шов CSV-импорта)
Дмитрий
2026-06-19 11:43:00 +03:00
582c02d4a7
feat(G3): убрать reminder из дефолтов notification_preferences (factory+seeder)
Дмитрий
2026-06-19 11:38:58 +03:00
34981da707
feat(G3): удалить контроллер/роуты/модель/команду/письмо напоминаний
Дмитрий
2026-06-19 11:37:57 +03:00
c85b4acbc3
feat(G3): убрать ветку reminder из NotificationService
Дмитрий
2026-06-19 11:36:27 +03:00
591abc7d93
feat(G3): убрать next_reminder_at-подзапрос из DealController
Дмитрий
2026-06-19 11:34:36 +03:00
4c3e57bf9b
feat(G3): убрать преференцию «Напоминание» + хвосты фронт-тестов
Дмитрий
2026-06-19 11:29:46 +03:00
cbf8b4fb43
feat(G3): убрать next_reminder_at из фронт-слоя сделок
Дмитрий
2026-06-19 11:29:35 +03:00
a49b201d33
feat(G3): убрать экран «Напоминания» и раздел в карточке сделки
Дмитрий
2026-06-19 11:18:49 +03:00
5b1ea80745
docs(G3): план реализации удаления фичи «Напоминания»
Дмитрий
2026-06-19 11:08:29 +03:00
a39f12dc35
docs(G3): спека полного удаления фичи «Напоминания» (вкл. таблицу)
Дмитрий
2026-06-19 10:56:18 +03:00
97fff8e8d6
docs: хэндофф сессии 19.06 — G1-хвосты+G2-B+G6 DONE, промпт следующей сессии
Дмитрий
2026-06-19 10:27:32 +03:00
716c62dadb
feat(G6): контроллер + роут GET /api/v1/deals (публичный read-API сделок)
Дмитрий
2026-06-19 10:13:08 +03:00
193fbde6c1
feat(G6): middleware ApiKeyAuth — аутентификация по API-ключу
Дмитрий
2026-06-19 10:12:03 +03:00
c61c38efd4
test(G6): приёмка публичного API сделок (RED)
Дмитрий
2026-06-19 10:11:24 +03:00
8ccd3d23bb
docs: G6 план реализации — публичный read-API сделок (middleware+контроллер+роут+тест)
Дмитрий
2026-06-19 10:10:16 +03:00
abee37524e
docs: G6 дизайн — публичный read-API сделок по API-ключу
Дмитрий
2026-06-19 10:07:11 +03:00
c049ab49b6
test(G2-B): UserFactory зеркалит новый дефолт new_lead.email true
Дмитрий
2026-06-19 08:53:36 +03:00
01dffd6b30
feat(G2-B): миграция — дефолт new_lead.email true + дотяжка существующих
Дмитрий
2026-06-19 08:53:07 +03:00
37ad398c14
chore(G2-B): канон схемы — дефолт new_lead.email true + CHANGELOG v8.44 (+sync v8.43 в header)
Дмитрий
2026-06-19 08:52:31 +03:00
9c73d99ad6
test(G2-B): дефолт new_lead.email=true (RED) + backfill SQL
Дмитрий
2026-06-19 08:51:04 +03:00
19d6814383
docs: G2-B план реализации — дайджест по умолчанию (миграция + дотяжка + тест)
Дмитрий
2026-06-19 08:50:08 +03:00
86f48f6c1a
docs: G2-B дизайн — дайджест новых сделок по умолчанию (флип дефолта + дотяжка)
Дмитрий
2026-06-19 08:47:52 +03:00
8fc63d5782
fix(G1-tail): письмо с кодом в очередь + не валить register/resend при сбое доставки
Дмитрий
2026-06-19 08:29:15 +03:00
082a67363e
fix(G1-tail): убран стейл-Шаг 6 (webhook_log удалён в v8.35) из OperationalFullFlowTest
Дмитрий
2026-06-19 08:18:30 +03:00
aa381ec53f
fix(G1-tail): NBSP перед ₽ через escape \u00A0 в DashboardPageHead (lint:vue green)
Дмитрий
2026-06-19 08:18:30 +03:00
3440483bd7
feat(G1/SP3c): блок платёжных реквизитов + статус-чип + валидация (поля по типу лица)
Дмитрий
2026-06-19 07:58:47 +03:00
fb35ae02e4
docs: G1/SP3c план реализации — полные платёжные реквизиты (фронт)
Дмитрий
2026-06-19 07:56:38 +03:00
0a044fc06b
docs: G1/SP3c дизайн — полные платёжные реквизиты (фронт)
Дмитрий
2026-06-19 07:54:57 +03:00
44b93679c4
feat(G1/SP3b): UX гейта — alert requisites_required + переход к реквизитам
Дмитрий
2026-06-19 07:24:27 +03:00
1af9a093e7
feat(G1/SP3b): вкладка Реквизиты в Настройках + deep-link ?tab=requisites
Дмитрий
2026-06-19 07:24:26 +03:00
f88fd7ad98
feat(G1/SP3b): вкладка RequisitesTab — лёгкая форма реквизитов
Дмитрий
2026-06-19 07:24:26 +03:00
2eb2f3d076
feat(G1/SP3b): api-обёртка реквизитов (get/update/lookup-inn)
Дмитрий
2026-06-19 07:24:26 +03:00
968497ed44
docs: G1/SP3b план реализации — форма реквизитов (фронт) + UX гейта
Дмитрий
2026-06-19 07:20:12 +03:00
af6c9ada21
docs: G1/SP3b дизайн — форма реквизитов (фронт) + UX гейта первого проекта
Дмитрий
2026-06-19 04:56:53 +03:00
bbf7f3dd37
docs: хэндофф G1 SP1/SP2/SP3a DONE + промпт следующей сессии (стена снята)
Дмитрий
2026-06-19 04:36:45 +03:00
50ed240b8c
chore: gitleaks allowlist — factories + specs (демо-телефоны фикстур, не реальные ПДн)
Дмитрий
2026-06-19 04:26:05 +03:00
799d416b9a
fix: дополнен мок DashboardSummary в DashboardView.spec (avg_lead_cost_rub) — type-check green
Дмитрий
2026-06-18 23:45:08 +03:00
bacc7c5e24
feat: G1/SP3a фронт входа — регистрация + подтверждение почты
Дмитрий
2026-06-18 23:33:26 +03:00
08d51eb6c8
feat: G1/SP2 реквизиты клиента + ИНН по DaData + гейт первого проекта
Дмитрий
2026-06-18 22:25:23 +03:00
53fb7b7760
feat: G1/SP1 самозапись клиента с подтверждением почты 6-значным кодом
Дмитрий
2026-06-18 19:33:33 +03:00
ae0a4174ea
docs: G1/SP1 спека+план+хэндофф (печать стены не закрепилась, передаю в след. сессию)
Дмитрий
2026-06-18 17:35:32 +03:00
ec03dd53df
docs: план G1/SP1 самозапись с подтверждением почты
Дмитрий
2026-06-18 16:03:21 +03:00
c4efdd9c78
docs: спека G1/SP1 самозапись с подтверждением почты
Дмитрий
2026-06-18 15:42:02 +03:00
34c6356196
docs: хэндофф go-live находок портала + промт для следующей сессии
Дмитрий
2026-06-18 15:01:50 +03:00
f943871406
feat: G2-A дайджест новых сделок на почту - письмо-сводка раз в 30 минут вместо письма на каждую сделку
Дмитрий
2026-06-18 14:40:12 +03:00
41adf00cba
feat: G4 убрать неработающий push-канал из настроек уведомлений + находка G8 про сломанный фронт-тест-раннер
Дмитрий
2026-06-18 13:46:31 +03:00
f6a852b744
chore: gitignore сырых ZAP-отчётов docs/security
Дмитрий
2026-06-18 11:27:58 +03:00
a8d635ef49
chore(security): версионирую ZAP-оркестратор active scan
Дмитрий
2026-06-18 11:06:10 +03:00
8817d46717
chore(security): ZAP active scan 2026-06-18 — отчёт + оркестратор
Дмитрий
2026-06-18 11:03:47 +03:00
a4a8ea31b9
refactor(security): единый источник security-заголовков — nginx
Дмитрий
2026-06-18 09:31:47 +03:00
ff29360724
docs: рунбук ручного выката gitea на прод
Дмитрий
2026-06-18 09:11:06 +03:00
23f81bdaf3
test: починка харнеса AdminBilling и AdminIncidents
Дмитрий
2026-06-18 09:05:06 +03:00
52d500db5d
feat(security): read-only доступ к проду через стену — ssh liderra-prod + gh GET
Дмитрий
2026-06-18 08:04:50 +03:00
ebd94f3fc5
docs(security): go-live трекер — все блокеры B1-B6 сняты (GO), B2 anon на проде; gitignore lychee/walk артефактов
Дмитрий
2026-06-18 06:13:56 +03:00
8ad9e1d17f
fix(test): routing-snapshot today+tomorrow в CsvWebhookRaceTest + PII на slack/papertrail/stderr
Дмитрий
2026-06-17 21:31:20 +03:00
7f5288726a
feat(security): PII-scrubbing процессор логов — Medium go-live
Дмитрий
2026-06-17 20:43:28 +03:00
b81a372e8f
feat(security): webhook DNS-rebind пиннинг + аддитивный HMAC supplier-webhook — edge/P2 go-live
Дмитрий
2026-06-17 20:21:11 +03:00
a0048448e1
docs(superpowers): спеки и планы церемоний синка квинтета v2.47 и починки lychee-ссылок
Дмитрий
2026-06-17 20:04:11 +03:00
8bb72b3430
fix(pdn): anon-валидные маски без ::jsonb/::inet-каста + применено на прод 17.06.2026 — B2 закрыт
Дмитрий
2026-06-17 20:02:51 +03:00
518d71e81f
feat(security): per-IP route-throttle на auth-эндпоинтах — P1 go-live
Дмитрий
2026-06-17 19:56:23 +03:00
f18491b987
docs: починка 12 битых относительных .md-ссылок долг lychee — корректные относительные пути и снятие ссылок на отсутствующие цели
Дмитрий
2026-06-17 19:55:37 +03:00
39c96bdc3b
docs: синхронизация cross-ref версии CLAUDE.md в квинтете на v2.47 — PSR и Tooling актуальные записи указывают v2.47
Дмитрий
2026-06-17 19:55:28 +03:00
f1cda68a80
chore: cspell-words добавлены термины трекера B3/B6 фронтенде десинк недетерминизм ретеншен
Дмитрий
2026-06-17 19:48:17 +03:00
cd51eca4ba
docs: закрыты блокеры B3 и B6 на проде liderra.ru, SAAS_ADMIN_TEST_BYPASS=false и APP_DEBUG/APP_ENV проверены фактом
Дмитрий
2026-06-17 19:36:57 +03:00
abb349c012
feat(pdn): правила маскирования ПДн pg_anonymizer на проде — SECURITY LABEL на ПДн-колонки + план применения — закрытие остатка B2
Дмитрий
2026-06-17 19:33:58 +03:00
380aedb04e
feat(security): CSP Report-Only под Vue+Vuetify SPA — 2-я ZAP Medium go-live
Дмитрий
2026-06-17 19:30:51 +03:00
150f10c54a
docs(security): хвосты go-live аудита — снять дубли секций, статус блокеров B1/B4/B5, ward-report в .gitignore
Дмитрий
2026-06-17 18:22:41 +03:00
25f9016505
docs(superpowers): отчёт осмотра портала + баг-доки стены (walk/read-block) — для claude-brain
Дмитрий
2026-06-17 17:54:50 +03:00
d1976c9ccf
feat(pdn): ретеншен ПДн удалённых лидов — анонимизация soft-deleted сделок — F-P1
Дмитрий
2026-06-17 17:24:48 +03:00
84936929eb
feat(security): middleware безопасных HTTP-заголовков — закрытие ZAP Medium anti-clickjacking
Дмитрий
2026-06-17 17:12:32 +03:00