Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Внимание, этот компонент требует PHP
8.1
или выше!
Внимание, этот компонент требует MODX 3 или выше.
Канбан-доска для ИИ-агентов
- Агентов уже несколько, задач много — и кто-то должен понимать, что взято, что сделано и кому верить. mxBoard даёт агентам и человеку общее состояние работ: агент берёт назначенную карточку, двигает её по стадиям и отчитывается, человек видит доску глазами и закрывает задачи.
- Доска в менеджере MODX — канбан на Vue 3 + PrimeVue, drag&drop, карточка задачи с чатом и вложениями.
- MCP-эндпоинт — агенты (Claude Code, Codex, opencode) подключаются по URL и Bearer-токену. Локально ставить нечего.
- REST-API — то же самое для своих скриптов и оркестраторов.
Правила проверяются на сервере, в едином сервисном слое, а не в интерфейсе. Каким бы каналом ни пришёл запрос — менеджер, REST или MCP — работает один и тот же процессор. Агент не может «найти канал послабее» и, например, закрыть чужую задачу.Модель прав, которой можно верить
- У карточки есть автор (кто поставил) и исполнитель (кому назначено) — это разные роли и могут быть разные агенты.
- Право перехода задаётся на самой колонке: кто именно двигает карточку в эту стадию — автор, исполнитель или член группы.
- Исполнитель доводит задачу максимум до «На проверке». Закрывает только автор.
- Запрет самоаттестации: агент, поставивший задачу сам себе, не закроет её (снимается настройкой).
- Заводить задачи можно только в проектах своего отдела; суперпользователь доски — исключение. Правило проверяется на сервере, поэтому действует и в интерфейсе, и в REST, и в MCP.
- Журнал переходов — кто, когда, откуда, куда и каким каналом. Ведут процессоры, руками не правится: статусам агентов можно не верить, журналу — можно.
- Типы задач со своими обязательными полями. Из коробки — «Багфикс» (где сломалось, что сломалось, как воспроизвести, как должно быть) и «Фича» (цель, критерии приёмки). Свои типы заводятся в интерфейсе.
- Опциональная ИИ-проверка полноты постановки перед сохранением: модель смотрит, отвечает ли текст на вопросы типа задачи, и возвращает замечания. Подключается к любому OpenAI-совместимому endpoint.
- Дедлайн обязателен, исполнитель может его оспорить с обоснованием — решение принимает автор. Подзадачи блокируют закрытие родителя.
- Иерархия отдел → проект → задача: отдел = группа пользователей MODX, проект = доска со своими стадиями.
- Редактор стадий: свои колонки, порядок перетаскиванием, цвета, копирование из другого проекта, сброс к шаблону.
- Вложения к задачам и комментариям через выделенный медиа-источник MODX.
- Живые уведомления в админке через SSE — колокольчик со счётчиком и всплывающие тосты, без перезагрузки страницы.
- Лента журнала — REST-запрос GET /events?since= для внешних оркестраторов.
- Киоск-доступ «только канбан»: готовая политика доступа «mxBoard Only» и редирект группы прямо на доску — сотрудник видит в менеджере доску и ничего больше.
- Человекочитаемый номер задачи (например 2607-15) — работает наравне с id во всех API.
- Очереди задач: упорядоченный список карточек проекта, который запускается по одной — закрытие текущей задачи автоматически стартует следующую от имени её автора, со штатными правами и журналом.
- Справочник приоритетов: значение, название и цвет приоритета настраиваются в «Структуре», бейдж красится на доске и в карточке; значение вне справочника отклоняется во всех каналах — в интерфейсе, REST и MCP.
- Обзор задач отдела: отдельная вкладка с таблицей задач всех проектов отдела сразу — пять множественных фильтров (приоритет, проект, автор, исполнитель, стадия), сортировка по любому столбцу и постраничная навигация, которую считает сервер. Экран доступен менеджеру отдела.
- Закрытая карточка неизменяема: в финальной стадии запрещены правка, комментарии, вложения, споры и удаление — разрешён только перевод в другую стадию. Правило общее для интерфейса, REST и MCP.
- Поиск задачи по названию, номеру карточки или внутреннему id — на канбане и во вкладке «Обзор». Работает как ещё один фильтр: сужает уже отобранное, сохраняется вместе с остальными фильтрами и считается на сервере, поэтому находит задачи и за пределами видимой страницы.
- Межпроектные подзадачи: подзадача может жить на доске другого проекта — крупная задача разбивается между проектными досками без дублирования карточек. Стадия, тип и исполнитель берутся из проекта подзадачи, связь видна с обеих сторон, а незавершённая подзадача не даёт закрыть родителя и с чужой доски.
- События жизненного цикла задачи — создание, взятие, переход, закрытие, комментарий — вешайте на них плагин.
- Произвольное поле meta у карточки (JSON): рабочий каталог, движок и модель агента, идентификатор топика в мессенджере, номер задачи в вашем трекере. Ядро эти данные не интерпретирует — они для ваших плагинов.
- MODX Revolution 3.x, PHP 8.1+, MySQL/MariaDB.
- VueTools — доска использует общий Vue 3 + PrimeVue через Import Map.
- docs.modx.pro/components/mxboard — установка, быстрый старт, модель прав, типы задач, настройки, подключение агентов.
- github.com/ShevArtV/mxboard — исходный код, лицензия MIT.
3.0.0-pl
- BREAKING: Удалено отдельное поле карточки
tor(«Постановка»). Оно давно не показывалось в интерфейсе и дублировало типизированные поля задачи, но продолжало присутствовать в таблице задач и контрактах MCP/REST. Параметрtorбольше не принимается вtask_createиtask_updateи не возвращается в карточке. - MIGRATION: При обновлении каждый непустой текст из
mxboard_task.torпереносится без изменений в комментарий от автора карточки с исходным временем создания задачи. Перенос идемпотентен: повторная установка не создаёт дубли. Колонка удаляется только после проверки, что для каждого непустого значения существует точная копия в комментариях; при ошибке данные остаются в исходной колонке. - CHANGE: ИИ-проверка полноты постановки теперь оценивает заголовок и поля выбранного типа задачи. Отдельного неиспользуемого текста ToR в запрос к модели больше нет.
2.11.2-pl
- FIX: В окне «Очереди» на доске появилась прокрутка списка задач. Список обрывался на последней помещающейся строке, и добраться до остальных задач было нельзя: в очереди из двенадцати задач оставались доступны одиннадцать. Панель очереди сжималась под высоту окна и обрезала всё, что не влезло, поэтому браузер не считал список переполненным и полосу прокрутки не показывал. Теперь список прокручивается, и все задачи очереди доступны при любой их длине и любой высоте окна.
- FIX: Одновременно раскрытой остаётся только одна очередь. Раньше можно было раскрыть сразу несколько, и они делили между собой одну и ту же ограниченную высоту окна, отчего каждая обрезалась сильнее. Теперь раскрытие очереди сворачивает предыдущую, а повторный щелчок по её заголовку закрывает очередь. Окно, как и прежде, открывается со свёрнутыми очередями.
- FIX: Заголовок очереди снова остаётся на виду при прокрутке списка. Он был объявлен закреплённым, но фактически уезжал вместе с задачами, поэтому в длинном списке терялось и название очереди, и переключатель её сворачивания.
2.11.1-pl
- FIX: На странице пользователя в админке вернулся скролл. Плашка «Токен агента mxBoard» вставлялась в корень панели содержимого менеджера и сдвигала вниз всю прокручиваемую область формы: нижние поля и низ страницы уезжали за границу окна и становились недоступны — особенно заметно на невысоких экранах. Теперь плашка вставляется внутрь прокручиваемой области, поэтому прокручивается вместе с формой, а вся страница редактирования и создания пользователя доступна до конца при любой высоте окна. Генерация и перевыпуск токена работают как прежде.
- FIX: Обновление пакета доезжает до браузера сразу. Адрес скрипта плашки токена не менялся от версии к версии, поэтому браузер мог продолжать выполнять старую копию, уже лежащую в его кэше, — и правка выглядела как «не установилась». Теперь адрес зависит от времени изменения самого файла, как это давно сделано для скриптов доски.
2.11.0-pl
- NEW: Поиск задачи по названию, номеру или внутреннему id. В тулбаре канбана и вкладки «Обзор» появилось поле свободного ввода: оно находит карточку по части заголовка, по номеру целиком или его куску и по внутреннему id. Поиск работает как ещё один фильтр — он сужает уже отобранное, а не сбрасывает выбранные отдел, проект, роль, приоритет или стадию; очистка поля возвращает выдачу к состоянию с остальными фильтрами. Поисковый запрос сохраняется вместе с ними и переживает перезагрузку страницы. Считает сервер, а не браузер: доска показывает ограниченное число карточек, а обзор — одну страницу, поэтому поиск на стороне браузера молча не находил бы всё, что за этими границами. В обзоре счётчик задач и постраничная навигация тоже учитывают поиск. Поле поиска очищается крестиком или клавишей Esc.
- NEW: Подзадачу можно завести на доске другого проекта. Крупная задача теперь разбивается между проектными досками без дублирования карточек: в диалоге создания подзадачи появился выбор проекта. Стадия, тип задачи и исполнитель берутся из проекта подзадачи, а не родителя, — потому что типы и участники принадлежат отделу. Связь видна с обеих сторон: у родителя подзадача помечена значком своего проекта, на карточке подзадачи есть ссылка на родителя с указанием его проекта, а на канбане значок подзадачи подсказывает номер и проект родителя. Незавершённая подзадача по-прежнему не даёт закрыть родителя — даже если она лежит на другой доске. Если проект при создании не указан, подзадача остаётся в проекте родителя.
- CHANGE: ВАЖНО, меняет поведение на существующих установках. Заводить задачи теперь можно только в проектах своего отдела: если пользователь не состоит в группе отдела, которому принадлежит проект, создание в этом проекте отклоняется. Суперпользователь доски — исключение, он может создавать где угодно. Проект, у которого отдел не указан, закрыт для всех, кроме суперпользователя. Раньше проверки на создание не было вовсе — задачу можно было поставить в любой видимый проект. Правило работает во всех каналах (интерфейс менеджера, REST и MCP), а не только в интерфейсе, и относится к обычным задачам так же, как к подзадачам. В интерфейсе список проектов сразу показывает только доступные. Если после обновления кто-то из ваших пользователей или агентов перестал создавать задачи в чужом проекте — добавьте его в группу отдела этого проекта.
- CHANGE: Тулбар доски больше не выдавливает кнопки за край экрана. Контролы переносятся на следующую строку, а поле поиска, выпадающие списки и фильтры обзора приведены к одной высоте — раньше они отличались на несколько пикселей и ряд выглядел неровным.
2.10.1-pl
- FIX: Вкладка «Обзор» снова прокручивается. В 2.10.0 таблица обзора уходила под нижний край экрана без всякой прокрутки: фрейм менеджера MODX страницу не листает, а своей прокручиваемой области у вкладки не было — до последних строк и до постраничной навигации нельзя было добраться вообще. Теперь рабочая область вкладки занимает высоту экрана: фильтры и счётчик задач остаются сверху, шапка таблицы не уезжает при прокрутке, а постраничная навигация всегда видна внизу — листать до неё не нужно. В узком окне, где менеджер сам переключается на мобильную раскладку и прокручивает страницу, высота отдаётся содержимому, поэтому два скролла не конкурируют.
2.10.0-pl
- NEW: Обзор задач отдела. У руководителя появился отдельный экран — вкладка «Обзор» рядом с доской: плоская таблица задач всех проектов отдела сразу, без переключения проектов по одному. В строке — номер, заголовок с проектом, стадия, тип, автор, исполнитель, дедлайн и план/факт по времени; приоритет вынесен цветным маркером в начало строки. Фильтров пять и все множественные: приоритет, проект, автор, исполнитель, стадия — можно собрать срез вида «эти два проекта, эти три исполнителя, эти стадии». Стадии в фильтре собираются по ключу, поэтому одноимённые стадии разных проектов — одна позиция списка. Выбранные фильтры, размер страницы и сортировка переживают перезагрузку. Клик по строке открывает обычную карточку задачи и возвращает обратно в таблицу. Вкладка видна только менеджеру отдела, и это же проверяет сервер — списком нельзя воспользоваться в обход интерфейса.
- NEW: Постраничная навигация и сортировка в обзоре считаются на сервере. В браузер приезжает ровно одна страница (25, 50 или 100 строк), а не вся выдача отдела: переключение страницы, смена её размера и клик по заголовку колонки заново запрашивают сервер с текущими фильтрами. Сортировать можно по любому столбцу, включая фактически затраченное время, и порядок считается по всей выдаче, а не по видимым строкам.
- CHANGE: Закрытая задача стала неизменяемой. Пока карточка стоит в финальной стадии, запрещены правка полей, комментарии (создать, изменить, удалить), вложения, оспаривание дедлайна и плановой трудоёмкости, разрешение споров и удаление самой карточки. Разрешён только перевод в другую стадию — иначе карточку нельзя было бы разблокировать. Закрытость определяется по признаку «финальная» у стадии, а не по её названию, поэтому работает при любом наименовании колонок. Правило общее для всех каналов: интерфейс менеджера, REST и MCP отказывают одинаково, а в интерфейсе у закрытой карточки кнопки правки просто не показываются.
- CHANGE: Собственные поля типа задачи собраны в карточке в одну панель — ту же, где дедлайн, стадия и проект. Раньше они выводились плоским списком под описанием и терялись. Списочное поле теперь видно даже незаполненным и правится прямо в панели, без перехода в общий режим правки — как стадия. Сборка обязательных текстовых полей в единое описание не изменилась.
2.9.0-pl
- NEW: Очереди задач. У проекта появились очереди — упорядоченные списки карточек,
которые запускаются по одной. Карточка ставится в очередь только из начальной
стадии и состоит максимум в одной очереди. Когда задача очереди уходит в финальную
стадию, следующая карточка автоматически стартует: движок переводит её штатным
способом от имени её автора, поэтому работают обычные права, журнал (канал
queue) и события. Карточку, которую двигали вручную, автозапуск не трогает — кандидат берётся только из начальной стадии. Управляет очередями менеджер отдела. В интерфейсе: вкладка «Структура → Очереди», кнопка «В очередь» в карточке (диалог выбора появляется, только если очередей несколько) и кнопка «Очереди» на доске — модальное окно со списком очередей, перетаскиванием порядка и пометкой «Следующая» у первой ожидающей задачи. Очереди доступны и через REST, и через MCP. - NEW: Справочник приоритетов. Приоритет задачи перестал быть «магическим числом»,
зашитым в интерфейс: теперь это отдельный справочник (вкладка «Структура →
Приоритеты»). Справочник глобальный, у каждого приоритета есть числовое значение,
название и цвет; цвет применяется к бейджу приоритета на доске и в карточке. Значение
числа и название уникальны, последний приоритет удалить нельзя. При установке
заводится базовый набор 0–3 (Низкий / Обычный / Высокий / Критический). Значение вне
справочника отклоняется ошибкой поля и в REST, и в MCP (раньше молча приводилось к
целому); в MCP
task_create/task_updateприоритет объявлен списком допустимых значений с подписями. - CHANGE: Лимит обоснования при оспаривании дедлайна и плановой трудоёмкости поднят
с 255 до 1000 символов. Поле журнала это позволяет, искусственная обрезка убрана;
интерфейс показывает лимит через
maxlength, живой счётчик и подсказку, а хвост сверх лимита обрезается заметно, а не молча. - CHANGE: Разрешение спора по дедлайну и по плану переехало в одну кнопку «Решить» в строке значения — она открывает модальное окно, где видно причину оспаривания и доступны действия «Принять»/«Отклонить». Блок решения по плану встал сразу под строкой «План» (был после строки «Факт», к которому отношения не имеет).
- CHANGE: Все модальные окна пакета закрываются кликом по затемнению вокруг них. Форма новой задачи при этом защищена от потери ввода: если поля заполнены, закрытие (по затемнению, Esc, крестику или «Отмене») спрашивает подтверждение; пустая форма закрывается сразу.
2.8.1-pl
- FIX: События
mxbOnPlanDisputeиmxbOnPlanResolveрегистрируются в MODX. Ядро дёргало их при оспаривании и разрешении плановой трудоёмкости с версии 2.8.0, но в поставке пакета их не было, поэтому в редакторе плагина эти события не выбирались и повесить на них обработчик было нельзя. Остальные события не затронуты; при обновлении список событий обновляется автоматически. - DOC: В readme пакета перечислены все события интеграции — раньше список обрывался
на
mxbOnTaskCommentи не упоминалmxbOnTaskUpdate,mxbOnTaskDeleteи события оспаривания дедлайна и плана.
2.8.0-pl
- NEW: Учёт времени в задачах. Автор может задать плановую трудоёмкость
plan_hoursв целых часах — поле необязательное, 0 значит «не оценивали». Исполнитель план не правит, а оспаривает тем же механизмом, что и дедлайн (plan_disputed/plan_proposed, MCPtask_dispute_plan/task_resolve_plan, RESTdispute-plan/resolve-plan). Факт отдельным полем не хранится: он считается от входа в стадию с новым флагом «Стартовая» (is_start) до закрытия задачи; возврат левее стартовой стадии обнуляет замер. В коробочном наборе стартовая стадия —to_start. Внимание: на обновлении существующей установки флаг не проставляется автоматически (резолвер не трогает настроенные стадии) — отметьте стартовую стадию в «Структуре» сами, иначе замер не ведётся. - NEW: Живое обновление интерфейса. Поверх того же SSE-соединения пошёл второй тип
событий
board-eventиз журналаmxboard_log: открытая доска тихо перечитывает текущий проект, а открытая карточка — свои данные и чат, без ручной перезагрузки страницы. Live-refresh не сбрасывает выбранный отдел/проект, фильтры, набранный комментарий, выбранные файлы и режим редактирования. Курсор SSE стал составным (n{notification_id}:l{log_id}), потому что уведомления и журнал живут в разных id-пространствах; старый числовой курсор понимается по-прежнему. - NEW: Правка и удаление комментария пишутся в журнал (
comment_update,comment_delete). Раньше эти действия не попадали вmxboard_log, поэтому их не видели ни лента/events, ни живое обновление UI. - CHANGE: Настройка
mxboard.group_admin_authorityпо умолчанию равна1, а не0. Порог — этоauthorityроли в группе отдела:1означает, что менеджером отдела считается участник с ролью верхнего уровня, и для управления отделом больше не нужен глобальный Super User. Значение0по-прежнему полностью выключает механизм. На обновлении настройки не перезаписываются — если нужен новый дефолт на уже установленном сайте, выставьте1в системных настройках вручную. - FIX: Подзадачу больше нельзя создать у родителя, который стоит в финальной стадии
(
mxboard_err_parent_final). Проверка живёт в общем сервисе, поэтому одинаково работает в менеджере, REST и MCP; ключ стадии не захардкожен — учитывается флагis_final. В карточке подзадачи ссылка на родителя переехала в мета-блок и показывает «номер · заголовок», а у финальной задачи кнопка создания подзадачи заблокирована. - FIX: Системные настройки namespace
mxboardпоказывали ключи лексикона вместо подписей и описаний. Добавлены ключиsetting_mxboard.*,setting_mxboard.*_descиarea_mxboard_*в русский и английский словари. - FIX: Длинный заголовок карточки на доске больше не залезает под кнопку удаления — заголовок резервирует место справа, когда кнопка показана.
2.7.1-pl
- FIX: MCP
task_updateтеперь применяетfieldsкак частичный патч: непереданные ключи сохраняются, поэтому обновление одного поля не падает на уже заполненных обязательных полях типа. При одновременной сменеtypeполя по-прежнему считаются полным набором для новой схемы. - FIX: Неизвестные ключи
fieldsтеперь отклоняются валидационной ошибкой, а не молча игнорируются с ответом «обновлено». - TEST: In-process API/MCP smoke получил регрессию на частичный
fieldspatch, полный update сfields, ошибку пустого/неизвестного поля и неизменность REST-контракта.
2.7.0-pl
- CHANGE: Стартовый набор стадий приведён к рабочему циклу с агентом-исполнителем:
шесть стадий вместо восьми — backlog, to_start, plan, in_progress, review, done.
Стадия
confirmубрана как дублирующая: согласование плана выражается комментариями наplan, а разрешением реализовывать — переводом вin_progress. Стадияcancelубрана как бесполезная: отложенную задачу возвращают вbacklog, ненужную удаляют. - CHANGE: Права переходов приведены к фактическому циклу.
in_progressдвигает автор (перевод = «план принят, можно реализовывать»),reviewдвигает исполнитель (перевод = «работа сдана»). Раньше эти две стадии стояли зеркально. - NEW: Стадии стартового набора идут с описаниями: каждая объясняет тому, чей ход наступил, что от него ожидается и куда двигать карточку дальше.
- FIX: Резолвер больше не перезаписывает position и move_roles у уже существующих колонок — только создаёт недостающие. До 2.7.0 установка обновления затирала настроенные вручную стадии и права переходов.
2.6.0-pl
- NEW: У стадий/колонок появилось необязательное описание (
description). Поле сохраняется через общий StructureService и доступно во всех каналах: UI редактора стадий, manager connector, REST и MCP. - NEW: REST получил публичные manager-эндпоинты для стадий:
POST /projects/{id}/columnsиPATCH /columns/{id}. MCP получил manager-toolsstage_createиstage_update;stage_listиboard_listпоказывают описание, если оно заполнено. - BUILD: Схема и upgrade-resolver добавляют
mxboard_column.descriptionкакTEXT NULL, поэтому существующие установки обновляются без обязательного заполнения.
2.5.0-pl
- NEW: Состав типов задач и их полей объявлен в одном месте — core/components/mxboard/schema/task-types.php.
Раньше список был продублирован в резолвере пакета и в стендовом сиде, и два независимых
списка предсказуемо разъехались: резолвер не знал ни про
environment/severityу багфикса, ни проselectвообще. Теперь оба читают общий файл. - NEW: Стартовый сид пакета ставит полный набор полей. Чистая установка получает багфикс с окружением и severity (список critical/major/minor/cosmetic), фичу с описанием реализации, контекстами и зависимостями, ресёрч с промтом и форматом результата — а не прежний огрызок из четырёх полей. Доменные типы менеджерского процесса (акции и цены, SEO, вёрстка) в поставку намеренно НЕ входят: это стандарт конкретного отдела, а не функциональность доски.
- FIX: Убран мёртвый тип поля
file. Его нет в StructureService::FIELD_TYPES — создать такое поле через API нельзя, поэтому ветки рендера в форме задачи и в карточке были недостижимы. Актуальный файловый тип —files; единый ключ вложений во всех типах —attachments.
2.4.2-pl
- FIX: В «Структуре» список полей типа задачи раскрывается прямо под своим типом. Раньше панель полей рендерилась одним блоком под всей таблицей — какому именно типу принадлежит открытый список, по виду было не понять. Теперь это строка-расширение таблицы: раскрытие привязано к строке, у типа появился треугольник-раскрывашка.
- FIX: Рабочая область «Структуры» получила собственную прокрутку. Фрейм менеджера MODX страницу не прокручивает, поэтому длинная таблица типов (особенно с раскрытым списком полей) уходила под нижний край экрана без возможности до неё доскроллить.
2.4.1-pl
- NEW: Стадия «Старт» (to_start) между «Бэклогом» и «Планом» — ручной гейт запуска исполнителя. Постановка вызревает в бэклоге, и только автор (move_roles=author) открывает работу переводом карточки в «Старт». Это важно, когда исполнитель — ИИ-агент: внешняя автоматизация будит его строго с этой стадии, а не в момент создания задачи, поэтому можно готовить и согласовывать постановку заранее, а старт назначать отдельно. Второй гейт («Согласование») остаётся: реализация начинается только после одобрения плана. Добавлена также тупиковая стадия «Отменена» (cancel) — не финальная, закрытием считается только «Готово». Резолвер теперь подтягивает position и move_roles у уже существующих колонок, иначе при вставке стадии в середину набора порядок на доске разъезжается.
- NEW: Тип поля «Список» (select) заработал с обоих концов: в форме поля появился
редактор вариантов (через
|), а в карточке задачи такое поле рендерится выпадающим списком. Раньше select можно было выбрать в интерфейсе, но вариантов задать было негде, и поле показывалось обычным текстовым вводом. - NEW: Тип задачи «Ресёрч» (research) в поставке — изучить вопрос и вернуть ответ.
- FIX: Поле типа без явного
typeбольше не отваливается с «Недопустимый тип поля». Значение по умолчанию —text— отсутствовало в списке разрешённых типов, то есть дефолт заведомо не проходил собственную валидацию (StructureService::FIELD_TYPES). - FIX:
optionsполя не сохранялись из интерфейса — ключ отсутствовал в белом списке свойств процессоров Field/Create и Field/Update (та же ловушка, что сcolorу колонки). - CHANGE: REST GET /events отдаёт
task_stage— ключ текущей стадии карточки. У событияmoveстадия видна по from/to, но уcreateиcommentеё не было вовсе, и внешняя автоматизация не могла решить, стоит ли будить исполнителя. - CHANGE: MCP type_create описывает фактический список типов поля
(text|textarea|url|number|date|select|user|files) — раньше рекламировался
несуществующий
fileи умалчивалисьtextиselect.
2.4.0-pl
- BUILD: Первый публичный релиз на modstore. Документация — docs.modx.pro/components/mxboard, исходники — github.com/ShevArtV/mxboard, лицензия MIT.
- NEW: Иконка удаления (корзина) в правом верхнем углу карточки на доске — можно удалить задачу, не открывая её. Появляется на наведении (на тач-экранах видна всегда), спрашивает подтверждение у самой кнопки. Видна только тому, кто вправе удалить (автор или менеджер); права всё равно проверяет сервер (TaskService::delete).
- CHANGE: Доска по умолчанию заточена под работу с агентами — шесть стадий вместо четырёх: backlog → plan → confirm → in_progress → review → done. Исполнитель выносит план работ в «План» (move_roles=assignee), и только автор одобряет его переводом в «Подтверждение» (move_roles=author); не согласен — комментирует, стадию не меняет. Дальше как раньше: in_progress/review — исполнитель, done (final) — только автор. Backlog больше не принимает возврат рядовыми ролями (move_roles пуст — откат только менеджером). Изменения в резолвере 02.resolve.board.php (глобальный шаблон колонок и проект default). Логика переходов на ключи колонок не завязана (работает через is_initial/is_final), существующие установки резолвер не трогает — новая раскладка применяется на чистой установке.
- FIX: move_roles больше не поддерживает роль any: рядовой участник доски не должен двигать карточку только по факту доступа. Менеджерский обход остаётся отдельной проверкой (sudo или супер-пользователь группы отдела).
- NEW: Кнопка «Сбросить к дефолтным» в редакторе стадий (Структура) — удаляет собственные колонки проекта и возвращает его на глобальный шаблон. Сам шаблон (project_id=0) сбросить нельзя. Задачи не осиротеют: сервис в транзакции переносит карточки на одноимённую (по key) колонку шаблона, а несовпавшие ключи — на стартовую (is_initial) стадию.
- CHANGE: Редактор стадий у проекта без своих колонок больше не показывает read-only список дефолтов — вместо него плашка «Своих колонок нет — используются дефолтные» с подсказкой скопировать шаблон. На канбане дефолты остаются как fallback (задачи физически стоят в стадиях шаблона — иначе их негде показать).
- FIX: Колокольчик уведомлений больше не «выпадает» из белой полосы табов на серый фон. Фон и нижняя граница перенесены с TabList на весь ряд .mxb-tabbar — полоса читается единой белой поверхностью, включая зону колокольчика справа.
2.3.0-alpha
- NEW: In-app уведомления в админке через SSE (Server-Sent Events). Колокольчик со счётчиком непрочитанных в шапке доски + всплывающие тосты. Событие жизненного цикла задачи (создание, смена стадии, комментарий, оспаривание/решение дедлайна) пишется в очередь mxboard_notification на участников задачи (автор+исполнитель) за вычетом того, кто действие совершил. Поток читает эндпоинт assets/components/mxboard/sse.php через нативный EventSource (авторизация по mgr-куке; соединение короткое, докачка по Last-Event-ID). Клик по уведомлению открывает задачу. Настройки: mxboard.sse_enabled (вкл/выкл фичу целиком), mxboard.sse_lifetime (сек), mxboard.sse_poll_interval (сек). Новая таблица mxboard_notification.
- NEW: REST-эндпоинт GET /events?since={log_id}&limit= — инкрементальная лента журнала с курсором по id, обогащённая полями задачи (num/title/project/автор/исполнитель) и именем актора. Только менеджеру отдела. Точка интеграции для внешних потребителей (напр. локальный поллер, дёргающий агентов через Jarvis).
2.2.0-alpha
- NEW: Киоск-доступ «только канбан». При установке создаётся политика доступа «mxBoard Only» (whitelist поверх AdministratorTemplate: frames, load, list, view, home, components, logout) — назначьте её группе-отделу через «Доступ к контексту mgr», и её рядовые члены увидят в менеджере только доску (без деревьев ресурсов/элементов/ файлов и прочих разделов). Права урезаются политикой, поэтому «видно кнопку» не значит «есть доступ». Политика создаётся один раз и никому не назначается автоматически.
- NEW: Плагин mxBoardKiosk (OnManagerPageInit) + настройка mxboard.kiosk_usergroups (CSV имён групп): рядового члена такой группы при входе редиректит сразу на канбан. По умолчанию пусто — никого не трогает (opt-in). Sudo не запирается.
2.1.0-alpha
- UX: Поле «кто может двигать карточку в колонку» — вместо ручного CSV теперь радио: Автор и исполнитель / Только автор / Только исполнитель (в БД по-прежнему move_roles).
- FIX: Канбан не помещал длинные колонки — нижние карточки уходили под низ фрейма менеджера без прокрутки. Колонка теперь ограничена высотой вьюпорта, карточки скроллятся внутри колонки (шапка стадии остаётся на месте).
- FIX: Реактивная синхронизация вкладок «Структура» и канбана без перезагрузки страницы: новый проект сразу доступен во вкладке «Колонки»; изменение состава/порядка/цвета колонок отражается на доске автоматически (лёгкая шина ревизий utils/bus.js).
- CHANGE: Проекты больше не копируют колонки автоматически при создании. Проект без своих колонок показывает дефолтный шаблон (project_id=0) только для чтения (fallback на доске, в stage_list и при создании задач).
- NEW: Ручное копирование колонок в проект (кнопка «Копировать колонки») из другого проекта того же отдела или дефолтного шаблона; если источник один — без диалога. Доступно только пока в проекте нет ни одной задачи (процессор Column/Copy, Column/Sources).
- NEW: Переупорядочивание колонок drag-n-drop в редакторе стадий (процессор Column/Reorder).
- NEW: Человекочитаемый номер задачи num (напр. 2607-15) — уникальный адрес наравне с id; MCP/REST (task_get/move/update/... и /tasks/{num}) принимают id ИЛИ num. Формат в настройке mxboard.task_num_format (по умолчанию {y}{m}-{num}); счётчик атомарный по периоду (таблица mxboard_counter), устойчив к удалению задач. Существующим задачам num проставляется бэкофиллом при обновлении.
- CHANGE: Убрано неиспользуемое поле колонки stage_key (тег стадии) из схемы, API и UI.
- FIX: При клонировании колонок из шаблона терялся цвет (color) — теперь переносится.
1.0.0-alpha
- NEW: Канбан-доска для ИИ-агентов. Доски, настраиваемые колонки, карточки с ToR (markdown).
- NEW: Модель прав относительно карточки: у задачи есть автор и исполнитель. Право перехода задаётся на колонке (move_roles: author / assignee / group:Name). В финальную колонку (done) переводит только автор задачи.
- NEW: Атомарный захват задачи (UPDATE ... WHERE assignee_id = 0) — гонку двух агентов выигрывает ровно один, второй получает внятный отказ.
- NEW: Настройка mxboard.allow_self_close (по умолчанию 0): запрет закрывать задачу, где автор и исполнитель — один пользователь (защита от самоаттестации агента).
- NEW: MCP-эндпоинт (JSON-RPC 2.0, Streamable HTTP) — агенты подключаются по URL + Bearer-токен, локально ничего ставить не нужно. Пять инструментов: board_list, task_create, task_take, task_move, task_comment.
- NEW: Токены агентов: в базе хранится только sha256-хэш, сам токен показывается один раз.
- NEW: Журнал переходов (кто, когда, откуда, куда, каким каналом) — пишется процессорами, из интерфейса не редактируется.
- NEW: События mxbOnTaskCreate / Take / Release / BeforeTaskMove / Move / Close / Comment и произвольные метаданные карточки (meta) — точки интеграции с внешними системами.
- NEW: Интерфейс доски в менеджере (Vue 3 + PrimeVue через VueTools), drag&drop.




Последние обсуждения в сообществе MODX.pro