1.0.2
Changed (#364)
- Отработка
ocr reviewфикса #364 (4 замечания). Принято: [performance] безусловныйGET /todosна каждомturn_endизбыточен при живом WS — добавлен гейтtodosFreshFromWS(флаг взводится обработчикомtodo.updated,turn_endделает фоновыйtodosStore.loadтолько если события в ходе не было; флаг сбрасывается по итогам хода), тестыturn_end refreshes/skips the todos refresh. Задокументированы осознанные решения: [bug, medium] окно гонки между коммитомReplaceAgentTodosи перечитыванием вtodoBroadcastStore(конкурентный писатель — ручнойPUT /todosили параллельный ход; приемлемо: last-writer-wins в БД, второй писатель шлёт свойtodo.updated, мигание лечится turn_end-рефрешем, desktop-контекст одного пользователя; предложение ревью «вернуть персистированный срез из Replace» неприменимо — метод не пишет id/position в аргумент, id/position назначаются в SQL); [maintainability] обёрткаtodoNotifyStore()конструируется на каждый вызов сознательно —SetOnTodoChangedвызывается после создания Loop, закэшированная обёртка захватила бы nil-колбэк. Отклонено: [maintainability] helper-обёртка двух присвоений колбэка вmain.go— присвоения смежные и самодокументированы комментарием.