diff --git a/web/app.py b/web/app.py index 1294139..cb58178 100644 --- a/web/app.py +++ b/web/app.py @@ -3057,8 +3057,16 @@ async def api_get_methodology(category: str): items = {} for key, default_val in defaults.items(): if key in overrides: + raw = overrides[key]["rule_value"] + # asyncpg returns JSONB as a raw JSON string when no codec is registered. + # Parse it back to a Python object so the frontend receives the correct type. + if isinstance(raw, str): + try: + raw = json.loads(raw) + except (json.JSONDecodeError, TypeError): + pass items[key] = { - "value": overrides[key]["rule_value"], + "value": raw, "is_override": True, "updated_at": overrides[key]["created_at"].isoformat() if overrides[key]["created_at"] else None, }