НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2824] Расширить NewsFeed для ленты проектной активности workflow-проектов📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Новые возможности | 2026.3 | 🔘 Завершено |
Средний | Unassigned |
Компоненты: ИРБИС 128. Модуль NewsFeed - Управление лентами новостей
Завершено: 09.09.2026 06:30
Нужно расширить NewsFeed, чтобы он мог формировать ленты проектной активности для workflow-проектов: изменения статусов, комментарии, публикации, вложения, упоминания, значимые изменения полей и системные события.
NewsFeed должен быть projection/materialization layer. Он не должен становиться владельцем событий, комментариев, истории полей, прав или workflow-переходов.
Добавить activity feed profile для workflow-проекта, view/route, аудитории, типов событий, правил группировки, templates, retention и moderation policy.
Строить ленту из safe events EventBus, FieldHistory, Collaboration и workflow facts, не читая напрямую чужие технические журналы.
Поддержать фильтрацию и видимость элементов ленты через Security, включая project roles, record access, field visibility и public/cabinet context.
Поддержать materialized ленту с пересчетом через Queue и инвалидацией при изменении исходных событий.
Поддержать moderation/hide/pin для опубликованных элементов, если это разрешено profile policy.
Публиковать safe signals в Observability и HealthCheck-проверки профилей, битых templates, недоступных источников и ошибок materialization.
NewsFeed владеет профилями ленты, materialized projections, templates, группировкой, moderation и отображением ленты.
EventBus владеет событием и доставкой; Collaboration владеет комментариями; FieldHistory владеет diff; Workflow* владеет переходами; Security владеет правами.
Tasks и TaskPortal только выбирают, какие feed profiles показывать в своих страницах.
Лента проекта показывает понятную историю активности без технических payload.
Пользователь видит только разрешенные события и поля.
Администратор может настроить профиль ленты без изменения кода.
Materialized projection пересчитывается через Queue и диагностируется HealthCheck.
Ошибки источников не ломают страницу, а отображаются как диагностируемое degraded state.
TestA должен покрыть projection, группировку, права, moderation, Queue materialization, EventBus input, HealthCheck и masked payload.
Help должен описать activity feed profiles, templates, moderation и диагностику.
-
I1282824: реализован первый кодовый срез расширения проектов.NewsFeed для project activity projections workflow
Суть изменения: NewsFeed получает общий контракт профилей проекции, правил, шаблонов, materialized activity items, модерации и диагностики. Источник фактов остается внешним (EventBus/доменные события), доменные модули поставляют только safe event DTO/resolver и публичный текст. NewsFeed не реализует бизнеслогику переходы и не хранит частное состояние задач.Tasks, не исполняет workflow
Куда смотреть:
modules/NewsFeed/api.php: добавлены ObjectDataNewsFeedProjectionProfile, ObjectDataNewsFeedActivityItem, индексы и PHPDoc @method для вынесенных __call операций.modules/NewsFeed/*_call/*.inc: основной код новых операций живет в *_call: нормализация профиля/правила/элемента, построение projection по безопасным событиям, диагностический отчет, чтение system JSON и HealthCheck-definition.modules/NewsFeed/__call/Variables.inc: в редактор записи добавлена свернутая секция настройки project activity profile с русскими подсказками.modules/NewsFeed/system/news*feed*project*activity*definitions.json: системные internal/public profiles, rules, templates, TestA и HealthCheck contract.modules/NewsFeed/Formats/brief.pft128, modules/NewsFeed/Formats/full.pft128: отображение старых новостных лент сохранено, для новых profile/activity records добавлено краткое и полное представление.modules/NewsFeed/Help/*: добавлены административное, программистское и эксплуатационное описание.modules/NewsFeed/Tests/Module.inc: TestA safe-read контракт NewsFeed.module.projectActivityContract.Проверки:
C:\i128\php\php.exe ~~l для api.php, всех измененных __call и TestA~~файлов: ok.NewsFeed safe-read: 12/12 passed.module=NewsFeed, profiles=2, healthChecks=6.Tasks, EventBus, Collaboration, FieldHistory, Observability из кода NewsFeed.git diff --check: ошибок нет.Браузерная проверка не выполнялась: срез добавляет системный контракт, editor metadata, Help и TestA, но не добавляет самостоятельную пользовательскую страницу. Видимые сценарии появятся в модулях-потребителях этого контракта.
[I128-2793] Ввести TraceContext для сквозной трассировки операций
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2794] Реализовать системную событийную шину EventBus
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2795] Расширить Queue как runtime фоновых заданий, retry и расписаний
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2797] Расширить Security для проектных прав, полей, действий и аудита доступа
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2798] Реализовать HealthCheck для workflow-проектов и задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2799] Подготовить TestA-контракты системных JSON и end-to-end сценариев
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2806] Системные треды и публичные коммуникации Collaboration
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2807] История значимых полей FieldHistory
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2818] Реализовать наблюдаемость Observability для промышленных модулей
Статус: Завершено | Автор: Ilya Mikhaylenko