From dce9bed5a6bceb52d3aa7508e399e88a384b24a7 Mon Sep 17 00:00:00 2001 From: TejasLamba2006 Date: Wed, 11 Nov 2026 01:24:26 +0530 Subject: [PATCH] fix(microskills): skip non-dict JSON lines in load_calls Same pattern as #180/#182: json.loads can return null/list/string, and d.get("message") fails with AttributeError on non-dicts. This is a separate fix from #198 (parse_payload guards) - load_calls parses the transcript, parse_payload parses the proposer reply. --- tokeneconomizer/microskills/distiller.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tokeneconomizer/microskills/distiller.py b/tokeneconomizer/microskills/distiller.py index a1532ef..56ea5f9 100644 --- a/tokeneconomizer/microskills/distiller.py +++ b/tokeneconomizer/microskills/distiller.py @@ -79,6 +79,8 @@ def load_calls(fp): d = json.loads(line) except Exception: continue + if not isinstance(d, dict): + continue m = d.get("message") if not isinstance(m, dict) or d.get("type", "assistant") not in CONVERSATION: continue