Skip to content

RAGRAF Community 0.11.0

Latest

Choose a tag to compare

@paulmann paulmann released this 10 Nov 16:53

RAGRAF 0.11.0

Выпуск о том, чтобы поставка доказывала себя, а не утверждала.

Что появилось

Контракт-пин. Описание операции сравнивается с подтверждённым набором; расхождение
называется причиной, а не просто «разошлось». Сводка с прошлым выпуском раскладывается на
ломающие, совместимые и изменённые. Ломающее изменение проходит только при мажорной версии
или поимённом разрешении с причиной — «разрешить всё» не предусмотрено.

Журнал смен набора. Кто, когда и что принял — как операция, а не как запись в файле.
Хранение: 20 смен на объект и всё за 180 дней; строки, на которые ссылается действующий
пин, не удаляются.

Пробы поведения. Операция вызывается на образцах, ответ хешируется и сверяется с
прошлым выпуском. Отказ очищается от путей, ревизий и хешей: иначе «изменилось» срабатывало
бы на каждой сборке. Приём пробы требует имени — без автора приёма нет.

Итог выпуска одной строкой. Вердикт, код возврата и три представления (stdout, markdown,
JSON) считаются в одной точке, поэтому не могут разойтись. Блок changes называет, что
изменилось с прошлого выпуска, с местами — без значений.

Отчёт выпуска в поставке. RELEASE-REPORT.md собирается из ops_pins.json, лежащего
рядом, сверяется воротами по байтам и входит в checksums.sha256. Подмена версии или
вердикта в отчёте — блокировка, а не предупреждение.

Поверхность

79 операций, 86 инструментов MCP, 26 подкоманд CLI, 20 возможностей
(в 0.10.0 — 76 и 83). Отпечаток поверхности 78789dc47078.

Проверено

  • tests/test_contract_pin.py — 242 проверки, провалов 0.
  • tests/test_release_gate.py — 51 проверка, провалов 0.
  • Объявления версии в одном месте (src/ragraf/__init__.py), повторы — где требует формат.
  • BOM/CRLF чисто; ссылки файл:строка — на уровне опубликованного дерева.

Известное

Полный гейт выпуска требует источника с каталогом community/; машинная конфигурация
(config/ragraf.yaml) в поставку не входит, поэтому наборы, которым она нужна, здесь
не прогоняются.