Вики: история правок — лента и дифф в MCP и вебе (#140) #141
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/140-wiki-history"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #140. Агентская часть — aep/eva-agent#7 (PR в eva-agent); выкатываются парой.
Что сделано
wiki_syncполучает в выдачеknown_versions; агент шлёт опубликованные версии страниц дереваPOST /agent/wiki/versions; хаб переводит их в Markdown вне транзакции, хранит (wiki_version, стадияwiki_version_stage,wiki_history.history_at) и считает «+/−» вprepare. Только страницы дерева проекта, только опубликованные правки. Агент v1 работает как прежде — история не пополняется.GET /wiki/changes(лента за период, фильтр автора без учёта регистра, кириллица),GET /wiki/pages/{code}/versions,GET /wiki/pages/{code}/diff(unified diff частями по 20 000); у страницы —modified_at,modified_by,versions; у состояния —history_at.sdlc-wiki. Новыеchanges,diff; строка «изменено» вpage;syncотвечает коротко («поставлено / ок: синхронизировано / ошибка»); история вstatus. Чтение — только копия хаба. Серверsdlc-jiraне изменился (эталон)./app/feed(пункт под «Обзором») с источниками модулей черезHubModule.feed: Jira (виды событий) и Вики (правки по странице). Окно правки с диффом/app/wiki/pages/{code}/versions/{version}поверх ленты: предыдущая/следующая правка, «Показать дальше», «Открыть страницу»./app/jira/feedперенаправляет на/app/feed. На «Обзоре» — «Лента» (Jira) и «Правки» (Вики).Спека:
openspec/changes/wiki-history/(proposal, design — решения 1–15, П-1…П-12, «Decisions made without discussion»).Проверки
make check: pytest 1293 passed, lint ok, vitest 79 файлов / 799 passed.npm run buildok; Playwright 61 passed (52 skipped — снимки экрана, толькоSCREENS=1).HUB_SRC=<эта ветка> bash scripts/e2e-hub.shв eva-agent — первая загрузка версий и догрузка новой версии,e2e: ok.1de07a4).Rulings I made
line_deltaберётunified_diff()[2:], а не отбор по+++/---(иначе теряются строки++x/--x). Цена ошибки: при смене формата difflib «+/−» искажаются на две строки.cmf_created_at, вложения в версиях текстом, сбой версий = сбой синхронизации, дифф по запросу, короткийsync, адреса/app/feedи окна правки, фильтр автора подстрокой, П-1…П-12) — в design.md.Отложено (follow-up)
T1.1, T1.3, T1.4 (ruff нет в окружении), T2.1, T2.2, T3.1, T3.2, T3.3, T4.1, T4.2, T5.2, T5.3, T6.1, T6.2, T6.3, T7.2, T7.3, M-2 (
OverflowErrorна краях дат → 500), M-3, M-4 (sync wait— ложное «ок» при сменённом корне). Подробно — таблица Findings в ledger, попадут в issue «Follow-ups from #140».Выкатка (владелец)
git pull→launchctl kickstart -k gui/$(id -u)/ru.aepif.sdlc-hub→make web→/mcpreconnect. Новые таблицы создаются при подключении, миграции нет; прежний код с такой базой работает.uv run sdlc-hub agent publish --module wiki ../eva-agent/src/agent.py.statusс v2 и первой синхронизации — проверить в логе агента строку «N из M версий без автора» (если есть —cmf_authorу версий не раскрывается); затем поднятьwiki_min_agent_versionдо 2.🤖 Generated with Claude Code
- schema: wiki_version, wiki_version_stage, wiki_history (без миграций, IF NOT EXISTS) - history.utc: время версии в UTC; без смещения или не строка — None - convert.to_markdown(file_links=False): вложение текстом «📎 имя», список файлов пуст - stage.accept_versions + POST /agent/wiki/versions (agent wiki): проверка формы, перевод вне транзакции - эталоны baseline (routes, schema) и документы: design.md (П-1…П-12), ARCHITECTURE.md Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>Маршруты GET /wiki/changes, /wiki/pages/{code}/versions, /wiki/pages/{code}/diff; у страницы — modified_at, modified_by, versions; у состояния — history_at. Дифф режется по 20 000 символов, фильтр автора без учёта регистра в Python. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>