From 15bd4ad3224121661b8aaf3730df6f98dd8ec9b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Wed, 24 Jun 2026 13:32:13 +0400 Subject: [PATCH] =?UTF-8?q?v1.0.170:=20fix=20prompts=20list=20=E2=80=94=20?= =?UTF-8?q?datetime=20serialization?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/db/prompts.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/deploy/db/prompts.py b/deploy/db/prompts.py index d693730..f62021d 100644 --- a/deploy/db/prompts.py +++ b/deploy/db/prompts.py @@ -2,12 +2,19 @@ from .connection import query, execute, execute_returning +def _serialize(row): + """Convert datetime fields to strings for JSON serialization.""" + if row and row.get("created_at"): + row["created_at"] = str(row["created_at"]) + return row + + def get_active(role): rows = query( "SELECT * FROM prompts WHERE role = %s AND is_active = true ORDER BY created_at DESC LIMIT 1", (role,), ) - return rows[0] if rows else None + return _serialize(rows[0]) if rows else None def get(prompt_id): @@ -40,10 +47,14 @@ def seed_defaults(): def list_by_role(role): """List all versions for a role, newest first.""" - return query( + rows = query( "SELECT id, role, name, is_active, created_by, notes, created_at FROM prompts WHERE role=%s ORDER BY created_at DESC", (role,), ) + for r in rows: + if r.get("created_at"): + r["created_at"] = str(r["created_at"]) + return rows def save_new_version(role, name, body, notes="", is_active=True):