0.157.1
Added
- WebUI: бейдж состояния задач в кнопке «Задачи» шапки чата. Кнопка «Задачи» в
ChatHeader.svelte(десктоп) теперь подсвечивает верхнеуровневое состояние задачника агента, не требуя открытия панели: при отсутствии активных задач — как раньше (иконка + «Задачи»); в работе — пилюляcompleted/activeнейтральным цветом; когда все активные задачи выполнены — та же пилюля зелёным (--c-badge-green*).titleкнопки динамический: «Задачи агента: N из M выполнено». Список грузится один раз за сессию для каждого агента (todosStore.isLoaded), далее актуальность поддерживается WS-событиемtodo.updated— счётчик обновляется в реальном времени. Отменённые задачи (cancelled) исключены из знаменателя (active = total − cancelled), поэтому не мешают достижению «всё сделано». Мобильный kebab-пункт без изменений. web/src/lib/stores/todos.svelte.ts—summary()расширена полямиcancelledиactive; добавленisLoaded(agentId)(eager-once загрузка без повторных HTTP-запросов при повторной смене агента); экспортированEMPTY_TODOS_SUMMARY(единая форма сводки, без инлайн-литералов и дублирования типа).web/src/lib/components/chat/ChatHeader.svelte— импорт store +EMPTY_TODOS_SUMMARY;$effectзагрузки; derived-сводка (todosSummary,todosActive,todosAllDone); бейдж + CSS (.ch-todo-badge/.ch-todo-badge-done).- Проверки:
npm run check— 0/0; циклocr review— валидные замечания устранены (eager-once загрузка черезisLoaded, единый тип сводки черезEMPTY_TODOS_SUMMARYбезas const), невалидные отклонены (стилистика имени derived; skeleton для декоративного бейджа — over-engineering).