fix(generator): усилены проверки startup-history
- Зачем: - коммит-гейт не запускал корневые контрактные тесты, а часть подтверждённых обходов могла снова смешать разные миры генератора. - Что: - добавлены цели make test, make lint и contract-test с тихим pytest-выводом через Docker. - закрыты обходы через generator-reset, неизвестную версию state и fail-open проверку DM-витрин. - усилены поведенческие контракты CHECK_LIVE_SEAM, профиля manifest и pause-check etl_pipeline; обновлены документы и issue 19. - Проверка: - make test; make lint; git diff --check.
This commit is contained in:
@@ -11,7 +11,6 @@ logger = logging.getLogger("generator")
|
||||
|
||||
|
||||
STATE_VERSION = "3.0"
|
||||
KNOWN_OLD_STATE_VERSIONS = {"2.0"}
|
||||
|
||||
|
||||
class UnsupportedStateVersionError(ValueError):
|
||||
@@ -245,15 +244,9 @@ class GeneratorState:
|
||||
try:
|
||||
if not isinstance(data, dict):
|
||||
raise ValueError("state must be an object")
|
||||
version = data.get("version", "1.0")
|
||||
version = str(data.get("version", "1.0"))
|
||||
if version != STATE_VERSION:
|
||||
if str(version) in KNOWN_OLD_STATE_VERSIONS:
|
||||
raise UnsupportedStateVersionError(str(version))
|
||||
logger.warning(
|
||||
"Unsupported generator state version %s, will start fresh",
|
||||
version,
|
||||
)
|
||||
raise ValueError(f"unsupported state version: {version}")
|
||||
raise UnsupportedStateVersionError(version)
|
||||
_validate_v3_payload(data)
|
||||
model_timestamp = _parse_aware_utc(
|
||||
data["model_timestamp"],
|
||||
@@ -309,5 +302,7 @@ class GeneratorState:
|
||||
"""Безопасная загрузка state с graceful degradation."""
|
||||
try:
|
||||
return cls.from_dict(data)
|
||||
except UnsupportedStateVersionError:
|
||||
raise
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user