| 2026-09-20 |
Сущность «документ»: описания и заметки — единый текст с вложениями
...
- Новая таблица documents (owner_type task|project, owner_id, body) —
описания задач и заметки проектов теперь одна сущность; на моделях
полиморфная relationship + свойства description/note (API не меняется).
- Вложения привязаны к документу: attachments.document_id; эндпоинты
/api/documents/{id}/attachments; URL файла /api/attachments/{id}/file
не тронут (зашит в сохранённый markdown и PWA-кэш).
- Миграция d9e8f7c6b5a4: перенос текстов в документы (документ заводится
каждому владельцу), бэкфилл вложений, дроп старых колонок.
- Картинки в заметке проекта: Ctrl+V в инлайн-редакторе, drawer на
странице проекта и в списке проектов.
- MCP: поиск по описанию через join по документу; вложения в _full.
- ТЗ 0.13: модель данных обновлена.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 hours ago
|
Проект: карандаш заметки + правки инлайн-селектов
...
- Заметка проекта: карандаш виден (color:inherit) и стоит справа на линии
заголовка, как на странице задачи.
- GnSelect перекрывает @change своим внутренним onChange — сохранение по
change молча не срабатывало; убран @change="save" из инлайн-селектов
(актуальность и приоритет проекта, приоритет задачи), сохранение — по ✓.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
19 hours ago
|
Вставка картинок в описание: в позицию курсора + просмотр на весь экран
...
- MdEditor сам обрабатывает Ctrl+V с картинками: файл грузится колбэком
uploadImages, markdown-ссылка вставляется в позицию курсора textarea,
миниатюры вставленного показываются под полем (клик — лайтбокс).
- Новый MdLightbox: полноэкранный просмотр картинки (клик по фону,
крестик или Esc закрывает); подключён к отображению описания задачи
(клик по img в md-view) и заметки проекта, а также к предпросмотру
редактора.
- TaskForm: paste-логика перенесена в MdEditor (колбэк uploadImages).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
19 hours ago
|
Блок подзадач: кнопка справа, список отделён отступом
...
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
19 hours ago
|
Карандаш описания: margin-top -23px
...
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
19 hours ago
|
Правки страницы задачи: карандаш описания и малая кнопка статуса
...
- Карандаш описания: тёмный цвет в тон заголовку карточки, прижат
к правому краю линии «Описание».
- «Изменить статус»: большая кнопка заменена на маленькую иконку
(GnIconButton с карандашом), dropdown-меню прежнее.
- Инлайн-правка заголовка: .inline-field/.inline-editing на всю ширину
шапки, поле растягивается, кнопки ✓/✗ рядом.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
19 hours ago
|
Фикс стилизации инлайн-редакторов: GnInput вместо bare-инпутов
...
В ките GnInput bare рендерит input вообще без класса (стили кита живут
в селекторе .form-group .label .input), поэтому инлайн-редакторы были
голыми браузерными полями. Теперь инлайн использует GnInput/GnSelect
с полной обёрткой кита; в строках параметров и шапке поле ужато
(:deep-переопределения размеров, отступы формы убраны), классы width
вешаются на сам input, т.к. attrs-класс не попадает на обёртку.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
19 hours ago
|
Инлайн-редактирование полей на страницах задачи и проекта
...
- Новый компонент InlineField: враппер «показ ↔ редактор» с кнопками ✓/✗,
Esc = отмена, throw из save() оставляет редактор открытым.
- Страница задачи: заголовок правится кликом в шапке, описание — по
карандашу (MdEditor без подписи), в «Параметрах» все 8 строк видны
всегда; приоритет, оценка, фактически, деньги (бюджет+оценка одним
PATCH) и дедлайн (дата+период, взаимоисключающие) правятся инлайн.
- Страница проекта: инлайн для названия, заметки, актуальности, приоритета.
- MdEditor: caption='' скрывает подпись, undefined — стандартная.
- Локали: common.notSet, task.editTitle/editDescription,
task.deadlineConflict, projectPage.editNote.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
19 hours ago
|
«Я сам» больше не открывает форму правки
...
Кнопка просто отменяет помощь ИИ: утвердить задачу без применения
предложения (apply_proposal=false) — без принудительного перехода
в форму правки.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
20 hours ago
|
Кнопка «Я сам» в карточке предложения ИИ
...
Утверждает задачу без применения предложения (apply_proposal=false)
и сразу открывает форму правки — детали пользователь заполняет сам.
ru/en/uk: task.proposalMyself.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
20 hours ago
|
Баг: переход подзадача → родитель не обновлял данные страницы
...
/vue-router переиспользует инстанс TaskView при переходе между
/tasks/:id — onMounted не срабатывает, экран оставался на старой
задаче. Данные теперь перезагружаются по watch(taskId); заодно
сбрасывается режим правки. Та же защита добавлена в ProjectView.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
20 hours ago
|
feat: метка «ментально сложная» — кнопка «Не хочется делать» + геймификация
...
- Task.mentally_hard (миграция c8f7e6d5b4a3) + поле в TaskUpdate/TaskOut
- compute_task_xp: +10 WILLPOWER_BONUS за закрытие «ментально сложной»
- заголовок X-Mentally-Hard при закрытии; +2 теста (66 зелёных)
- TaskView: warning-кнопка-переключатель в карточке статуса (скрыта у done)
- TaskBadges: warning-бейдж «ментально сложная»
- празднование: «+N XP • сила воли», золотое конфетти всегда, фраза в тосте
- сад: ачивка «Преодоление» 5/25/50; справка сада и локали ru/en/uk обновлены
- ТЗ 0.12: пункт про метку в 3.13
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
21 hours ago
|
feat: геймификация — XP, уровни, сад и ачивки (ТЗ 0.8, п. 3.13)
...
Награда за закрытие задачи, принцип «только позитив» (без стриков и сгорания):
- XP = 10 база + бонус за приоритет (0–15) + бонус за оценку времени (0–15),
один раз на задачу (xp_events, UniqueConstraint); удаление задачи не отнимает
- PATCH /api/tasks/{id} при первом закрытии ставит заголовок X-Earned-XP,
фронт ловит его и празднует: конфетти + тост «+N XP» с похвалой
- GET /api/xp — сводка (total_xp, уровень, прогресс)
- Сад (/garden): растение за каждую закрытую задачу + уровень + ачивки-вехи
(1/10/50 задач, уровни 5/10, регулярная, закрытый проект) с прогрессом
- celebrateEarned() в TaskView/ListView/ProjectView/OptionsView; локали ru/en/uk
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
feat(frontend): переименование в GNexus Tasks, тайтлы страниц
...
- Сервис «gntodo» → «GNexus Tasks»: brand топбара, kicker шапок видов,
subtitle навигации (ru/en/uk), index.html, PWA-манифест (short_name Tasks)
- taskui: APP_NAME + setPageTitle(); тайтлы через meta.title роутов
(afterEach в main.ts) — «{страница} — GNexus Tasks»
- TaskView/ProjectView уточняют тайтл после загрузки (watchEffect):
заголовок задачи / имя проекта
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
| 2026-09-19 |
Иконки заголовков карточек — ещё темнее (#3b4261)
...
Заодно убраны scoped-дубли .card-title-icon в TaskView/ProjectView
(var(--accent) перебивал глобальный тёмный цвет)
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Страница задачи: чипы-переходы на родителя и проект
...
- Подзадача: чип «↰ родитель» в шапке ведёт на родительскую задачу
- Задача с проектом: чип «📁 проект» ведёт на страницу проекта
(дублирующий некликабельный бейдж проекта из строки бейджей убран)
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Убираем дерево задач; иконки заголовков — тёмные
...
- Удалены TreeView (роут /tree и пункт навигации) и TaskTree;
переключатель «Список | Дерево» на странице проекта убран —
остаётся список карточек
- В локалях почищены мёртвые ключи дерева (nav.tree, viewList/
viewTree, tree.* кроме addSubtask/promptSubtask)
- Иконки в заголовках карточек — тёмный #565f89 вместо фиолетового
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Добавление задач — полная форма; подзадачи карточками
...
- TaskForm умеет создавать: проп task опционален, дефолты из
projectId/parentId (create + PATCH, тост «Создано — попала в стек»)
- Подзадача на странице задачи — полная форма в drawer (было
окно-промпт одной строкой)
- Новая задача из проекта — полная форма в drawer
- В стеке кнопка «Новая задача» (шапка) открывает полную форму;
quick-add одной строкой остаётся как опция
- Подзадачи на странице задачи — классические карточки TaskCard
(заголовок-ссылка, сниппет, бейджи, меню) вместо дерева
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
UX-пачка: заметка проекта через MdEditor, троеточие, фиксы шапки
...
- Заметка проекта в drawer'е — тот же MdEditor с тулбаром, что у
описания задачи (новый проп caption; предпросмотр-чекбоксы убраны)
- Кнопка «Действия» в шапке задачи — иконка-троеточие (ph-dots-three)
- «Изменить статус» — маленькая кнопка (size sm)
- Дропдаун шапки не обрезается: overflow:visible у .page-header
(+ декоративная скан-полоска ::after скрыта — с visible overflow
вылезает за рамку); меню прижато к правому краю; z-index шапки
поднят — transform из panel_boot кита делал карточки поверх меню
- Иконки в заголовках карточек — фиолетовый #bb9af7 (сливались)
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Задача и проект: UX-пачка из 7 правок
...
- Действия задачи (статусы/правка/переспрос/подзадача/удаление) —
в дропдаун-меню «Действия» в шапке вместо тулбара
- Карточка «Статус» в сайдбаре: бейдж статуса + явная кнопка
«Изменить статус»
- Понятная шкала приоритета: 5 градаций с цветом (очень низкий/
низкий/средний/высокий/срочно) вместо P0–P10 — в карточках,
на страницах задачи и проекта, в формах
- Быстрое добавление тега прямо в карточке «Теги» (GnTagInput,
новое имя создаёт тег в каталоге)
- «Добавить подзадачу» создаёт полноценную задачу с parent_id
(тост-подтверждение; подзадача сразу видна в дереве)
- Фильтры страницы проекта переоформлены: подписанные селекты
со сбросом
- Список/дерево проекта — переключатель вида (GnTabs) вместо
двух секций подряд
Шкала приоритета: grade в UI, число 0–10 в БД; ProjectsView —
drawer переведён на градации.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Страница проекта: двухколоночная раскладка, статистика, вход из списка
...
- Список проектов: заголовок карточки — ссылка на /projects/:id
(раньше страница не была достижима), бейдж со счётчиком задач
- Страница проекта: сетка «содержимое + сайдбар» как на странице задачи;
заметка всегда видна (с подсказкой, если пуста), прогресс, фильтры
статус/тег с иконками, карточки задач, дерево проекта
- Сайдбар: статистика (всего/завершено/в работе/к выполнению/просрочено
с подсветкой), параметры, теги проекта с количеством
- Исправлено: GnBadge не имеет пропа icon — иконки везде переложены
в слот (TaskBadges, шапки проектов, теги задачи); несуществующая
иконка ph-list-magnifying-glass заменена на ph-magnifying-glass
- Сниппет карточки задачи больше не показывает сырой markdown
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Страница задачи: двухколоночная раскладка, вся информация открыта
...
- Сетка «содержимое + сайдбар параметров» на широком экране, одна
колонка на мобильном
- Предложение ИИ — построчно с иконками (теги/проект/приоритет/оценка)
вместо сжатых бейджей; «Да, всё верно» — success, добавлен
«Переспросить ИИ» рядом
- Сайдбар: параметры (тип, приоритет, время, факт, деньги, дедлайн
с подсветкой просрочки), теги, даты (создана/утверждена/завершена)
- Вложения — крупные превью сеткой с именами файлов
- Иконки в заголовках карточек и в каждой строке параметров
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
feat(frontend): страницы задачи и проекта, карточки, наглядное дерево
...
- /tasks/:id — полная страница задачи: просмотр/редактирование (TaskForm),
статусы, предложение ИИ, описание md + вложения, параметры, подзадачи
- /projects/:id — страница проекта: заметка, прогресс, задачи с фильтрами,
дерево проекта, создание задачи в проект (create + PATCH project_id)
- общие компоненты: TaskForm (вынесена из drawer'а стека), TaskCard
(заголовок-ссылка, сниппет, меню), TaskTree (шевроны, линии связей,
прогресс поддерева)
- стек: drawer на TaskForm, quick-add — многострочное поле (Enter — закинуть)
- .app-content 1200px, ключи i18n task.*/projectPage.*, ru/en/uk
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|