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:
2026-09-17 16:40:02 +08:00
parent 60200260ab
commit 342e53df02
+5 -1
View File
@@ -365,7 +365,11 @@ class CompactionPreparation:
tokens_before: int = 0
previous_summary: Optional[str] = None
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: