Skip to content

humanizer-ru 3.34.0

Latest

Choose a tag to compare

@Vladimir-Human Vladimir-Human released this 07 Sep 07:56
· 18 commits to main since this release
v3.34.0
c55fcf2

humanizer-ru 3.34.0

Что нового

  • Числовой контракт сверки фактов: точный строковой канон чисел без
    промежуточного float (дробь, знак, целые за границей 2^53, число из 400
    цифр — штатный вход); единицы сопоставляются с границей слова; записи
    дд.мм без года явно разведены с датами (пометка date_like);
    «1.5 кг» и «1,5 кг» — один факт.
  • Сохранность разметки: сканер HTML-тегов учитывает кавычки атрибутов и
    многострочные конструкции; think-блоки и сцепки источника снимаются
    только вне fenced/frontmatter/инлайн-кода (граница детектора);
    action_fix не перезаписывает файл, который скан считает чистым.
  • Unicode-паритет Python и JS: класс переноса Python \w исправлен на
    [\p{L}\p{N}_] (комбинируемые знаки не входят); регенерированы
    demo/markers.js и sw.js; векторы паритета расширены (17 векторов).
  • Совместимость поставок: сравнение стало полным и типизированным
    (все файлы и вложенные поля конвертов; 1 и True — разные типы;
    удалённые поля ловятся; явный список нормализуемых нестабильных
    значений).
  • Приёмка блокирует публикацию: pypi-publish выполняет полный строгий
    прогон, факты strict-publication, совместимость и живой интервал
    публикаций перед необратимым шагом; release-check работает в --strict,
    принимает явный тег через input и проверяет криптоподпись и интервал
    после публикации между двумя конкретными релизами.
  • Гейты убивают собственных мутантов: недоступный node — FAIL
    обязательной проверки паритета; исключение ReDoS содержательное;
    bounded-time прогон выражений в дочернем процессе; мутации обязаны
    менять применимый вход; tests/test_gate_mutations.py.
  • Живые агентные входы: scripts/check_live_distribution.py сверяет
    локальные server.json/пакет/контракт с PyPI, официальным реестром MCP
    и Pages; публикация записи реестра без секретов (GitHub OIDC,
    workflow publish-mcp.yml); запись реестра обновлена до 3.33.0 и
    перечитана обратно (status active).
  • Внешняя обратная связь без слепых зон: тела discussions, комментариев
    и ответов с курсорной пагинацией каждого уровня; GraphQL errors/
    partial/RATE_LIMITED обработаны; доказательность KPI —
    scripts/check_feedback_evidence.py и журнал
    research/external-feedback/evidence.v1.json; регулярный сбор в CI
    (feedback-collect.yml) без публичных сообщений.
  • Исполняемые пользовательские входы: самодостаточный рецепт
    «Попробовать за 30 секунд» (вход создаётся командой; вывод и код
    возврата получены фактическим исполнением рецепта); матрица
    проверенных возможностей и границ без заявлений о лидерстве;
    tests/test_installed_user_journeys.py — четыре пути на установленном
    артефакте вне исходного дерева.
  • Демо: один результат на весь интерфейс; точные координаты подсветки в
    исходном тексте (NFC и тень отображаются обратно); mergedRanges
    сортирует интервалы; копирование отчёта согласовано с результатом
    (пересчёт при изменении текста до debounce); браузерная проверка
    scripts/check_demo_browser.py.
  • Формулировки приведены в соответствие границам: снято обещание
    «естественность без искажения смысла», вердиктное «крайне маловероятен
    ИИ» заменено фактом о периоде, «текст целиком машинный» уточнено до
    «покрыт артефактами машинного слоя»; формула позиционирования укорочена
    до 98 символов синхронно во всех поверхностях (требование реестра MCP).

Breaking changes

  • Нет. Контракт аддитивен: новые поля (date_like), новые скрипты и гейты,
    новые векторы; команды, коды выхода и существующие поля не изменены.
    Изменения поведения безопасных режимов и очистителя описаны выше и
    покрыты тестами сохранности.

Приёмка

  • python3 scripts/check_all.py --strict — 150 гейтов, FAIL 0, SKIP 0.
  • python3 -m unittest discover -s tests — OK.
  • python3 scripts/check_release.py --release-contract — тег подписан
    существующим ключом проекта, подпись проверена (в т.ч. во временной
    связке из docs/release-signing-key.asc).
  • python3 scripts/check_release.py --pre-release-interval и
    --post-publication-interval — интервал ≥ 86400 с по published_at.
  • python3 scripts/check_pypi_metadata.py --sdist … --wheel … и --live
    — metadata публикуемых артефактов и живого PyPI.
  • python3 scripts/check_live_distribution.py --json — PyPI, реестр MCP
    и Pages согласованы с деревом.