fix(memory): reject non-finite mem0 timeout_seconds (#4823)

This commit is contained in:
Nefelibata 2026-08-15 15:40:43 +08:00 committed by GitHub
parent e593ad6c14
commit 3a967d4f9a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 2 deletions

View File

@ -11,6 +11,7 @@ from __future__ import annotations
import os
from dataclasses import dataclass
from math import isfinite
from typing import Any
from urllib.parse import urlsplit
@ -105,8 +106,8 @@ class Mem0Config:
raise ValueError("mem0 score_threshold must be in [0, 1]")
if config.max_injection_chars <= 0:
raise ValueError("mem0 max_injection_chars must be positive")
if config.timeout_seconds <= 0:
raise ValueError("mem0 timeout_seconds must be positive")
if not isfinite(config.timeout_seconds) or config.timeout_seconds <= 0:
raise ValueError("mem0 timeout_seconds must be a finite value > 0")
if not config.api_key_env.strip():
raise ValueError("mem0 api_key_env must be a non-empty env var name")
parsed_base_url = urlsplit(config.base_url)

View File

@ -77,6 +77,9 @@ class TestMem0Config:
("score_threshold", 1.5),
("max_injection_chars", 0),
("timeout_seconds", 0),
("timeout_seconds", float("nan")),
("timeout_seconds", float("inf")),
("timeout_seconds", float("-inf")),
],
)
def test_invalid_values_rejected(self, key: str, value: object) -> None: