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 — присвоения смежные и самодокументированы комментарием.