| 2026-10-09 |

Сад отключён (0.58): страница «Достижения» вместо сада
...
Сад не готов к использованию, а сервис разрастается — убрали его из
интерфейса и сосредоточились на основном функционале. Код сада,
модель GardenItem, coin_events и rarity у xp_events сохранены: сад
вернётся для доработки.
- Выдача растений прекращается сама: GardenItem создавался лениво в
ensure_garden(), которую звал только GET /api/garden, — UI его
больше не запрашивает.
- Прогресс и ачивки переехали на новую страницу /achievements (пункт
меню на месте «Сада»); /garden редиректит туда же.
- Блок ачивок вынесен в общий components/AchievementsPanel.vue —
им пользуются и «Достижения», и сад (для возврата).
- Баланс монет отдаёт GET /api/xp (coins) — единственная правка
бэкенда; паритет с /api/garden покрыт тестом.
- Тост закрытия — «+N XP • +N монет» с похвалой, без слов про
растение; золотое конфетти за xp >= 25 и «не хочется делать».
- Тексты прогресса — в общем неймспейсе progress.*, сад-специфичные
остались под garden.*.
- ТЗ 0.58: пункт «Сад отключён» с причиной, детальное описание сада
оставлено историческим блоком.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Лого и иконки — знак на 10% меньше в холсте (0.57)
...
scale(.9) вокруг центра знака (32, 32.5): строки занимают ~56% холста
(36×35, поля ~14) вместо 62.5% — у холста появился воздух, как у creds.
PNG перегенерированы tools/rasterize_icons.sh, ZIP перепакован, фронт
пересобран.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Лого и иконки — холст со скруглёнными краями (0.56)
...
Приём gnexus-creds: знак не «голым», а на холсте 64×64 со скруглёнными
краями (rx 10, заливка страницы). logo.svg и favicon icon.svg — один файл,
как у creds; PNG (PWA 192/512/maskable, расширение 16/32/48/128) теперь
растеризуются скриптом tools/rasterize_icons.sh из logo.svg, фон впечатан
(прозрачность iOS рисует чёрным). maskable — холст 80% кадра.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Экран входа — карточка кита (0.55)
...
Как на экране входа gnexus-creds: GnCard 460px по центру вместо голой
колонки, содержимое — своя колонка-обёртка (внутренности .card-content
кита не трогаем). Пока /auth/me не ответил, в карточке лого и лоадер —
кнопка не вспыхивает перед редиректом уже залогиненного.
Кнопка на узком экране (<=420px) уменьшена: «ВОЙТИ ЧЕРЕЗ GNEXUS»
переносилась на две строки.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Лого и иконки — знак «стек входящих» (0.54)
...
Бренд-чип кита заменён на знак «три строки задач»: синий маркер — в работе,
зелёный — закрытая, прочие строки приглушены. Без рамки и буквы, поэтому
работает и в шапке (навигационная оболочка, экран входа, попап расширения),
и как favicon/PWA-иконка.
- frontend/public/logo.svg, icons/icon.svg + PNG 192/512/maskable
- extension/public/logo.svg + icons 16/32/48/128, ZIP перепакован
- viewBox подрезан по глифу (11 11.5 42 42): в сетке 64 глиф занимает
12..52 × 13..52, иначе знак выглядел на треть мельче прежнего чипа
- .gitignore: *.local.html (страницы-превью вариантов)
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
| 2026-09-30 |
Паста изображений в описании при создании задачи/заметки
...
Вложения привязаны к документу, а он создаётся лениво при сохранении —
в форме создания задачи паста молча ничего не делала. Теперь файлы
держатся локально, в поле blob-плейсхолдер с живым превью, после
создания они грузятся к документу и ссылки заменяются настоящими
(PATCH описания). MdEditor получает imageHref для URL заглушки.
В заметке проекта без документа он материализуется текущей заметкой.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
10 days ago
|
Лого и иконки — бренд-чип кита 1.0.0 (0.52)
...
logo.svg/icon.svg и все PNG (PWA 192/512, maskable, иконки расширения)
перерисованы в язык кита: панель, 2px бордер, 6px левая кромка accent,
скругление — глиф «промпт + чек» прежний. Бренд-марка попапа — само лого
вместо phosphor-иконки в CSS-рамке.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
10 days ago
|
Попап: черновик форм переживает закрытие (0.51)
...
Транзиентное окно (клик мимо, Win+Space) убивает несохранённый ввод —
текст, проект, вкладка и настройка адреса/токена пишутся в
chrome.storage.local и восстанавливаются при следующем открытии.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
10 days ago
|
Попап расширения — под язык кита 1.0.0
...
Токены --gn-* вместо хардкода цветов; шапка: бренд-чип с кромкой
кита и 2px-подчёркивание, на экране подключения бренд-блок вместо
дублирующей шапки; строки «В работе» — мини-карточки (2px бордер,
радиус 3px, ховер синим); тест-оверрайд тоста убран — тосты кита
с 1.0.0 сплошные с цветной кромкой.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
10 days ago
|
ТЗ 0.50: визуальный стиль и кастомные компоненты (§3.19) — кит 1.0.0, единый язык рамок
...
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
10 days ago
|
Сырые кастомные блоки — под визуальный язык кита 1.0.0
...
Дерево уровней, маркет, ачивки, график/heatmap статистики, инвентарь и
оверлеи сцены, полнотекстовые превью/миниатюры, tags-fieldset: бордеры
2px var(--gn-border-color-muted) вместо 1px, радиусы 6px (панели) и
3px (инсеты/контролы), поверхностные подложки поверх --gn-surface-panel.
Иконки в заголовках карточек — в цвете заголовка (было тёмные).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
10 days ago
|
Кит gnexus-ui-kit: обновление 0.4.0 → 1.0.0
...
35 коммитов кита: лёгкие радиусы/плотность, переработанные тосты,
новые темы (Verdant/Ember/Mono) и --gn-* токены дизайна. Селекторы,
на которые завязаны наши kit-overrides и popup.css, не переименованы;
сборки фронта и расширения зелёные, визуальный прогон пройден.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
10 days ago
|
| 2026-09-23 |
Ачивки: описание условия по клику (GnPopover)
...
Карточка-ачивка в саду — триггер GnPopover кита: клик открывает панель
с кратким описанием условия (garden.achHint, ru/en/uk). Тултип по hover
не годится — не работает на тач-экранах; карточка стала button-триггером
и тянется на всю колонку грида. ТЗ 0.49 (§3.13).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Ребаланс сада: монеты ×2 за закрытие, микронаграды и бонус уровня ×2
...
- Монеты за закрытие: xp целиком вместо floor(xp/2)
- Микронаграды: создание задачи 1 → 2, проекта 2 → 4
- Бонус за уровень: 25·L → 50·L; ежедневная не менялась (50)
- Заголовки X-Created-* теперь из констант (были захардкожены и
разошлись бы с новыми значениями)
Цены (семена, апгрейды, декор, расширения) не тронуты. ТЗ 0.48 (§3.13).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
| 2026-09-22 |
iOS Safari: типовые проблемы iPhone-версии
...
- 16px на полях/селектах/поле тегов на touch (media hover:none, pointer:coarse) —
иначе iOS зумит страницу при фокусе и зум застревает
- 100dvh у drawer'ов/меню/модалок (100vh в iOS выше видимой области — низ
уезжал под панель браузера), фолбэк 100vh остаётся
- safe-area (viewport-fit=cover): тосты, drawer-body, топбар и refresh-лоадер
отступают от индикатора «домой» и статус-бара
- apple-mobile-web-app-* меты: standalone до iOS 16.4, black-translucent
статус-бар, тайтл
- тап-подсветка WebKit отключена; кнопка fullscreen сада скрыта там, где
requestFullscreen нет (iPhone Safari умеет только video)
ТЗ 0.47 (§3.15).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Детализация: выброшенные из заголовка детали не теряются
...
Промпт (ru/en) требует переносить убранное из заголовка (условия, числа,
уточнения) в описание, few-shot пример теперь учит переносу (description
не null). Страховка от нарушения правила маленькими моделями: если заголовок
сокращён, описания нет, а содержательные слова/числа исходника пропали —
исходный заголовок целиком кладётся в описание (при заполненном пользователем
описании не срабатывает). ТЗ 0.46 (§3.2).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
MCP: управление проектами — создание, обновление, архив/восстановление
...
Тулы create_project (микронаграда + фоновая суммаризация заметки),
update_project (имя/заметка/relevance_status/приоритет) и
archive_project/restore_project — архив вместо безвозвратного удаления:
задачи и история переживают архив, вызовы идемпотентны, delete-тула
в MCP нет намеренно. ТЗ 0.45 (§3.10).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Кнопка «Добавить» в попапе: icon-проп вместо слотового <i>
...
GnButton вешает with-icon (иконка в левой полосе) только на icon-проп;
слотовая иконка рендерилась вне раскладки кита. Заодно busy — через
:loading (спиннер кита).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Попап расширения на компонентах кита + список только «В работе»
...
GnInput/GnTextarea/GnSelect вместо сырых полей (тёмные стили кита живут
в .form-group), GnTabs вместо самодельных вкладок, GnBadge у проекта
и тегов, лоадер по центру; тосты кита перекрывали сплошной фон тинтом
rgba(…,.18) — в попапе фон приведён к #1f2335. Вкладка «В работе» —
только in_progress (ТЗ 0.44).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
ТЗ 0.43: страница-инструкция расширения (§3.18)
...
Меню только в веб-версии (скрыто в PWA), ZIP раздаётся статикой фронта.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Docker: ZIP расширения собирается в образе фронта
...
Контекст сборки web — корень репо (+.dockerignore): стадия extension
после фронта, zip dist раздаётся статикой nginx по /extension/…
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Страница-инструкция расширения: /extension в меню веб-версии
...
Скачивание ZIP (extension pack → статика фронта), шаги загрузки unpacked
и подключения MCP-токена; из установленного PWA пункт меню скрыт
(display-mode: standalone), по прямому адресу — пояснение.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
ТЗ 0.42: браузерное расширение быстрого захвата (§3.18)
...
Две вкладки («Добавить»/«Активные» — просмотр), аутентификация Bearer
MCP-токеном, настраиваемый базовый URL; кросс-ссылка в §3.10.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Расширение быстрого захвата: попап «Добавить/Активные» на Bearer MCP-токене
...
Chrome/Firefox MV3, vite-сборка с Vue + gnexus-ui-kit. Сессионная кука из
extension-контекста не уходит (SameSite=Lax) — REST /api/* ходит с Bearer
MCP-токеном; базовый URL настраиваемый, «Активные» — только просмотр.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Bearer MCP-токен на REST /api/*: аутентификация расширения и агентов
...
Сессионная кука (SameSite=Lax) не уходит из extension-контекста —
расширение ходит с Bearer-токеном из «Настроек → Токены MCP»;
require_user и /auth/me фоллбэкаются на него при пустой сессии.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Карточка тегов на странице проекта: максимум 400px, внутри скролл
...
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Подсказка про README — у заметки проекта, не у задачи
...
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Карточка тегов на странице задачи: максимум 400px, внутри скролл
...
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Подсказка: описание можно заполнить ссылкой на публичный репозиторий
...
В подписи редактора при создании задачи и на странице задачи
(пустое описание, инлайн-правка) — «вставьте ссылку на публичный
репозиторий — вместо описания подтянется README». Локали ×3, ТЗ 0.41.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|
Линки маркдауна — в новой вкладке (PWA не ловит навигацию)
...
renderMarkdown добавляет <a target="_blank" rel="noopener">: описание
задачи, заметка проекта, README и превью MdEditor — все ссылки
открываются во внешность, standalone-PWA окно не уводят.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
18 days ago
|