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:
@@ -0,0 +1,35 @@
|
||||
# TASK-0006: MenuState и Restart
|
||||
|
||||
## Цель
|
||||
|
||||
Реализовать меню с кнопкой `Restart`, которое завершает `MenuState` и возвращает flow к загрузке.
|
||||
|
||||
## Что сделать
|
||||
|
||||
- Реализовать `MenuState`.
|
||||
- Реализовать `MenuUIView`.
|
||||
- Реализовать `MenuUIViewModel` или аналогичный plain C# объект для restart-сигнала.
|
||||
- В `MenuState.EnterAsync` показать menu View и ожидать restart.
|
||||
- Ожидание restart реализовать через `UniTaskCompletionSource` или аналогичный UniTask-friendly механизм.
|
||||
- По нажатию кнопки `Restart` завершать ожидание `MenuState.EnterAsync`.
|
||||
- В `MenuState.ExitAsync` release-нуть menu View и очистить подписки/listeners.
|
||||
|
||||
## Технические требования
|
||||
|
||||
- Кнопку подключать через `Button.onClick.AddListener(...)`.
|
||||
- В `Release()` снимать ровно тот же listener через `RemoveListener(...)`.
|
||||
- Не использовать `RemoveAllListeners()` как основной способ очистки.
|
||||
- Не использовать анонимную лямбду, которую невозможно симметрично снять.
|
||||
- Не переводить state machine напрямую из `MenuUIView`.
|
||||
- Restart-событие должно попадать во flow через ViewModel/state, а не через глобальное состояние.
|
||||
|
||||
## Критерии готовности
|
||||
|
||||
- `MenuState.EnterAsync` завершается после нажатия `Restart`.
|
||||
- После завершения `MenuState` внешний `BootFlowService` запускает `LoadState`.
|
||||
- Несколько циклов `Menu -> Restart -> Load -> Menu` не дублируют callbacks.
|
||||
- Повторный `Release()` у `MenuUIView` не падает.
|
||||
|
||||
## Заметки
|
||||
|
||||
Для кнопки лучше использовать method group или заранее сохраненный delegate. Это упрощает симметричный `AddListener`/`RemoveListener` и снижает риск дублирующихся callbacks.
|
||||
Reference in New Issue
Block a user