Уведомления и лента активности

Зачем это нужно

Чем активнее команда — тем труднее уследить за тем, что важное
происходит с документацией. Кто-то переименовал страницу, кто-то
упомянул вас в комментарии, кто-то подключил новый репозиторий.
Пропустить любое из этого — значит либо повторять чужую работу,
либо оставаться не в курсе.

В Nextdocs две разных ленты, которые решают разные задачи:

Уведомления (колокольчик)

Что приходит

Где смотреть

Вкладки

В выпадающем списке две вкладки:

Статусы

Клик по уведомлению

Что происходит:

Если вы откроете уведомление через toast, оно тоже помечается
прочитанным (через ~2 секунды, после того как бэк успел сохранить
запись).

Лента активности (Activity feed)

Где смотреть

На странице проекта в правом верхнем сайдбаре — иконка-пульс. Клик
открывает выпадающее окошко с последними 50 событиями этого
проекта.

Что попадает в ленту

События, которые тут записываются (все участники проекта видят
ленту одинаково):

Каждый элемент показывает: кто, что, когда. Клик по событию с
page_id — переход на соответствующую страницу (если это комментарий
— прямо к комментарию через deep link).

Пагинация

Вначале — последние 50. Внизу кнопка Load more подтягивает
следующий блок. Лимит глубины: 6 месяцев назад (дальше — нет).

Live-обновления

Когда вы открыли активный feed и в проекте что-то случилось —
событие сразу появится вверху списка без перезагрузки.

Отличие от истории страницы

Похожие идеи, разные scope'ы:

Recently Visited

Связанная фича: виджет Recently visited на экране /projects.
Это ваши личные последние посещённые страницы, в хронологическом
порядке. Не путайте с activity feed проекта — это про ваш собственный
scroll-back.

Запись «посещено» появляется только если вы провели на странице
дольше ~10 секунд (иначе перелистывание через поиск засорило бы
список).

Digest и уведомления о редактировании

Ежедневный агрегат «Alice edited 3 pages» — автоматический,
запускается в полночь по локальному времени сервера. Может быть
триггернут вручную:

POST /api/internal/activity/digest
Header: X-Service-Secret: <secret>
Body: { "project_id": 42 }   # опционально

Это может понадобиться, если нужно «догнать» ленту после импорта.

Privacy

Типовые сценарии

Просыпаетесь утром. Открываете Nextdocs, badge у колокольчика:
«3 непрочитанных». Видите: «Alice mentioned you at Design
overview». Клик — попадаете на страницу, видите уточнение, отвечаете
в комментарии.

Возвращаетесь после отпуска. Открываете нужный проект, нажимаете
на иконку activity. Видите: «Bob renamed pages, Alice attached a
new repository, 4 new comments resolved». Понимаете общую картину
за 30 секунд вместо чтения всей истории.

Отслеживаете статус спеки. Написали спеку, отправили команде на
ревью. В activity feed видно, кто её комментирует. Если никто не
трогал сутки — напоминаете явно.

Ограничения