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
|
||||
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:
|
||||
|
||||
Reference in New Issue
Block a user