| 2026-10-10 |

Теплокарта проекта, облако тегов, две колонки, иконка подвала (0.83)
...
- ProjectHeatmap.vue: своя карточка «Активность» в сайдбаре страницы
проекта — та же сетка «как в гитхабе», что в статистике, но по задачам
одного проекта: столбец — неделя, строка — день недели, заливка — по
числу закрытых за день (done_at), в подсказке клетки дата и оба числа
(«закрыто N, создано M»). Периодов два: «За месяц» (5 недель, по
умолчанию) и «За полгода» (26 недель). Запросов к серверу нет: страница
проекта и так держит все свои задачи, включая завершённые. В месячном
режиме ячейки 18px, в полугодовом 9px (26 недель — 284px, влезает в
сайдбар без прокрутки): пятью неделями мелкая сетка терялась бы в
широкой карточке. Легенда шкалы встаёт рядом с сеткой, а когда сетка во
всю ширину — переносится под неё.
- ProjectView: карточка «Теги» — облаком, а не списком: размер шрифта по
ранжиру частоты (0.85–1.2em, число задач — в подсказке), клик ставит тег
в фильтр (тот же поиск по подстроке), повторный клик снимает, активный
тег подсвечен; до 960px список подтягивается к верху экрана — там
сайдбар стоит ниже списка.
- ProjectView: карточки задач раскладываются по две в ряд (до 700px — одна
колонка, как и раньше).
- TaskCard: пункт меню «Переместить в проект» сокращён до «В другой
проект» — длинная надпись рвалась на две строки в китовом меню 220px.
- kit-overrides.css: в подвале карточки снята китовская поправка иконки
(.ph.normalize, top:.15em). Она рассчитана на иконку на общей базовой
линии с текстом, а строка подвала — флекс с align-items:center: коробка
иконки центрируется сама (у иконочного шрифта нет нижнего выноса), и
поправка складывалась с этим центрированием — глиф уезжал вниз на 1.3px
(замер по пикселям: центр глифа ниже центра цифры «2» в «2 недели
назад»). Без поправки низ глифа садится на базовую линию, как у буквы.
Правка самого кита заказана отдельной задачей (vertical-align вместо
position:relative; top — на флекс-элемент он не действует).
- ТЗ 0.83.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
15 hours ago
|

Корешок у карточки проекта, «без активности», перенос задачи в проект (0.82)
...
- ProjectsView/ArchiveView: у карточки проекта левая грань 6px (китовый
--gn-border-width-accent, тот же шаг, что у полосы шапки страницы) и цвета
проекта — того же, что метка у имени и заливка прогресса; у проекта без
цвета грань берёт акцент кита. У карточки задачи рамка осталась ровной 2px:
по одной этой грани видно, что перед тобой папка с задачами, а не сама
задача. Тот же корешок у карточки проекта в архиве и у заготовок списков,
иначе при загрузке карточка дёрнула бы ширину содержимого. Наведение
подкрашивает рамку, но не корешок — цвет грани принадлежит проекту, а не
состоянию карточки.
- ProjectsView: у проекта без задач подвал больше не пустует — вместо
свежести стоит «без активности» (ключ projects.noActivity, три локали).
- kit-overrides.css: полоса прокрутки спрятана у всех табов — правило было
только у фильтра «Списка задач», и на странице проекта табы статуса
оставались с полосой. Прокрутка сохранена.
- TaskCard/TaskMoveDialog: в «⋯»-меню карточки задачи появились «Перейти к
проекту» (нет у задачи без проекта и на странице самого проекта) и
«Переместить в проект». Перенос — модалка с выбором проекта (GnModal +
GnSelect кита, первым пунктом «без проекта», текущий проект выбран по
умолчанию) → PATCH /api/tasks/{id} с project_id: XP и монеты за перенос не
начисляются, успех подтверждается тостом, а списки перечитываются по
событию moved (в «Выдаче» и на странице задачи подписки на task.changed
нет — без события карточка осталась бы в старом проекте).
- ТЗ 0.82.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
16 hours ago
|
Подвал карточки проекта как у задачи, строка подвала по центру (0.81)
...
- ProjectsView: подвал карточки проекта переехал в китовый слот #footer —
раньше это была строка внутри содержимого, без черты; теперь подвал прижат
к низу карточки и отделён чертой во всю ширину, как в карточке задачи.
Скелетон списка повторяет ту же полосу.
- kit-overrides.css: полоса подвала стала общей для карточек задач и проектов
(правила были одни и те же в двух местах). Отступы выровнены: у кита 8px
сверху против 15px снизу — строка висела на 3.5px выше середины полосы;
пустой подвал (проект без задач и без срока) держит высоту строки, иначе
черта у соседей по ряду встала бы на разной высоте.
- ProjectsView: иконки свежести и срока — с китовым классом normalize (глиф
иконочного шрифта садился выше середины строки и читался подвешенным).
- ТЗ 0.81.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
16 hours ago
|

