bablo / стройплощадка
← Все сессии
Дата: 2026-05-19
Часов: 8
Кто:

2026-05-19 — Phase 1 полностью реализована

Что сделано

Реализованы все 9 блоков Phase 1 Must Have:

A. Layout + тёмная тема (#23)

  • Дизайн-токены из 05-DESIGN.md (JetBrains Mono + Inter)
  • Sidebar с навигацией, TopBar, active links

B. Auth (Lucia v3)

  • Email/password login, argon2 хэши
  • Роли owner/editor/viewer
  • /setup страница первичной настройки
  • Middleware защиты роутов

C. Объекты и сметы

  • CRUD объектов (/projects, /projects/[id])
  • Импорт сметы из xlsx (Гранд-Смета / Smeta.RU формат)
  • Heuristic column detector для разных форматов

D. Загрузка документов

  • MinIO S3-совместимое хранилище
  • Upload форма: PDF, JPEG, PNG, XLSX (до 20 МБ)
  • Валидация MIME типов

E. AI-парсер документов (doc-worker)

  • Claude Opus 4.7 для PDF/изображений, Haiku 4.5 для текста
  • Каталог позиций с text-search матчингом
  • Автоматическое создание новых позиций каталога
  • Детектор дублей → алерты

F. Финансовая модель

  • Договоры (с заказчиком / с подрядчиком)
  • Поступления от заказчика (аванс/этапный/финальный)
  • Платежи поставщикам и подрядчикам
  • Расчёт маржи: (поступления) - (смета) - (внесметные)

G. Алерты

  • UI: список открытых/закрытых, severity emoji 🔴🟡🔵
  • Закрытие алерта с фиксацией фактической экономии
  • Детектор дублей в doc-worker

H. Telegram-бот (grammY)

  • Long-polling, приём файлов (PDF, фото) и текста
  • Привязка telegram_id к user_account в /settings
  • Graceful fallback при пустом токене

I. Дашборд

  • Карточки объектов с маржой в реальном времени
  • 🟢🟡🔴 по порогам 10%/5% (PRD §3.3)
  • Последние алерты и документы

J. Деплой

  • Docker images собраны: bablo-app, bablo-doc-worker, bablo-tg-bot
  • Все контейнеры запущены, health checks pass
  • Push в GitVerse (origin) + GitHub (mirror)

Что не сделано (отложено)

  • Калькулятор хомутовых лесов (PRD Should Have)
  • NPM Proxy Host в Nginx (нужен домен от Руслана)
  • TELEGRAM_BOT_TOKEN — нужно получить токен и задать в .env
  • AUTH_SECRET — нужно задать в .env для production

Технические решения

  • Auth: Lucia v3 + DrizzlePostgreSQLAdapter (не Auth.js — проще для Phase 1)
  • Parsing: polling каждые 5с, batch 3, без WebSocket/Redis
  • Costs: Haiku для текста ($0.0002/req), Opus для PDF ($0.015/req)
  • Standalone: next.config.ts output: ‘standalone’ для Docker

Следующие шаги

  1. Задать TELEGRAM_BOT_TOKEN и AUTH_SECRET в /opt/bablo/.env
  2. Настроить NPM Proxy Host для bablo-app (домен → 127.0.0.1:3010)
  3. Запустить /setup для создания учётной записи Руслана
  4. Загрузить тестовую смету xlsx и КП от поставщика
  5. Проверить первый алерт-дубль