fix: add defensive JSON parsing in check_instructions
This commit is contained in:
@@ -303,12 +303,17 @@ async def check_instructions(agents: list[dict]) -> bool:
|
|||||||
print("-" * 115)
|
print("-" * 115)
|
||||||
|
|
||||||
for agent in agents:
|
for agent in agents:
|
||||||
adapter_cfg = agent.get("adapter_config") or {}
|
name = (agent.get("name") or agent.get("id") or "?")[:29]
|
||||||
if isinstance(adapter_cfg, str):
|
|
||||||
adapter_cfg = json.loads(adapter_cfg)
|
try:
|
||||||
|
adapter_cfg = agent.get("adapter_config") or {}
|
||||||
|
if isinstance(adapter_cfg, str):
|
||||||
|
adapter_cfg = json.loads(adapter_cfg)
|
||||||
|
except (json.JSONDecodeError, TypeError):
|
||||||
|
print(f"{name:<30} {'(malformed adapter_config in DB)':<55} {'⚠ ERROR':<12}")
|
||||||
|
continue
|
||||||
|
|
||||||
file_path = adapter_cfg.get("instructionsFilePath", "")
|
file_path = adapter_cfg.get("instructionsFilePath", "")
|
||||||
name = (agent.get("name") or agent.get("id") or "?")[:29]
|
|
||||||
|
|
||||||
if not file_path:
|
if not file_path:
|
||||||
print(f"{name:<30} {'(none)':<55} {'⚠ NOT SET':<12}")
|
print(f"{name:<30} {'(none)':<55} {'⚠ NOT SET':<12}")
|
||||||
@@ -324,9 +329,12 @@ async def check_instructions(agents: list[dict]) -> bool:
|
|||||||
mtime = datetime.fromtimestamp(stat.st_mtime).strftime("%Y-%m-%d %H:%M")
|
mtime = datetime.fromtimestamp(stat.st_mtime).strftime("%Y-%m-%d %H:%M")
|
||||||
|
|
||||||
# Check for drift vs DB metadata
|
# Check for drift vs DB metadata
|
||||||
metadata = agent.get("metadata") or {}
|
try:
|
||||||
if isinstance(metadata, str):
|
metadata = agent.get("metadata") or {}
|
||||||
metadata = json.loads(metadata)
|
if isinstance(metadata, str):
|
||||||
|
metadata = json.loads(metadata)
|
||||||
|
except (json.JSONDecodeError, TypeError):
|
||||||
|
metadata = {}
|
||||||
db_mtime = metadata.get("claude_md_mtime", "")
|
db_mtime = metadata.get("claude_md_mtime", "")
|
||||||
actual_mtime = str(int(stat.st_mtime))
|
actual_mtime = str(int(stat.st_mtime))
|
||||||
drift = " ⚠ DRIFT" if db_mtime and db_mtime != actual_mtime else ""
|
drift = " ⚠ DRIFT" if db_mtime and db_mtime != actual_mtime else ""
|
||||||
|
|||||||
Reference in New Issue
Block a user