| 2026-09-21 |
Сад: хват и фидбек при перемещении объектов (ТЗ 0.32)
...
- Хит-зона объекта — клетка с запасом, а не текстура: промахи мышью исключены
- Анимации «взял в руку» (масштаб + тень) и «приземление» (ease-out доводка)
- Подсветка целевой клетки по валидности: зелёная/красная, зеркало правил
бэка (растениям запрещён домик); за краем сада подсветка скрыта
- Недопустимый бросок (мимо сада, на домик) — анимированный возврат на место
без запроса к API; клик без движения больше не ломает состояние твинов
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
8 hours ago
|

Пачка 3 ревью: гонки наград и остатки фронтенда
...
- Гонка дейли: уникальный частичный индекс (source, day) + колонка
coin_events.day; параллельные POST /api/xp/daily отдают granted=False
вместо 500 (IntegrityError ловится молча).
- Гонка ensure_garden (параллельные GET /api/garden): работа в savepoint,
при нарушении уникальности (uq_coin_level, kind+ref_id) — откат и выход;
дубли бонусов уровня и растений исключены.
- Параллельное закрытие: PATCH и MCP update_task берут задачу с FOR UPDATE
OF tasks (Postgres; SQLite игнорирует) — двойных наград/спавнов нет.
- redetail утверждённой задачи — no-op: ai_proposal больше не стирается,
фоновая LLM не будится (worker и так работает только с raw).
- Фронт: ProjectView подписан на SSE (task/project changed/deleted);
SSE-refetch на странице задачи не затирает начатый ввод тега;
просрочка дедлайна считается по локальной дате, а не UTC; бросок
предмета мимо сада игнорируется (не прилипает к краю); пауза refetch'а
сада держится до конца своего move-запроса, а не фиксированные 300 мс.
- Тест: redetail no-op для approved. 110 passed.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
9 hours ago
|
Сад: реальный fullscreen на мобильных — вписывание по меньшей стороне
...
- fullscreen-бокс занимает весь экран (на вертикальном телефоне — всю высоту),
аспект сетки в fullscreen отключается
- рендерер вписывает сад по меньшей стороне и центрирует (базовый сдвиг
отделён от panOffset, учтён в зуме, панораме и клиентских координатах)
- земля/газон рисуются с запасом за края сетки — вокруг поля трава,
а не фон страницы
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
11 hours ago
|
Пачка 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
11 hours ago
|
| 2026-09-20 |
Сад: изометрический домик, тени под объектами, пропорции растений
...
- Домик перестроен в изометрии 2:1 из полигонов (fillPoly/wall): две
видимые стены (свет/тень), скаты, фронтон, труба на дальнем скате,
дверь и окно с отблесками.
- Мягкая овальная тень (SHADOW) под растениями/декорациями и домиком,
ширина подгоняется под текстуру тела (fitShadow).
- Пропорции: ель/дуб/кактус выросли относительно цветов (дерево не
размером с цветок).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|
Сад: пиксель-арт сцена на PixiJS 8 — спрайты из кода, рендерер вне Vue-reactive
...
- PixiJS 8 (WebGL): nearest, roundPixels, нативный пиксель 16px×2 (клетка 32px),
динамический импорт — pixi в async-чанке (main не раздут, PWA в лимитах)
- src/game/pixelart.ts: пиксель-матрицы → canvas → CanvasSource(nearest) с кэшем
- src/game/sprites.ts: тайлы травы/дикой земли/изгороди, домик, 6 видов × 3
стадии растений, декорации, кольца rare/epic, блёстки — без внешних ассетов
- src/game/GardenRenderer.ts: слои terrain/house/items/fx, дифф items по id,
z-sort, drag на канвасе, grow-in/покачивание/блёстки, один тикер
- GardenScene.vue: renderer через shallowRef — deep-reactive-прокси Vue ломал
identity-проверку shared defaultScale в Pixi (TypeError при первом drag)
- ТЗ 0.16: 3.13 дополнен (отрисовка сцены), вопрос 8 закрыт
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
1 day ago
|