fix(agent): make compaction settings dataclass compatible with Python 3.11+
Use field(default_factory=...) instead of a mutable-default-class instance, which Python 3.11+ dataclasses reject at import time.
This commit is contained in:
@@ -365,7 +365,11 @@ class CompactionPreparation:
|
|||||||
tokens_before: int = 0
|
tokens_before: int = 0
|
||||||
previous_summary: Optional[str] = None
|
previous_summary: Optional[str] = None
|
||||||
file_ops: FileOperations = field(default_factory=FileOperations)
|
file_ops: FileOperations = field(default_factory=FileOperations)
|
||||||
settings: CompactionSettings = DEFAULT_COMPACTION_SETTINGS
|
# 注意(P2-04 跨平台修复):Python 3.11+ 的 dataclass 禁止不可哈希默认值
|
||||||
|
# (eq dataclass 实例 __hash__=None);Ubuntu 24.04 自带 3.12,
|
||||||
|
# 直接写 `= DEFAULT_COMPACTION_SETTINGS` 在 3.11+ 会 ValueError。
|
||||||
|
# default_factory 返回同一共享实例,与 3.10 行为完全一致。
|
||||||
|
settings: CompactionSettings = field(default_factory=lambda: DEFAULT_COMPACTION_SETTINGS)
|
||||||
|
|
||||||
|
|
||||||
def _compaction_diag(line: str) -> None:
|
def _compaction_diag(line: str) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user