## Why Владелец 28.10.2026 хотел посмотреть, что за день сделали аналитики в вики проекта, и не смог: копия вики в хабе без истории, MCP показывает только дату синхронизации. Ни кто правил, ни когда, ни что поменялось — не видно (sdlc-hub#140). Открытый вопрос из ARCHITECTURE.md «История страниц вики» закрывается этим change. Проверка API Eva 28.10.2026 (скрипты `eva_probe.py`, `eva_probe2.py` на виртуалке, токеном eva-agent) показала, что история есть: у каждой версии страницы (`CmfDocumentHistory`, коды `DOCH-…`) — полный текст на момент версии, автор, время и признак публикации; выборка по странице — фильтром `parent_id`. Журнал `CmfAudit` токену агента закрыт, истории версий вложений в API нет. ## What Changes - **Версии страниц в синхронизации.** Команда `wiki_sync` дополнительно забирает опубликованные версии страниц дерева проекта: постранично, только новые (хаб передаёт агенту уже известные коды версий), первый прогон — вся история. Агент шлёт версии пачками новым маршрутом `POST /agent/wiki/versions`; хаб переводит их HTML в Markdown и вместе с копией одной операцией записывает в новую таблицу версий. Версии страниц вне дерева не запрашиваются и не хранятся. - **Маршруты истории.** `GET /wiki/changes` — лента опубликованных правок проекта за период (время, автор, страница, «+строк / −строк»); `GET /wiki/pages/{code}/versions` — версии страницы; `GET /wiki/pages/{code}/diff` — unified diff одной правки против предыдущей, частями. `GET /wiki/pages/{code}` получает поля последней правки. - **MCP вики.** Новые инструменты `changes` и `diff`; шапка `page` — строка «изменено: когда, кто»; `sync` отвечает только «ок»/ошибкой. `changes`, `diff`, `page` читают только копию хаба. - **Веб: общая «Лента».** Лента изменений переезжает из раздела Jira в общий пункт «Лента» боковой панели (`/app/feed`) с переключателями источников «Jira» и «Вики». Правки вики сгруппированы по странице; нажатие на правку открывает окно с диффом поверх ленты. Модули дают ленте свои источники через контракт веб-модуля. - **eva-agent** (aep/eva-agent#7, свой design-only change): шаг версий в `wiki_sync`, `AGENT_VERSION` 2. ## Non-Goals - Черновики и неопубликованные правки — решение владельца 28.10.2026: только опубликованные. - Версии файлов-вложений — решение владельца: свежий файл по запросу, как сейчас (`attachment`). - Журнал аудита Eva (`CmfAudit`) — закрыт токену агента. - Страницы вики вне дерева корня проекта — решение владельца: только зона видимости проекта. - Запись в Eva, откат версий, комментарии к правкам. - Ускорение фоновой синхронизации: частота прежняя (`wiki_auto_sync_hours`). ## Capabilities ### New Capabilities Нет. ### Modified Capabilities - `wiki` — новые требования «История правок страниц» и «Маршруты истории вики». - `mcp` — «MCP вики». - `web-app` — «Лента изменений», «Оболочка и адреса»; новое требование «Правки вики в ленте». ## Impact - Хаб: `modules/wiki/` — `schema` (таблицы версий и стадии версий), `commands` (`deliver_params`, учёт версий в отчёте), `stage` (приём версий), `sync` (запись версий в `commit`, удаление вне дерева), `convert` (режим без id вложений), `api` (новые маршруты), `mcp`, `projects` (сброс корня удаляет версии); новый модуль чтения истории (лента, дифф). Тесты `tests/test_wiki_*`. - Веб: `web/src/shell/` (страница общей ленты, период), `web/src/modules/types.ts` (источник ленты в `HubModule`), `web/src/modules/jira/feed/` (источник Jira вместо страницы), `web/src/modules/wiki/` (источник вики, окно диффа). - Контракт с агентом `wiki`: новый маршрут `POST /agent/wiki/versions`, поле `known_versions` в параметрах выдачи `wiki_sync`, поле `versions` в отчёте `done`. Агент v1 работает как прежде — история не пополняется. - Схема базы: две новые таблицы модуля `wiki`. Выкатка: `git pull` → kickstart хаба → `make web` → `/mcp` reconnect → публикация eva-agent v2 → после `agent_status` с v2 владелец поднимает `wiki_min_agent_version`.