feat: add agent tasks and update documentation

- Create 7 new task files (TASK-0001 through TASK-0007)
- Add task template file for future use
- Update Agent.md with project information
- Update TASK.md with task tracking
This commit is contained in:
2026-05-27 03:36:25 +07:00
parent b980566288
commit 6c46b3043a
10 changed files with 320 additions and 7 deletions
+38
View File
@@ -0,0 +1,38 @@
# TASK-0005: SplashState, LoadState и прогресс
## Цель
Реализовать splash и loading состояния с настоящей отменой async-операций и реактивным прогрессом через UniRx.
## Что сделать
- Реализовать `SplashState`.
- В `SplashState.EnterAsync` показать splash View и подождать 1 секунду через `UniTask.Delay(..., cancellationToken: ct)`.
- В `SplashState.ExitAsync` скрыть или release-нуть splash View.
- Реализовать `LoadState`.
- В `LoadState` создать реактивный прогресс от `0` до `1` через UniRx.
- Наружу отдавать progress как read-only значение или read-only интерфейс.
- В `LoadState.EnterAsync` сбрасывать progress в `0f`.
- Выполнить 5 шагов загрузки по 200 мс с обновлениями `0.2f`, `0.4f`, `0.6f`, `0.8f`, `1f`.
- Реализовать `LoadingUIView`, подписанный на progress.
## Технические требования
- Использовать UniTask и `CancellationToken` во всех delay.
- Использовать UniRx для progress и подписок.
- Подписки хранить в `CompositeDisposable` и очищать в `Release()`.
- `LoadingUIView` не должна менять progress, только читать его.
- Не обновлять progress UI через `Update()`.
- При использовании tween/lerp останавливать предыдущую визуализацию перед запуском новой.
## Критерии готовности
- `SplashState` отменяется через внешний `CancellationToken`.
- `LoadState` выставляет ожидаемую последовательность progress значений.
- `LoadingUIView` корректно обновляет progress bar.
- При выходе из `LoadState` подписки очищаются.
- Повторный вход в `LoadState` не создает дублирующихся подписок и не вызывает `NullReferenceException`.
## Заметки
В этом проекте важнее чистый lifecycle и гигиена подписок, чем сложная анимация progress bar. Достаточно прямого обновления или простого lerp.