From 05fc6a399452de0cf36f0eba659566fbd2158301 Mon Sep 17 00:00:00 2001 From: David Blanc Brioir Date: Sat, 31 Jan 2026 17:17:04 +0100 Subject: [PATCH] Fix OccasionLog dataclass field ordering and Unicode encoding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Reorder dataclass fields: required fields before default fields - Replace Unicode arrow (→) with ASCII (->) for cp1252 compatibility - Fixes Python dataclass initialization errors Co-Authored-By: Claude Opus 4.5 --- ikario_processual/occasion_logger.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ikario_processual/occasion_logger.py b/ikario_processual/occasion_logger.py index 26eb955..ef19c34 100644 --- a/ikario_processual/occasion_logger.py +++ b/ikario_processual/occasion_logger.py @@ -35,23 +35,21 @@ class OccasionLog: previous_state_id: int prehended_thoughts_count: int prehended_docs_count: int - prehended_thoughts: List[str] = field(default_factory=list) # Résumés des pensées # Concrescence response_summary: str - new_thoughts: List[str] = field(default_factory=list) - tools_used: List[str] = field(default_factory=list) # Satisfaction new_state_id: int alpha_used: float beta_used: float - # Profils + # Champs avec valeurs par défaut (doivent être après les champs obligatoires) + prehended_thoughts: List[str] = field(default_factory=list) # Résumés des pensées + new_thoughts: List[str] = field(default_factory=list) + tools_used: List[str] = field(default_factory=list) profile_before: Dict[str, Dict[str, float]] = field(default_factory=dict) profile_after: Dict[str, Dict[str, float]] = field(default_factory=dict) - - # Métriques processing_time_ms: int = 0 token_count: Optional[int] = None @@ -83,7 +81,7 @@ class OccasionLogger: with open(filepath, 'w', encoding='utf-8') as f: json.dump(asdict(occasion), f, indent=2, ensure_ascii=False) - print(f"[OccasionLogger] Occasion {occasion.occasion_id} → {filepath}") + print(f"[OccasionLogger] Occasion {occasion.occasion_id} -> {filepath}") return filepath def get_occasion(self, occasion_id: int) -> Optional[OccasionLog]: