I-1 (R-8): ensure_fields с полем из одних пробелов даёт 422, очистка только "" или null.
I-2: agent_view не падает на нецифровой версии агента (GET /agent, /agents).
I-3 (R-9): files.size через fstat у открытого файла, _intact ловит OSError, put переписывает нечитаемый файл.
M-2: /agent/state отвергает пустые не-списки в issues.
T2.1, T3.1, T4.1-T4.3, T5.2, T6.1, T1.5: тесты и мелкие правки.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
OBSOLETE расширен ключами base_jql и board_id: ensure_defaults убирает их при каждом открытии, миграция v7 -> v8 тоже.
settings_version не растёт. PUT /settings для этих ключей по-прежнему отвечает 422 с пояснением. Тест миграции v3
обновлён: после миграции ключей в настройках нет (проекты уже созданы из них).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Хаб дописывает board_id доски проекта задачи в ensure_fields со story_points — как в
ensure_sprint; свои тексты 422 для канбана и задачи вне проектов; повтор берёт доску заново.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
I-1, I-2 финального ревью: старые MCP-сессии возвращали status_labels/transitions_map
после миграции; окно до kickstart описано для v8.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
После переименования в Gitea старый адрес по SSH отвечает «Cannot find
repository» (T6.2 подтвердилось): preflight сверяет main по адресу
aep/sdlc-hub, derive_remote принимает уже сменённый origin; README —
сменить origin сразу после переименования.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Редактор Eva (TinyMCE) сохраняет в HTML страницы блок table-row-controls (номер
строки, «+», точка); markdownify превращал его в абзацы «№», «1», «2»… перед
таблицей. Блок удаляется целиком до конвертации; карточки вложений с тем же
классом mceNonEditable остаются.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Тест границы test_core_has_no_module_terms; ARCHITECTURE/CLAUDE/README; дельта-спека о хуках before_result/abort_result.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fmt_agent, safe_name и store_copy вынесены в core/mcp.py; сервер jira их переэкспортирует, тексты вывода не менялись.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Двойное экранирование текста ссылки на страницу убрано; «@» больше не
экранируется. Ссылку на вложение выдаёт только конвертер (внутренний маркер),
авторское «attachment:@» в тексте, атрибутах, коде и именах нейтрализуется,
схема attachment: у ссылок и картинок автора не выводится.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Схемы javascript:/data:/vbscript: в ссылках не выводятся; имя вложения и текст
ссылки экранируются (скобки, @, переводы строк); fill_ids меняет только
](attachment:@N) и поднимает ValueError вне диапазона; «<» в тексте — <;
attachments/links = None трактуются как пустые списки.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
convert.to_markdown: вложения по ref (картинка и миниатюра+файл — одна ссылка),
ссылки на страницы DOC-… → page:<код>, static/ удаляются, сырого HTML нет.
convert.fill_ids подставляет id вложений вместо attachment:@<n>.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Каркас модуля wiki: схема (wiki_project, wiki_page, wiki_attachment, wiki_sync_stage), настройки,
поле проекта wiki_root с хуками создания и правки, команды wiki_sync и wiki_fetch,
фоновая синхронизация. Зависимость markdownify>=1.2.3.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tokens -> {client, agents: {модуль: токен}}, agent_status по агентам
(ключ agent, last_call_at), настройки агента и маршруты agent-scope по
модулю токена, min_agent_version переехал в модуль jira.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>