Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## [v1.5.0] — 2026-05-06 — Gap Analysis: 10 фичей и улучшений
## [v1.5.0] — 2026-05-06 — Gap Analysis: 11 фичей и улучшений

### Новые возможности

Expand Down Expand Up @@ -60,13 +60,23 @@
- Backend: `PATCH /api/boards/:id/tasks/bulk`, `POST /api/boards/:id/tasks/bulk-delete`
- RBAC: VIEWER получает 403, не-участник — 404

#### Gap-11 — Аккордеон в «Мои задачи» (#145)
- **TaskAccordionPanel** — встроенная read-only панель деталей прямо в строке списка: описание, статус, дедлайн, исполнитель, теги
- Один аккордеон открыт за раз; повторный клик по открытой строке — закрывает
- **URL-синхронизация**: `?open=<taskId>` — состояние восстанавливается при возврате со страницы доски (Browser Back)
- **BoardPage**: кнопка «← Мои задачи» при переходе с `from=my-tasks`
- **Безопасность**: `isSafeAvatarUrl` — разрешён только `https:` для src аватара
- Drawer «Мои задачи» (gap-01) заменён аккордеоном; gap-01 помечен superseded

### Исправления и улучшения

- **Activity feed**: человекочитаемые описания событий вместо технических полей (#135)
- **Скриншот в форме обратной связи**: вложение изображения при отправке (#135)
- **@Упоминания**: синтаксис `@[Имя](userId)` в задачах и комментариях (#135)
- **Колокольчик уведомлений**: дропдаун с превью и форматированием (#135)
- **VIEWER-роль**: добавлена проверка в `reorderTasks` (ранее отсутствовала) (#141)
- **TypeScript** (#144): `emitMentionNotifications` в `tasks.service.ts` — добавлены обязательные поля `workspaceSlug` и `boardSlug`; `MentionTextarea.Props` — `maxLength`, `onKeyDown`, `onFocus`, `onBlur`; `CommentThread.Props` — `commentsTotal`
- **Тесты** (#144): `comments.test.ts` и `workspaces.test.ts` обновлены под paginated-ответ (`{ comments, total }` / `{ events, total }`)

---

Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
- **Подзадачи** — до 5 уровней вложенности (materialized path), drawer drill-down
- **Массовые операции** — выбор задач, batch-изменение статуса/приоритета/исполнителя, массовое удаление
- **Глобальный поиск** — `Cmd+K` командная палитра, поиск задач по заголовку и issueKey
- **Мои задачи — аккордеон** — встроенная панель деталей прямо в списке (описание, статус, дедлайн, исполнитель, теги), синхронизация с URL (`?open=`)
- **Уведомления** — @упоминания в задачах и комментариях, уведомление о назначении, email opt-out
- **История статусов** — сегментные бары изменений в задаче и в дорожной карте
- **Счётчики символов** — в комментариях и пунктах чеклиста с цветовой индикацией
Expand Down Expand Up @@ -203,14 +204,16 @@ flow-tasks/

## Changelog

### v1.5.0 — Gap Analysis: 10 улучшений (2026-05-06)
### v1.5.0 — Gap Analysis: 11 улучшений (2026-05-06)
- **Аккордеон в «Мои задачи»** (gap-11): детали задачи прямо в списке, синхронизация с URL
- **Серверные фильтры** доски (gap-02): assignee/priority/status/label/due
- **Счётчики символов** (gap-06): комментарии и чеклисты, предупреждение при >90%
- **Ограничение вложенности** подзадач 5 уровней (gap-07)
- **Email opt-out + доп. триггеры** уведомлений (gap-08): @упоминания в задачах, назначение исполнителя
- **Глобальный поиск** Cmd+K (gap-09): командная палитра, поиск по задачам
- **Массовые операции** (gap-10): bulk-update статуса/приоритета/исполнителя и bulk-delete до 100 задач
- Исправлен IDOR для labels, валидация assigneeId в workspace, пагинация комментариев
- Исправлены TypeScript-ошибки (`emitMentionNotifications`), обновлены тесты под paginated API

### v1.4.0 — SSO, Security Hardening & E2E CI (2026-05-05)
- SSO через Keycloak и Avanpost (OIDC/PKCE), JIT-провижининг, режим SSO_ONLY
Expand Down
Loading