chore(conductor): Mark track 'Curate Provider Registries' as complete. Includes critical fixes for RecursionError, NoneType Hook API responses, and plurality mismatches.

This commit is contained in:
2026-05-08 22:01:15 -04:00
parent b89abb2670
commit 9f18497786
15 changed files with 97 additions and 89 deletions
+14 -10
View File
@@ -31,6 +31,7 @@ Thread Safety:
"""
import queue
from typing import Callable, Any, Dict, List, Tuple, Optional
from pathlib import Path
class EventEmitter:
"""
@@ -142,20 +143,23 @@ class UserRequestEvent:
self.base_dir = base_dir
def to_dict(self) -> Dict[str, Any]:
# Ensure all file items and base_dir are JSON serializable
serializable_files = []
for f in self.file_items:
if hasattr(f, 'to_dict'):
serializable_files.append(f.to_dict())
elif isinstance(f, (str, dict, list, int, float, bool, type(None))):
serializable_files.append(f)
else:
serializable_files.append(str(f))
def _make_serializable(obj: Any) -> Any:
if isinstance(obj, dict):
return {k: _make_serializable(v) for k, v in obj.items()}
if isinstance(obj, list):
return [_make_serializable(x) for x in obj]
if isinstance(obj, Path):
return str(obj)
if hasattr(obj, 'to_dict'):
return obj.to_dict()
if not isinstance(obj, (str, int, float, bool, type(None))):
return str(obj)
return obj
return {
"prompt": self.prompt,
"stable_md": self.stable_md,
"file_items": serializable_files,
"file_items": _make_serializable(self.file_items),
"disc_text": self.disc_text,
"base_dir": str(self.base_dir)
}