Список задач, карточки и шторка дропдауна на мобильных (0.68–0.77)
...
- Цвета проектов (0.68–0.72): палитра пересобрана с объективным порогом
различимости — 8 базовых тонов × ступени светлоты + 5 нейтральных = 27
клеток, минимальная попарная ΔE76 в CIELAB 12.5 (приглушённые варианты
сливались, чёрный не виден на тёмной панели). Метка проекта — кружок, у
проекта с сайтом — фавикон внутри метки.
- Список задач (0.70–0.74): фильтр по проекту и табы приоритета убраны,
приоритет — переключателем «Приоритетные» с серверной отсечкой
priority_min (7–10; задача без приоритета в отсечку не попадает). Тег
ищется подстрокой имени (параметр tag, icontains с autoescape) с debounce,
ввод — GnCombobox; статус — табы кита с горизонтальной прокруткой. То же
на странице проекта. Фильтры-поля переехали в слот действий шапки.
- Выравнивание фильтров (0.76): кит держит 8px margin-top у input и 15px
margin-bottom у form-group — внутри flex-обёртки они не схлопываются, и
поле стояло на 3.5px выше центра ряда, а крестик сброса (отсчёт от низа
обёртки) уезжал к нижнему краю поля. Отступы внутри фильтра обнулены:
обёртка стала ровно в коробку поля, центры сходятся до пикселя.
- Карточка задачи (0.75–0.76): кликабельна целиком (клик мимо внутренних
ссылок/кнопок и по невыделенному тексту), бейдж проекта — ссылкой.
Свежесть задачи переехала из ряда бейджей в подвал карточки (слот footer,
черта 1px, прижат к низу — в сетке все карточки на одной линии): height
100% содержимого у кита выталкивало подвал, карточка стала flex-колонкой.
Иконка рядом с текстом — с китовым классом normalize.
- Полосы прокрутки (0.76): тонкие, бегунок акцентом, скругление в пилюлю,
прозрачная дорожка — как у полосы меню-дровера кита. Заданы и
scrollbar-width/color, и ::-webkit-scrollbar-*; у дровера приоритетнее
правило кита.
- Шторка дропдауна на мобильных (0.77): до 767px меню — лист снизу во всю
ширину экрана с затемнением и «ручкой», пункты 44px, выезд снизу 0.22s
вместо китового overlay_reveal. Слой затемнения — div вне #app (index.html)
и body:has(.dropdown.is-open): для китового обработчика клик по нему «вне
меню», поэтому тап по затемнению закрывает меню без JS, а JS-кламп
координат на мобильных выключен. Китовый panel_boot оставляет у шапки
transform (содержащий блок для position:fixed) — на мобильных анимация
шапки снята, правило «меню в шапке прижато вправо» тоже оставлено
десктопу. Задача на перенос в кит оформлена отдельно:
gnexus-ui-kit/docs/tasks/gn-dropdown-mobile-sheet.md.
- Кнопка «назад» над шапкой страницы (0.70): показывается, когда в истории
приложения есть предыдущий экран; возврат на экран входа не предлагается.
ТЗ 0.68–0.77; тесты бэкенда 209, ruff/mypy чисто, сборка фронта зелёная.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
19 hours ago
|
| 2026-09-21 |
Пачка UI + Ollama + SSE-реактивность (ТЗ 3.14)
...
- Бейдж приоритета с иконкой (PriorityBadge) во всех видах
- Фильтры страницы проекта запоминаются в localStorage (глубокий watch)
- DurationInput (ч/мин, шаг 5), ConfirmDialog, пагинация, иконки удаления
- Диалоги: «В архив» warning, кнопки поменяны местами
- Автодетализация на Ollama 192.168.1.130 (qwen3.5:2b, think:false)
- SSE /api/events: шина realtime, публикации после коммита, coarse-события + refetch
- Фронт: realtime.ts, удаление поллинга StackView, refetch по видам,
подавление во время drag сада, дедуп XP-тостов
- Тесты 93 passed, e2e двух вкладок; ТЗ 0.24
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
19 days ago
|
| 2026-09-19 |
Иконки во всех бейджах; approve — success; quick-add вертикально
...
- TaskBadges: иконки у всех меток — статус (квадрат/полукруг/галка/
крест/пауза), приоритет (флаг), оценка (таймер), бюджет (монеты),
теги (ярлык); предложение ИИ на стеке — бейджи с иконками
(proposalItems возвращает {icon, label})
- «Да, всё верно» на стеке — success вместо accent
- quick-add: вертикальная компоновка, текстовое поле на всю ширину
(снят max-width:600px у .form-group кита)
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
21 days ago
|
Страница проекта: двухколоночная раскладка, статистика, вход из списка
...
- Список проектов: заголовок карточки — ссылка на /projects/:id
(раньше страница не была достижима), бейдж со счётчиком задач
- Страница проекта: сетка «содержимое + сайдбар» как на странице задачи;
заметка всегда видна (с подсказкой, если пуста), прогресс, фильтры
статус/тег с иконками, карточки задач, дерево проекта
- Сайдбар: статистика (всего/завершено/в работе/к выполнению/просрочено
с подсветкой), параметры, теги проекта с количеством
- Исправлено: GnBadge не имеет пропа icon — иконки везде переложены
в слот (TaskBadges, шапки проектов, теги задачи); несуществующая
иконка ph-list-magnifying-glass заменена на ph-magnifying-glass
- Сниппет карточки задачи больше не показывает сырой markdown
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
21 days 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
21 days ago
|