Files
iistwin/SESSION_NOTES.md
Ильяс Султанов 1f5ecb6da4 fix(number-fields): избегаем потери точности длинных чисел
- number-поля теперь рендерятся как text + inputMode=numeric,
  чтобы браузер не округлял значения через input type=number
- пробелы при вставке в number-поля удаляются
- бэкенд нормализует значения number-полей в строку перед сохранением
- добавлен хелпер normalizeFieldValueForStorage

Closes: искажение расчётного счёта и других длинных числовых полей
2026-07-07 21:03:40 +03:00

3.8 KiB
Raw Permalink Blame History

Заметки по сессии — 15.05.2026

1. Geo-поле (Адрес с координатами)

  • Статус: ✅ Реализовано и задеплоено
  • Компонент: client/src/components/GeoField.tsx
  • API: /api/dadata/suggest/address, /api/dadata/geolocate
  • Формат данных: { address: string, lat: number | string, lng: number | string }
  • Особенности: совмещённое поле координат ("55.707339, 52.315169"), подсказки DaData, обратное геокодирование

2. Исправление ошибки создания задач (bad_request)

  • Причина: drizzle-zod@0.7.0 создаёт strict() схемы. insertTaskSchema не ожидал customFields, и zod отклонял запрос.
  • Фикс: добавлено customFields: z.record(z.any()).optional() в shared/schema.ts
  • Файл: shared/schema.ts, insertTaskSchema

3. UI поля "Связь с формой" (task)

  • Проблема: непонятные подписи "Родительская/дочерняя задача"
  • Решение: переименовано в "Роль связанной задачи" + добавлены поясняющие описания под каждым вариантом
  • Файл: client/src/pages/FormEditor.tsx

4. Очистка Docker

  • Освобождено: ~4 GB
  • До: 49 GB, 42 GB использовано (86%)
  • После: 49 GB, 24 GB использовано (50%)
  • Удалено: dangling образы iistwin (crm-app-builder, crm-app старые), postgres:16-alpine, build cache

5. Удаление заглушек из блока "Финансы"

  • Удалены файлы:
    • client/src/pages/finance/profitability.tsx
    • client/src/pages/finance/debt.tsx
    • client/src/pages/finance/calculations.tsx
    • client/src/pages/finance/planning.tsx
    • client/src/pages/finance/audit.tsx
    • client/src/pages/finance/heatmap.tsx
  • Убраны: импорты из App.tsx, роуты, экспорты из index.ts
  • FinanceSidebar: оставлены только реальные страницы (Дашборд, Доходы, Расходы, Зарплата, Настройки)
  • FinanceNav: убраны дубли (Доходы, Расходы, Зарплата, Настройки), оставлены Обзор + Категории доходов/расходов

6. Настройка SSH для git на сервере

  • Сгенерирован ключ: /root/.ssh/id_ed25519 (ed25519)
  • Добавлен в GitHub: Settings → SSH keys
  • Git remote: git@github.com:iisultanov/iistwin.git
  • Результат: git pull работает автоматически без пароля

Кастомизации сервера (НЕ коммитить в GitHub)

Файл Изменения
docker-compose.yml Traefik-метки, APP_HTTPS_PROXY=true, сеть n8n_proxy
server/index.ts contentSecurityPolicy: false, hsts: false, conditional HSTS
docker-entrypoint.sh echo "y" | npx drizzle-kit push + CREATE EXTENSION vector
.env Секреты, ALLOW_PRIVATE_RAG_URLS=true, API_KEY_HMAC_SECRET

Команды деплоя

ssh root@82.202.130.22

cd /opt/crm
git pull origin main
docker compose up -d --build

Проверка статуса

curl -s https://iistwin.ru/api/health

Доступы