Commit Graph

  • abd5d4b65f chore(ci+logs): eslint в CI, npm audit, logger с уровнями, retention error_logs Ильяс Султанов 2026-09-08 00:11:38 +03:00
  • 6eaca79cc6 perf(ui): виртуализация реестра задач и чата (@tanstack/react-virtual) Ильяс Султанов 2026-09-07 23:46:42 +03:00
  • 667a321341 perf(sse+tasks): индекс SSE-соединений, getTaskTree на recursive CTE, батчи N+1 Ильяс Султанов 2026-09-07 23:29:21 +03:00
  • 9528a8123a perf(directories): SQL-фильтрация/пагинация справочников, N+1, лимиты column-values Ильяс Султанов 2026-09-07 23:09:15 +03:00
  • 701af06290 feat(billing): PaymentProvider + Mock, self-service пополнение баланса Ильяс Султанов 2026-09-07 22:45:30 +03:00
  • 23c49adcd1 perf(access): TTL-кэш getAccessibleTaskIds с точечной инвалидацией Ильяс Султанов 2026-09-07 22:27:33 +03:00
  • 82d577c797 docs(log): регрессия поиска после 0.10/0.9 пройдена (прод) Ильяс Султанов 2026-09-07 22:11:27 +03:00
  • a27766a38b perf(tasks): лимиты/пагинация /api/tasks и дельта-синк в SQL Ильяс Султанов 2026-09-07 22:01:25 +03:00
  • 0a60c6abf1 docs(log): шаги 0.5/0.2 — разбор инцидента с досрочным деплоем Dockerfile Ильяс Султанов 2026-09-07 21:45:51 +03:00
  • 5426c70f1f fix(deploy): vite.config импортируется по вычисляемому URL — esbuild без --splitting Ильяс Султанов 2026-09-07 21:33:58 +03:00
  • 9fc6ad1bd1 fix(deploy): prod-бандл без devDependencies — динамический импорт vite в setupVite Ильяс Султанов 2026-09-07 21:22:27 +03:00
  • a54ec775dd perf(db): миграция 0079 — pg_trgm GIN-индексы поиска и горячие индексы Ильяс Султанов 2026-09-07 21:09:50 +03:00
  • cf6f937108 security(users): SafeUser — passwordHash/токены не уходят клиенту Ильяс Султанов 2026-09-07 21:03:00 +03:00
  • 26419f395f security(errors): 5xx без утечки err.message клиенту Ильяс Султанов 2026-09-07 20:42:39 +03:00
  • b3d7923b23 test(ci): скрипт test, тесты в pr-check, фикс sporadic 403 в trackUserActivity Ильяс Султанов 2026-09-07 20:28:44 +03:00
  • 76a0d859a5 chore(docs): add implementation log Ильяс Султанов 2026-09-07 20:13:37 +03:00
  • a2b231d876 fix(history): московское время и ФИО вместо user ID в истории задачи Ильяс Султанов 2026-09-07 16:55:51 +03:00
  • 9faef8fcf5 SDD: отчёт task 5 — фиксированные цвета графиков DI2; выбор колонок доходов/расходов уже реализован Ильяс Султанов 2026-09-07 00:56:16 +03:00
  • 134b825da5 DI2: фиксированные цвета серий графиков — не зависят от скина/темы Ильяс Султанов 2026-09-07 00:55:32 +03:00
  • d36a13aa36 SDD: леджер и отчёт этапа 4 (проверки + документация di2-restyle) Ильяс Султанов 2026-09-07 00:28:13 +03:00
  • ffa8d83fa7 SDD: леджер — этап 3 принят Ильяс Султанов 2026-09-07 00:17:23 +03:00
  • 47b785edcd DI2 restyle: отчёт этапа 3 (визуальный рестайл) Ильяс Султанов 2026-09-07 00:06:47 +03:00
  • 968010c411 DI2: визуальный рестайл — графики и цвета по токенам скина, таблицы по UI Style Guide, мобильная нижняя панель, переключатель темы Ильяс Султанов 2026-09-07 00:04:49 +03:00
  • ba0d3ac85a SDD: леджер — этап 2 принят Ильяс Султанов 2026-09-06 23:42:08 +03:00
  • 0834356286 DI2: отчёт по этапу 2 (мост тем/скинов iistwin) Ильяс Султанов 2026-09-06 23:33:18 +03:00
  • b4579340ff DI2: мост тем/скинов iistwin — Di2ThemeProvider, общий generated-skins.css, токены в формате основного клиента Ильяс Султанов 2026-09-06 23:31:43 +03:00
  • 10a2c1a629 SDD: леджер — этап 1 принят Ильяс Султанов 2026-09-06 22:04:22 +03:00
  • 4c260f2aaf DI2: отчёт по этапу 1 (удаление старого модуля финансов) Ильяс Султанов 2026-09-06 21:55:21 +03:00
  • 66f4e5ef53 DI2: удаление старого модуля финансов — пул БД и аудит перенесены в finance-di2 Ильяс Султанов 2026-09-06 21:53:47 +03:00
  • 6bcf4dfdfc DI2: навигация сайдбара на wouter Link — base /di2 подставляется в href и клики не покидают субапп (прямые <a href> уводили на iistwin) Ильяс Султанов 2026-09-06 20:53:44 +03:00
  • f993c4d1f0 DI2: дашборд клиента ходил на старый /api/dashboard (fetch-шаблон не был переименован) — CRM-формат ломал рендер. Фикс URL на /api/di2/dashboard Ильяс Султанов 2026-09-06 20:40:42 +03:00
  • 2b3e7682e3 Удаление временного SDD-воркспейса di2-embed (записи перенесены в Obsidian) Ильяс Султанов 2026-09-06 20:27:53 +03:00
  • 49578ab442 DI2 фикс коллизии: дашборд DI2 переименован в /api/di2/dashboard Ильяс Султанов 2026-09-06 19:58:24 +03:00
  • 23ed1ecf3d DI2 внедрение, таск 2: клиентский субапп Data-Insight2 (client-di2) Ильяс Султанов 2026-09-06 19:46:28 +03:00
  • 254950f151 DI2 внедрение, таск 1: серверная интеграция Data-Insight2 (server/finance-di2) Ильяс Султанов 2026-09-06 19:27:43 +03:00
  • a60a75eda0 feat(profile): read-first редизайн страницы пользователя, per-field как в задачах Ильяс Султанов 2026-09-06 18:47:05 +03:00
  • ddc2bd9491 Поля профиля с options.readOnly: запрет редактирования «Оценки» и «Средней оценки» Ильяс Султанов 2026-09-06 15:08:23 +03:00
  • b070f862c5 Sandbox ctx.tasks.setFieldValue: передача formId в createTaskFieldValue Ильяс Султанов 2026-09-06 13:46:39 +03:00
  • 2960879fa9 Sandbox: ctx.tasks.setFieldValue искал несуществующий fieldCode + логирование триггерных автоматизаций Ильяс Султанов 2026-09-06 13:37:44 +03:00
  • 0bde7764b1 MCP create_task: создание исполнителя в task_assignees при assigned_to Ильяс Султанов 2026-09-06 13:10:27 +03:00
  • ec86fa4c11 Рейтинг сотрудников: history-number поле = последняя оценка, среднее за месяц — в поле options.avgFieldCode Ильяс Султанов 2026-09-06 11:55:15 +03:00
  • a7a14d947a Финансы: деревья категорий как в Data-Insight2 — группировка авто/ручные, свёрнуто по умолчанию, полосы сумм, нераспределённые Ильяс Султанов 2026-09-06 09:53:45 +03:00
  • 2d137332da Финансы: дебиторка по умолчанию читает из таблицы prosrochennayadebitorskayazadolzhennost — view vw_debt_active отсутствует во внешней БД Ильяс Султанов 2026-09-06 09:40:56 +03:00
  • 4b34a4bea5 Финансы: мобильная нижняя навигация (Обзор / Разделы / Настройки) вместо боковой панели на телефоне Ильяс Султанов 2026-09-05 17:59:34 +03:00
  • ccfc396d40 CI: NODE_OPTIONS --max-old-space-size=6144 для tsc — googleapis тянет тяжёлые .d.ts, Type check падал с OOM Ильяс Султанов 2026-09-05 15:39:58 +03:00
  • 7a8db03163 Финансы: дебиторка (vw_debt_active), расчёты НДС/налога на прибыль, аудит целостности с автопланировщиком, синхронизация зарплат из Google Sheets, миграция настроек Data-Insight2 Ильяс Султанов 2026-09-05 15:07:36 +03:00
  • d2c993b613 fix: мультивыбор user/роль — мгновенное обновление выбора (галки/чипы) в карточке задачи Ильяс Султанов 2026-09-05 12:33:14 +03:00
  • 005a51e367 fix: MCP update_task_status запускает автоматизации task.status_changed (раньше обходил executeTaskTransition) Ильяс Султанов 2026-09-04 20:32:06 +03:00
  • ba723aa0b7 feat: ctx.users.recalcFieldAverage + документация автопересчёта среднего history-number Ильяс Султанов 2026-09-04 20:14:51 +03:00
  • 6aececeb4a feat: автоматический пересчёт среднего для history-number в sandbox Ильяс Султанов 2026-09-04 20:09:27 +03:00
  • 4d65049e02 feat: рейтинговые автоматизации, мультивыбор user/role-полей, график history-number Ильяс Султанов 2026-09-04 19:39:10 +03:00
  • 013e97c8d3 fix(ui): bulk-панель выделения заменяет тулбар на месте — список больше не сдвигается Ильяс Султанов 2026-09-04 14:42:53 +03:00
  • 49209ddacd fix(chat): убрана длинная подсказка из placeholder поля сообщения в чате задачи Ильяс Султанов 2026-09-04 11:43:23 +03:00
  • 9a1a6f45e0 feat(themes): Тема 2.0 — spacing/density/компоненты в скинах, пресеты layout форм, скин pyrus Ильяс Султанов 2026-09-04 09:31:43 +03:00
  • 67dbf90d65 feat(gps): мосты-предположения по дорогам между GPS-якорями на LBS-участках (OSRM route, пунктир) Ильяс Султанов 2026-08-31 21:30:17 +03:00
  • 08d1fa1af3 fix(gps): бейдж «Нет GPS» = нет валидной GPS-точки дольше N часов (настройка), убран pin от stale-пересылок Ильяс Султанов 2026-08-31 17:36:40 +03:00
  • 0ad9bb8715 fix(gps): убран слой детекции LBS по stale re-send (помечал ~100% точек); is_lbs только по протокольному флагу valid=false + физика Ильяс Султанов 2026-08-31 17:02:56 +03:00
  • cbb659aed7 feat(gps): valid=false от протокола H02 → точка сохраняется как LBS-примерная (не выбрасывается), сигнал потери GPS Ильяс Султанов 2026-08-31 15:13:03 +03:00
  • bec3cc054d feat(gps): траекторный фильтр трека (медианный якорь из 10 точек + lookahead-подтверждение переезда); скорость у выживших LBS-точек с «~» Ильяс Султанов 2026-08-30 20:26:36 +03:00
  • 0386005463 fix(gps): LBS-точки без линий (конец «мяча»), честные поездки без фейковых разрывов, тост OSRM только при реальной недоступности Ильяс Султанов 2026-08-30 12:49:00 +03:00
  • 3f4d35ae83 fix(gps): offroad-фильтр при выдаче — все точки, не только isLbs (легализованный LBS обходил фильтр и ломал OSRM match) Ильяс Султанов 2026-08-29 21:49:58 +03:00
  • 3ff74d0d17 fix(gps): zIndex точек трека над полилиниями + capture-клики; offroad-фильтр LBS при выдаче трека (чистит старый «мяч») Ильяс Султанов 2026-08-29 21:36:55 +03:00
  • a302f0c0ea feat(gps): фильтр «далеко от дороги» в LBS-режиме (offRoadMeters, OSRM nearest); пробег «точно + примерно (по вышкам)» в Маршрутах Ильяс Султанов 2026-08-29 21:12:09 +03:00
  • 9eaff65500 fix(gps): подписи Старт/Финиш не обрезаются; data-gps-marker-id на маркерах — надёжная доставка кликов (панель точки, плейхед) Ильяс Султанов 2026-08-29 20:58:08 +03:00
  • 60bd52b75a feat(gps): режим «потерян GPS» — LBS-точки помечаются (is_lbs), примерная позиция на карте, пунктир в треке; OSRM map matching трека (matched endpoint + переключатель «По дорогам») Ильяс Султанов 2026-08-28 17:22:57 +03:00
  • 5d45084af1 feat(gps): автообновление списка объектов каждые 30 сек (бейдж «Нет GPS» гаснет сам) Ильяс Султанов 2026-08-28 16:09:14 +03:00
  • 6688b49d4b fix(gps): непрозрачная инфо-панель точки трека (bg-card вместо bg-background/95) Ильяс Султанов 2026-08-28 15:13:03 +03:00
  • 1df7b06630 fix(gps): инфо-панель точки трека вместо balloon провайдера (время/скорость/направление + плейхед) Ильяс Султанов 2026-08-28 13:29:11 +03:00
  • 3ea0f8c187 feat(gps): фронт индикатора потери GPS — бейдж «Нет GPS» в объектах, настройка порога в часах Ильяс Султанов 2026-08-28 10:53:34 +03:00
  • 1af4126f7c feat(gps): индикатор потери GPS у объектов (last_gps_fix_at из stale re-send/принятых точек), настройка порога в часах Ильяс Султанов 2026-08-28 10:48:32 +03:00
  • 96e088c890 fix(gps): фильтр несогласованности скоростей против LBS-телепортов; fix: плейхед не закрывает balloon точек трека Ильяс Султанов 2026-08-28 10:33:45 +03:00
  • ac4f89d42e feat(gps): фильтры heartbeat-эхо/valid=false/spike; доступ к GPS и Финансам — матрица на /users (пользователи+роли) Ильяс Султанов 2026-08-26 17:13:49 +03:00
  • 2fb7ad6606 fix(pwa): добавлен interactive-widget=resizes-content в viewport Ильяс Султанов 2026-08-26 15:10:09 +03:00
  • 5e8103a6da fix(push): bump SW to v12, улучшен openOrFocusChat и notificationclick Ильяс Султанов 2026-08-26 14:54:37 +03:00
  • 8a649541fb feat(button): связь parent/child и копирование полей для кнопки создания задачи Ильяс Султанов 2026-08-26 11:24:56 +03:00
  • 8f5789ec28 feat(gps): фокус геозоны на карте, город по умолчанию для всех карт, доступ к GPS по пользователям/ролям (админ) Ильяс Султанов 2026-08-26 10:20:38 +03:00
  • 3e8849019a feat(gps): скорость в км/ч (конверсия узлов Traccar + backfill), деление маршрута на поездки, проигрывание от любой точки, скорости x100-x1000 Ильяс Султанов 2026-08-26 09:24:29 +03:00
  • a4b508f70e fix(gps): гистерезис подтверждения jump-кандидата — latch-up на LBS, реальные переезды принимаются после 3 точек Ильяс Султанов 2026-08-25 18:06:43 +03:00
  • 3d24a15fb3 fix(gps): отсев устаревших копий и LBS-телепортов (stale/jump фильтры), настройка maxJumpSpeedKmh, фильтрация трека при выдаче Ильяс Султанов 2026-08-25 17:49:38 +03:00
  • b635d1e16e feat(gps): last_seen по времени приёма, фильтр джиттера (настройки), линейка, трек по скорости; fix: карта не перекрывает диалоги (isolation) Ильяс Султанов 2026-08-25 17:01:44 +03:00
  • 670cecfe05 feat(gps): список объектов по клику на кластер, стрелки направления на точках трека; fix: хитбокс маркеров (попапы точек трека) Ильяс Султанов 2026-08-25 16:15:02 +03:00
  • 39c70033e3 feat(gps): кластеризация маркеров объектов (ymaps.Clusterer + leaflet.markercluster), точки трека со скоростью в попапах Ильяс Султанов 2026-08-25 15:26:35 +03:00
  • bde9c2a641 feat(gps): левая панель-дерево объектов вместо select'ов; fix(csp): разрешён api-maps.yandex.ru для JS API 2.1 Ильяс Султанов 2026-08-25 14:59:09 +03:00
  • c7aac447bc feat(gps): Яндекс-подложка переведена на JS API 2.1 (v3 без бесплатного тарифа), общий marker-html для обеих подложек Ильяс Султанов 2026-08-25 14:29:47 +03:00
  • 4018ee0f1b feat(gps): SinoTrack ST-901L в справочнике — порт 5013 (H02), проверено на реальном устройстве Ильяс Султанов 2026-08-25 13:51:25 +03:00
  • f6e3e1964c Кнопка На себя у поля Ответственный в TaskDetail и меню дополнительных действий в TaskChat Ильяс Султанов 2026-08-25 10:13:36 +03:00
  • a7cf1b2c97 fix(gps): убран '--' из XML-комментария в traccar.xml.example (SAXParseException) Ильяс Султанов 2026-08-24 22:25:26 +03:00
  • 7fe636b56c feat(gps): вкладка «Инструкции» со справочником настройки трекеров + открыты порты протоколов (Teltonika, GPS103, H02, Suntech) Ильяс Султанов 2026-08-24 22:15:34 +03:00
  • a6a42fdb15 feat(gps): бесплатная подложка OSM с авто-fallback и ручным переключателем провайдера карты Ильяс Султанов 2026-08-24 21:05:22 +03:00
  • 541248b103 chore: traccar.xml вынесен в .gitignore (шаблон traccar.xml.example), forward.type=json Ильяс Султанов 2026-08-24 19:42:26 +03:00
  • 104b3ca422 feat: модуль GPS-мониторинга (карта Яндекс.Карт, Traccar, геозоны, маршруты, группы) Ильяс Султанов 2026-08-24 19:30:11 +03:00
  • c0e2ddd9c8 Исправлено дублирование сообщений в task-чате: защита от двойного Enter/клика по кнопке отправки Ильяс Султанов 2026-08-24 16:53:25 +03:00
  • 8b713e66c0 Исправлено дублирование сообщений в task-чате: защита от двойного Enter/клика по кнопке отправки Ильяс Султанов 2026-08-24 16:50:05 +03:00
  • 422eafd41f Дополнительное ускорение появления просмотренных задач во вкладке Последние: refetchOnMount always и refetch при переключении на recent Ильяс Султанов 2026-08-24 16:35:01 +03:00
  • 709d4cbfa3 Ускорено появление просмотренных задач во вкладке Последние: фоновый refetch всех home-запросов и refetchOnWindowFocus для recent Ильяс Султанов 2026-08-24 16:22:56 +03:00
  • a4eaf65915 Отслеживание просмотров задач: task_views, POST /api/tasks/:id/view и обновление /api/home/recent Ильяс Султанов 2026-08-24 15:40:30 +03:00
  • 74abd8fad5 Исправлен клик по push-уведомлению: открытие задачи/чата из тела, Ответить и Прочитано; controlled-clients + fallback openWindow Ильяс Султанов 2026-08-21 16:03:47 +03:00
  • 5eb98c399a Кнопка create_task открывает CreateTaskDialog вместо несуществующего маршрута Ильяс Султанов 2026-08-21 14:00:39 +03:00
  • e93e39383f Исправлено сохранение настроек кнопки (buttonActionType, buttonUrl, buttonFormId) в bulkSaveFormFields Ильяс Султанов 2026-08-21 11:42:43 +03:00
  • e24df563df Добавлен выбор режима условия для table-полей в переходах: по значению или пользователь из колонки Ильяс Султанов 2026-08-20 15:11:27 +03:00