Дмитрий
abee37524e
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
Дмитрий
19d6814383
docs: G2-B план реализации — дайджест по умолчанию (миграция + дотяжка + тест)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:50:08 +03:00
Дмитрий
86f48f6c1a
docs: G2-B дизайн — дайджест новых сделок по умолчанию (флип дефолта + дотяжка)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:47:52 +03:00
Дмитрий
fb35ae02e4
docs: G1/SP3c план реализации — полные платёжные реквизиты (фронт)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:56:38 +03:00
Дмитрий
0a044fc06b
docs: G1/SP3c дизайн — полные платёжные реквизиты (фронт)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:54:57 +03:00
Дмитрий
968497ed44
docs: G1/SP3b план реализации — форма реквизитов (фронт) + UX гейта
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 07:20:12 +03:00
Дмитрий
af6c9ada21
docs: G1/SP3b дизайн — форма реквизитов (фронт) + UX гейта первого проекта
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 04:56:53 +03:00
Дмитрий
bbf7f3dd37
docs: хэндофф G1 SP1/SP2/SP3a DONE + промпт следующей сессии (стена снята)
...
Accessibility (Pa11y live) / a11y (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 04:36:45 +03:00
Дмитрий
bacc7c5e24
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
Дмитрий
08d51eb6c8
feat: G1/SP2 реквизиты клиента + ИНН по DaData + гейт первого проекта
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 22:25:23 +03:00
Дмитрий
53fb7b7760
feat: G1/SP1 самозапись клиента с подтверждением почты 6-значным кодом
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 19:33:33 +03:00
Дмитрий
ae0a4174ea
docs: G1/SP1 спека+план+хэндофф (печать стены не закрепилась, передаю в след. сессию)
2026-06-18 17:35:32 +03:00
Дмитрий
ec03dd53df
docs: план G1/SP1 самозапись с подтверждением почты
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 16:03:21 +03:00
Дмитрий
c4efdd9c78
docs: спека G1/SP1 самозапись с подтверждением почты
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 15:42:02 +03:00
Дмитрий
34c6356196
docs: хэндофф go-live находок портала + промт для следующей сессии
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 15:01:50 +03:00
Дмитрий
f943871406
feat: G2-A дайджест новых сделок на почту - письмо-сводка раз в 30 минут вместо письма на каждую сделку
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 14:40:12 +03:00
Дмитрий
41adf00cba
feat: G4 убрать неработающий push-канал из настроек уведомлений + находка G8 про сломанный фронт-тест-раннер
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 13:46:31 +03:00
Дмитрий
ff29360724
docs: рунбук ручного выката gitea на прод
...
Пошаговый деплой-пайплайн liderra.ru: clone из gitea, npm build на проде,
artisan down, rsync overlay с исключениями, composer и optimize от www-data,
миграции через postgres superuser, up и smoke. Грабли PowerShell-ssh кавычек,
heredoc с dollar-dollar, привилегии www-data и crm_app_user, rollback.
GitHub Actions deploy.yml мёртв, аккаунт CoralMinister suspended.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-18 09:11:06 +03:00
Дмитрий
8ad9e1d17f
fix(test): routing-snapshot today+tomorrow в CsvWebhookRaceTest + PII на slack/papertrail/stderr
...
C: LeadRouter.activeSnapshotDate после 21:00 МСК = завтра; снимок только на сегодня не активен -> снимки на обе даты. A: PII-процессор на остальные лог-каналы, 6/6.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 21:37:41 +03:00
Дмитрий
7f5288726a
feat(security): PII-scrubbing процессор логов — Medium go-live
...
Monolog PiiScrubbingProcessor (телефоны/email -> [PHONE]/[EMAIL]) + ScrubPii tap на single/daily в config/logging.php. Pest 6/6 GREEN. Sentry-scrubbing (OPEN-И-16) не реализуем: sentry-laravel не установлен — open-item.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 20:43:28 +03:00
Дмитрий
b81a372e8f
feat(security): webhook DNS-rebind пиннинг + аддитивный HMAC supplier-webhook — edge/P2 go-live
...
WebhookUrlGuard::safeDeliveryIp один резолв + CURLOPT_RESOLVE пиннинг в test(); supplier-webhook принимает HMAC X-Webhook-Signature как альтернативу URL-секрету + secretless-маршрут. Аддитивно, backward-compat. 6 новых тестов GREEN; 5 падений webhook-сюиты pre-existing (Phase-3 B-regex + CsvWebhookRaceTest), подтверждено baseline без моих файлов.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 20:21:11 +03:00
Дмитрий
a0048448e1
docs(superpowers): спеки и планы церемоний синка квинтета v2.47 и починки lychee-ссылок
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 20:04:11 +03:00
Дмитрий
518d71e81f
feat(security): per-IP route-throttle на auth-эндпоинтах — P1 go-live
...
Именованные лимитеры auth-login/auth-2fa/auth-password (perMinute 20 by IP) в AppServiceProvider; throttle-middleware на login/forgot/reset/2fa-verify/recovery в web.php. Закрывает per-IP объёмный перебор. Pest tests/Feature/Auth 97/97 GREEN.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 19:56:23 +03:00
Дмитрий
f18491b987
docs: починка 12 битых относительных .md-ссылок долг lychee — корректные относительные пути и снятие ссылок на отсутствующие цели
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 19:55:37 +03:00
Дмитрий
abb349c012
feat(pdn): правила маскирования ПДн pg_anonymizer на проде — SECURITY LABEL на ПДн-колонки + план применения — закрытие остатка B2
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 19:33:58 +03:00
Дмитрий
380aedb04e
feat(security): CSP Report-Only под Vue+Vuetify SPA — 2-я ZAP Medium go-live
...
Report-Only политика в middleware SecurityHeaders; Pest 6/6 GREEN.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 19:30:51 +03:00
Дмитрий
25f9016505
docs(superpowers): отчёт осмотра портала + баг-доки стены (walk/read-block) — для claude-brain
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 17:54:50 +03:00
Дмитрий
d1976c9ccf
feat(pdn): ретеншен ПДн удалённых лидов — анонимизация soft-deleted сделок — F-P1
...
152-ФЗ блокер B1/F-P1: телефоны и имена контактов soft-deleted сделок не
вычищались и хранились бессрочно. Добавлена плановая команда-ретеншен.
Команда pd:scrub-soft-deleted-deals анонимизирует phone/contact_name/phones
сделок с deleted_at старше N дней; N из system_settings
pd_scrub_soft_deleted_deals_days, по умолчанию no-op — юр.срок не зашит в код.
Значения затирания идентичны PdErasureService. Cross-tenant через
pgsql_supplier BYPASSRLS, идемпотентно, summary-запись в pd_processing_log
системным актором. Планировщик ежедневно 03:30 МСК с heartbeat.
Схема v8.41: partial index deals_deleted_at_index ON deals deleted_at WHERE
deleted_at IS NOT NULL для дешёвой выборки; счётчик индексов 120 на 121.
F-T2 проверен: /api/admin за middleware saas-admin fail-closed 503 — кодовой
правки не требует.
TDD: 4 Pest ScrubSoftDeletedDealsCommandTest GREEN. Escape-per-write — печать
церемонии не опечатывала план.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 17:24:48 +03:00
Дмитрий
84936929eb
feat(security): middleware безопасных HTTP-заголовков — закрытие ZAP Medium anti-clickjacking
...
X-Frame-Options SAMEORIGIN + X-Content-Type-Options nosniff + Referrer-Policy на все web-ответы (go-live аудит 17.06). CSP вынесен отдельно (SPA Vue+Vuetify). TDD-тест на публичном /.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 17:12:32 +03:00
Дмитрий
e13b9e7bea
docs(security): аудит доведён до конца + поправка по верификации кода + баги стены
...
Прогон всех 5 сканеров: gitleaks 0 / Semgrep 0 / Ward 2(dev) / Nuclei 0(medium+) / ZAP 0(high). pg_anonymizer не установлен (факт). Три ложных P0 сняты проверкой кода (E9/E18/admin/SSRF закрыты). Вердикт NO-GO держат F-P1, pg_anonymizer, прод-.env. Трекер открытых вопросов + файл-баг (чтение под стеной, десинк F-J, зацикл наставника) для claude-brain.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 16:25:23 +03:00
Дмитрий
e693cfc6b7
docs(security): go-live security gate отчёт 17.06 + уроки прогона в wall-guide
...
Прогон security-go-live на main, локальная цель 127.0.0.1:8000 — вердикт NO-GO.
Блокеры: pg_anonymizer не установлен (ПДн в дампах), F-P1 (телефоны лидов не
вычищаются по сроку), P0 из STRIDE (SAAS_ADMIN_TEST_BYPASS / SSRF webhooks-test /
открытые ручки). Nuclei чисто (1 info php). Semgrep/ZAP — PENDING.
Гайд стены: новый раздел уроков — читать контекст до печати плана, запасной
канал вставки в чат, недетерминизм судьи и рассинхрон указателя F-J.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 14:34:39 +03:00
Дмитрий
de56d955ae
docs: GUIDE стены - Фикс 1 теперь подписанные вердикты участников
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 13:34:38 +03:00
Дмитрий
cf813c1091
feat: wall - подписанные строки вердиктов роутера наставника и судьи во всплытии
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 13:16:32 +03:00
Дмитрий
9fe5b5f229
imitation phase1 merge
...
# Conflicts:
# app/app/Console/Commands/PhoneRangesImportCommand.php
# app/app/Jobs/RouteSupplierLeadJob.php
# app/app/Services/LeadRegionResolver.php
# app/database/migrations/2026_05_31_100000_create_phone_ranges_and_resolution_log.php
# app/tests/Feature/Console/PhoneRangesImportCommandTest.php
# app/tests/Feature/Jobs/RouteSupplierLeadJobTest.php
# app/tests/Feature/PartitionsCreateMonthsTest.php
# cspell-words.txt
# docs/observer/STATUS.md
# tools/enforce-powershell-gate.test.mjs
# tools/enforce-router-gate.mjs
# tools/enforce-router-gate.test.mjs
# tools/enforce-tdd-gate.test.mjs
# tools/enforce-tdd-real-test-verifier.mjs
# tools/enforce-tdd-real-test-verifier.test.mjs
# tools/enforce-verify-record.test.mjs
# tools/mcp-tool-classifier.test.mjs
# tools/shell-content-rules.test.mjs
2026-06-17 08:03:35 +03:00
Дмитрий
a94e554a69
F-3 type: 3 vue-tsc TS2345 в region-тестах - cast findComponent к VueWrapper any + props - vue-tsc чисто
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 04:38:55 +03:00
Дмитрий
0ecfeb06a6
F-2 refactor: цвет stat-success вынесен из инлайна в scoped-правило по прецеденту .sep - тест TenantsStatsHeader зелёный
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 03:35:48 +03:00
Дмитрий
57f554ea7c
F-2 a11y Tenants: label поиска по ИНН + AA-класс stat-success счётчика активных - 2 теста зелёные, регрессия 946 passed
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 03:17:32 +03:00
Дмитрий
3d37dad084
docs session 2026-06-16: bug-file deploy-commit-not-executable-under-wall для claude-brain + удалены черновики spec v1 v2 деплоя F-1
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 16:51:07 +03:00
Дмитрий
33c5fbccbd
docs deploy: F-1 CVE vendor-апдейт выполнен на проде - спека v3 + план + runbook
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 16:31:57 +03:00
Дмитрий
293edb3e07
docs session 2026-06-16: F-4 baseline, gitea push, wall push lesson, mentor bug, F-1 deploy runbook, lead-region already-in-main finding, etalon update
2026-06-16 15:57:06 +03:00
Дмитрий
ac2a3df2e2
docs router-mentor: оглавление + рецепт escape + дедуп
2026-06-16 15:37:07 +03:00
Дмитрий
1e524022cc
docs router-mentor: gitea backup health-probe ceremony spec+plan, server verified alive
...
Accessibility (Pa11y live) / a11y (push) Has been cancelled
SAST — Semgrep / Semgrep SAST scan (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 13:50:05 +03:00
Дмитрий
317125e36a
chore: regenerate larastan baseline - absorb lead-region drift
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 13:43:12 +03:00
Дмитрий
0f6c9f0e6e
docs router-mentor: wall guide refresh - fix1/2/3 + F-J/F-K + commit reality
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:55:38 +03:00
Дмитрий
8e7a7803c1
fix: 152-FZ erasure - surgical scrub of deals.phones JSONB plus email no-op, F-P1b
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:54:45 +03:00
Дмитрий
1d3bfe58db
docs router-mentor: worklog finale - fix3 done + F-K + revert incident for brain
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:22:27 +03:00
Дмитрий
9ac6d96dee
feat router-mentor: arbitration fixes 1+2+3 - verdict visibility, round-memory judge-self-history and mentor-re-eval, owner-seal arbitration; 29/29 tools green
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:13:52 +03:00
Дмитрий
4f7e0b8f75
docs: lead-region merge runbook + domain-blockers F-T1/F-T2/F-P1 verification
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 09:04:00 +03:00
Дмитрий
d74d3113e5
feat: research-tooling Perplexity Pack #87-89 — registry/router/normative sync + ADR-019
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 15:44:42 +03:00
Дмитрий
3cfa684b40
docs mentor: git-approval commit recipe in GUIDE
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 13:43:42 +03:00