Files
cherrypick/openspec/changes/cherrypick-system-spec/specs/talker-logging-adapter/spec.md
2026-02-27 14:33:30 +03:00

2.9 KiB
Raw Blame History

ADDED Requirements

Requirement: Сущность адаптера логирования

Адаптер MUST предоставлять TalkerCherryPickObserver, реализующий CherryPickObserver.

Scenario: Доступность адаптера

  • WHEN разработчик импортирует пакет адаптера
  • THEN TalkerCherryPickObserver доступен для использования

Requirement: Жизненный цикл наблюдателя

Наблюдатель MUST подключаться при создании scope и работать в течение жизненного цикла этого scope.

Scenario: Подключение наблюдателя

  • WHEN observer передан при открытии scope
  • THEN все DIсобытия в scope направляются в Talker

Requirement: Маппинг уровней логирования

Адаптер MUST маршрутизировать DIсобытия в Talker с корректными уровнями (info/warning/verbose/handle).

Scenario: Диагностика

  • WHEN DIядро генерирует диагностическое событие
  • THEN адаптер логирует его как verbose

Scenario: Ошибка резолва

  • WHEN DIядро генерирует ошибку
  • THEN адаптер логирует ее через handle и включает stack trace при наличии

Requirement: Ненавязчивость поведения

Адаптер MUST быть наблюдателем и не изменять DIповедение, жизненный цикл или кэширование.

Scenario: Разрешение с адаптером

  • WHEN адаптер подключен
  • THEN резолв и поведение DI не изменяются, кроме появления логов

Requirement: Ошибки логирования

Адаптер MUST передавать ошибки логирования как есть и не содержит собственной обработки исключений.

Scenario: Исключение в Talker

  • WHEN Talker выбрасывает исключение при логировании
  • THEN исключение пробрасывается вызывающему коду

Requirement: Точки расширения

Адаптер MUST позволять использовать пользовательские настройки Talker без изменения адаптера.

Scenario: Кастомная конфигурация Talker

  • WHEN пользователь передает кастомный Talker
  • THEN адаптер использует переданную конфигурацию для всех DIсобытий