Releases: NovakPAai/flow-tasks
v1.6.0 — Security Hardening: gaps 12–21
Что нового
Security Hardening — 10 gap-закрытий по результатам ИБ-аудита.
Gap-12 — WorkspaceSettingsPage ghost-lock fix
- Страница настроек больше не показывает «Нет доступа» владельцам во время загрузки
- Fallback на кешированную роль из workspace list до завершения запроса
Gap-13 — SSO MFA enforcement (AMR claim)
- Проверка
amr[]при SSO-входе: требуетсяtotp/mfaв id_token - Grace period 7 дней (
MFA_GRACE_DAYS), confirm-модал при отключении MFA - AuditLog:
mfa.setup.complete,mfa.disable
Gap-14 — Rate-limit IP bypass
- Лимит ключуется по email, а не по IP — ротация X-Forwarded-For больше не обходит защиту
Gap-15 — Email enumeration prevention
- POST /api/auth/register возвращает одинаковый ответ для всех случаев
- hashPassword выполняется всегда (защита от timing side-channel)
Gap-16 — Account disabled check
- JWT middleware проверяет
isActiveна каждый запрос → 403 ACCOUNT_DISABLED
Gap-17 — SIEM mandatory fields
- Все AuditLog-события содержат
meta.tags: ['flowtasks', type, 'iia', 'production', 'dc1']
Gap-18 — Role change audit
rbac.role.changeпри изменении роли участника воркспейса
Gap-19 — API key audit
auth.apikey.use/auth.apikey.failпри аутентификации по API-ключу
Gap-20 — Config change audit
admin.config.changeпри изменении настроек через панель суперадмина
Gap-21 — Validation error audit
validation.errorдля обнаружения зондирования через аномальные запросы
v1.5.0 — Gap Analysis: 11 улучшений
FlowTask — v1.5.0
2026-05-06
Что нового:
• [Новое] Аккордеон в «Мои задачи» (#145): TaskAccordionPanel с деталями задачи прямо в строке списка (описание, статус, дедлайн, исполнитель, теги); один открыт за раз; URL-синхронизация ?open=; кнопка «← Мои задачи» на доске
• [Новое] Массовые операции (#141): множественный выбор в Kanban и List View, BulkActionBar, bulk-update статуса/приоритета/исполнителя и bulk-delete до 100 задач; каскадное удаление подзадач
• [Новое] Глобальный поиск Cmd+K (#140): CommandPalette по Cmd+K / Ctrl+K, поиск по заголовку и issueKey, дебаунс 300ms, rate-limit 30/min
• [Новое] Триггеры уведомлений + email opt-out (#139): @упоминания в описании задачи, уведомление о назначении исполнителя, кнопка opt-out в профиле
• [Новое] Ограничение вложенности подзадач до 5 уровней (#138): backend 400 при превышении, frontend отключает кнопку с тултипом
• [Новое] Счётчики символов (#137): комментарии (лимит 10 000) и пункты чеклиста (лимит 500); жёлтый >90%, красный — лимит
• [Новое] Серверные фильтры доски (#133): assigneeId, priority, statusId, labelId, dueBefore/dueAfter; параметры синхронизируются с URL
• [Новое] Пагинация (#135): курсорная пагинация комментариев (кнопка «Загрузить ещё»), пагинация задач в List View
• [Новое] Валидация assigneeId (#134): исполнитель обязан быть участником воркспейса; backend возвращает 400
• [Исправление] Labels IDOR (#128): прикрепление метки проверяет принадлежность задачи воркспейсу и членство пользователя
• [Исправление] TypeScript (#144): emitMentionNotifications в tasks.service — добавлены workspaceSlug и boardSlug; MentionTextarea.Props — maxLength, onKeyDown, onFocus, onBlur; тесты комментариев и истории под paginated-ответ
• [Улучшение] Activity feed: человекочитаемые описания событий; @упоминания синтаксис @Имя; колокольчик уведомлений с дропдауном и превью
v1.4.0 — SSO, Security Hardening & E2E CI
FlowTask — v1.4.0
2026-05-05
Что нового:
• [Новое] SSO — Keycloak и Avanpost (#121): аутентификация через OIDC/PKCE, JIT-провижининг (автосоздание пользователя при первом входе), режим SSO_ONLY (отключает логин по паролю), маппинг claims (имя, email, аватар)
• [Новое] Security Hardening — 8 этапов (#120): API-ключи и токены сброса пароля хранятся только как SHA-256-хэш; атомарное LRU-вытеснение сессий (MAX_SESSIONS=5); rate-limit на Redis sliding window с graceful degradation; structured logger с redact PII; audit log (модель AuditLog, эндпоинт GET /api/admin/audit-log)
• [Новое] Email-провайдер (#120): nodemailer SMTP для сброса пароля; graceful degradation если SMTP не настроен
• [Новое] CI/CD (#120): vitest coverage с порогами (lines 60%, branches 50%, functions 60%); E2E job в CI на PR и main; RBAC static check — блокирует CI при отсутствии authenticate на роутере
• [Исправление] Диалог редактирования колонок (#122): ширина 75vw вместо фиксированных 640px
• [Исправление] StrictMode double-loadUser (#123): useRef-гард предотвращает двойной refreshToken() в React StrictMode — устраняет редиректы на /login
• [Исправление] Lint (#118): устранены все ESLint-предупреждения; FilterState перенесена в types/index.ts
• [Исправление] Мобильная вёрстка (#117): скелетон-грид, дублирующиеся Cache-Control, idle session timeout
v1.3.0 — Mobile UX & Admin improvements
Что нового
Mobile UX (#101, #102, #103)
- FeedbackFAB — плавающая кнопка обратной связи теперь на всех страницах (включая login/reset), только для авторизованных пользователей
- Landscape-режим — компактный топбар 40px на iPhone в горизонтальной ориентации, корректная обработка notch (safe-area-inset),
viewport-fit=cover - AdminUsers таблица — горизонтальный скролл на мобиле, hover-подсветка через React state
Security & Quality
- z-index FAB снижен с 1000 до 300 (не перекрывает модалки Ant Design)
svg aria-hidden="true"для доступности- Типизация тестов:
vi.mockedвместо небезопасного cast
Предыдущие релизы
v1.2.0 — Roadmaps & Subtasks (2026-04-25)
- RoadmapView с зумом (неделя / месяц / квартал), раскрывашки подзадач, overdue-хвост
- SubtaskDrawer drill-down
- История статусов — сегментные бары
- Workspace Dashboard + Roadmaps Hub
v1.1.0 — Spaces & Polish (2026-04-20)
- Приватные воркспейсы и доски
- API Keys в профиле
- Adaptive layout 3-tier
v1.0.0 — UI Kit 2.0 (2026-04-11)
- Dual theme (dark/light), нулевые Ant Design компоненты
v1.0.0 — UI Kit 2.0: zero Ant Design, dual theme
UI Kit 2.0 — Custom Design System
Ant Design layout is gone. Every UI component — AppLayout, Sidebar, Topbar, cards, inputs — was rebuilt from scratch with Paper design tokens.
What's new
- Custom component library — zero Ant Design layout; only
antd/messagekept for notifications - Dual theme — proper dark and light mode via CSS custom properties, toggle in the topbar
- Space Grotesk — new typeface across the entire app
- Cosmic login page — SVG illustration, clean dual-theme splash
Why this matters
The previous UI was visually inconsistent and hard to theme. Now there's a single design token layer that controls everything — changing the look takes one CSS variable, not 40 overrides.
v0.9.0 — Phase 8: Deploy infrastructure
Phase 8 — Deploy Infrastructure
The app is now running in production and staying there.
PM2 keeps it alive, nginx handles the traffic, GitHub Actions ships every merge to main automatically.
New features
- PM2 — process management with auto-restart on crash, startup scripts, log rotation
- nginx — reverse proxy, SSL termination, static asset serving; the right tool in front of Node
- GitHub Actions CI/CD — lint → test → build → SSH deploy → restart; one merged PR, one deploy
- Environment management —
.envfiles per environment (dev / staging / prod), secrets injected via GitHub Secrets; no credentials in the repo
Before / after
Before: ssh server && pm2 restart app after every change.
After: merge the PR, go get coffee.
v0.8.0 — Phase 7: SubtaskTree + Onboarding
Phase 7 — SubtaskTree + Onboarding
Big tasks need to break down. And new users need a hand.
Subtasks are now a proper tree — recursive nesting, collapsible, visible in the task detail. And new users get a spotlight walkthrough that shows them exactly where to look.
New features
- Subtask tree — recursive nesting, collapse/expand per level, full tree view in the task drawer; a parent task shows completion based on its children
- WorkspaceHistory — a sidebar panel showing recently visited issues and boards per workspace; pick up where you left off
- Spotlight onboarding — step-by-step overlay that highlights the actual UI element you need to interact with; not a video, not a modal wall — just "click here, then here"
v0.7.0 — Phase 6: WorkflowEditor + DnD
Phase 6 — WorkflowEditor + DnD improvements
Now you can see and edit your workflow visually, not just configure it through API payloads.
Also: drag-and-drop stops randomly breaking.
New features
- WorkflowEditor — drag status columns to reorder them, add and remove statuses, set which transitions are allowed — all in a visual editor, no code required
- Settings tabs — General / Members / Workflows / Danger zone; clean separation, nothing buried
- DnD — cross-column task dragging stabilized; optimistic updates applied so the UI doesn't flicker while the server confirms
v0.6.0 — Phase 5: AppLayout + Workspace Settings
Phase 5 — AppLayout + Workspace Settings + Task History
The app now has a real shell: persistent sidebar, proper topbar, breadcrumbs that actually tell you where you are.
Plus workspace settings you can actually change, and a history log so nothing disappears into thin air.
New features
- AppLayout — persistent sidebar navigation, responsive topbar, breadcrumb trail; the skeleton the whole UI now hangs on
- Workspace settings — manage members, assign roles, configure workflow access, edit workspace metadata — all without digging through a modal
- Task history — every field change is logged with who changed it and when; "who moved this to Done at 2am?" is now answerable
v0.5.0 — Phase 4: Labels, Comments, Checklists
Phase 4 — Labels, Comments, Checklists, Filters
The features that turn a task tracker into a collaboration tool.
Labels for categorisation, comments for discussion, checklists for the granular stuff, and a FilterBar so you can actually find what you need.
New features
- Labels — color-coded tags, multi-label per task, workspace-level label library; consistent taxonomy across the whole workspace
- Comments — threaded comments on tasks with timestamps and author; mention anyone with @
- Checklists — sub-item lists inside tasks with a progress bar; great for QA steps and acceptance criteria
- FilterBar — filter by assignee, label, priority, due date, status; filters stack