Andrey Epifancev 8e26e3a62e Архив OpenSpec: wiki-package-d (#135)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 19:02:52 +04:00

4.5 KiB
Raw Blame History

Why

Пакет D сверки follow-ups 25.10.2026 (sdlc-hub#135, маркеры из #94). Сверка с кодом 27.10.2026 подтвердила дефекты модуля wiki. Самый заметный — T6.1: если в HTML Eva между ссылкой на файл и его миниатюрой стоит обёртка (<a><span><img>), ссылка на вложение пропадает из текста страницы целиком, хотя вложение в базе есть. Остальные дефекты: сломанный Markdown на нестандартных ссылках, вложение «скачано», которое нельзя ни открыть, ни скачать заново, вторая живая синхронизация через повтор команды и подделка строк ответа MCP переводами строк из данных Eva.

Владелец 27.10.2026 добавил в пакет показ скачанных картинок в тексте страницы «Вики»: сейчас картинку можно только сохранить файлом.

What Changes

  • Перевод HTML (T6.1–T6.5): миниатюра внутри ссылки на вложение распознаётся на любой глубине вложенности. Вложение внутри ссылки на страницу выводится отдельной ссылкой рядом со ссылкой на страницу, без вложенных ссылок. При повторе ref в списке агента побеждает первая запись. Пробелы и круглые скобки во внешних адресах кодируются. Хвостовая \ в тексте ссылки на страницу экранируется.
  • Вложение без файла (T8.2): POST /wiki/attachments/{id}/fetch для вложения в ready, чей файл пропал из files/, ставит скачивание заново, а не отвечает ready.
  • Одна синхронизация на корень (T8.3): пакет с wiki_sync (в том числе повтор команды) отклоняется, если у проекта уже идёт wiki_sync с тем же корнем.
  • MCP вики (T9.3): переводы строк в названии, пути, имени вложения и фрагменте поиска заменяются пробелом.
  • Картинки в тексте (решение владельца): на странице «Вики» вложение-картинка после скачивания показывается в тексте на месте ссылки; уже скачанные картинки показываются при открытии страницы. Без клика хаб ничего не скачивает. Картинку определяет хаб по имени файла в адресе Eva: поле image у вложений в GET /wiki/pages/{code}.

Non-Goals

  • Остальные маркеры #94 (M-7, T7.x, T8.4–T8.9, T9.1–T9.7 кроме T9.3 и др.) — остаются в #94.
  • eva-agent#4 Н-1 (битый agent.json) — отдельный bounded PR в eva-agent.
  • Автоматическое скачивание картинок при открытии страницы — владелец выбрал «только после нажатия».
  • Картинки в Markdown-копии на диске и в MCP: копия и ответы MCP не меняются, картинки — только в веб-приложении.
  • Показ SVG в тексте.

Capabilities

Modified Capabilities

  • wiki — «Синхронизация вики», «Markdown-копия вики», «Вложения вики по запросу», «Маршруты вики».
  • mcp — «MCP вики».
  • web-app — «Вики проекта».

Impact

  • Хаб: modules/wiki/convert.py, attachments.py, api.py, commands.py, mcp.py; тесты tests/test_wiki_*.
  • Веб: web/src/modules/wiki/ (PageView.tsx, download.ts, wiki.css) и тесты рядом.
  • Схема базы и контракт с агентом wiki не меняются; в ответе GET /wiki/pages/{code} у вложений новое поле image. Выкатка: make web + перезапуск хаба.