diff --git a/data/scud_orion_ai.db b/data/scud_orion_ai.db index fdd1888..7aa2bce 100644 Binary files a/data/scud_orion_ai.db and b/data/scud_orion_ai.db differ diff --git a/data/scud_orion_ai.db-shm b/data/scud_orion_ai.db-shm new file mode 100644 index 0000000..fe594b3 Binary files /dev/null and b/data/scud_orion_ai.db-shm differ diff --git a/data/scud_orion_ai.db-wal b/data/scud_orion_ai.db-wal new file mode 100644 index 0000000..16609b6 Binary files /dev/null and b/data/scud_orion_ai.db-wal differ diff --git a/scripts/diagnostics/inspect_ephemeral.py b/scripts/diagnostics/inspect_ephemeral.py new file mode 100644 index 0000000..5e15fe9 --- /dev/null +++ b/scripts/diagnostics/inspect_ephemeral.py @@ -0,0 +1,58 @@ +import os +import sqlite3 + +DB_PATH = os.path.join(os.path.dirname(__file__), "../../data/scud_orion_ai.db") +if not os.path.exists(DB_PATH): + DB_PATH = "data/scud_orion_ai.db" + +conn = sqlite3.connect(DB_PATH) +cursor = conn.cursor() + +print("=" * 90) +print(f"🔍 ИНСПЕКЦИЯ СООБЩЕНИЙ В БАЗЕ: {DB_PATH}") +print("=" * 90) + +# 1. Проверяем наличие колонки is_ephemeral +cursor.execute("PRAGMA table_info(chat_messages);") +cols = [c[1] for c in cursor.fetchall()] + +if "is_ephemeral" not in cols: + print("❌ Колонка is_ephemeral отсутствует в таблице chat_messages!") + conn.close() + exit(1) + +# 2. Считаем общее количество и распределение +cursor.execute("SELECT COUNT(*) FROM chat_messages") +total_count = cursor.fetchone()[0] + +cursor.execute("SELECT COUNT(*) FROM chat_messages WHERE is_ephemeral = 1") +ephemeral_count = cursor.fetchone()[0] + +cursor.execute("SELECT COUNT(*) FROM chat_messages WHERE is_ephemeral = 0") +permanent_count = cursor.fetchone()[0] + +print(f"Всего записей в истории: {total_count}") +print(f" • Постоянные (is_ephemeral = 0): {permanent_count}") +print(f" • Фантомные / Эфемерные (is_ephemeral = 1): {ephemeral_count}") +print("-" * 90) + +# 3. Выводим все фантомные записи +if ephemeral_count == 0: + print("В базе нет фантомных записей (is_ephemeral = 1 пуст).") +else: + print(f"📋 СПИСОК ВСЕХ ФАНТОМНЫХ СООБЩЕНИЙ ({ephemeral_count} шт.):") + cursor.execute(""" + SELECT id, session_id, role, created_at, content + FROM chat_messages + WHERE is_ephemeral = 1 + ORDER BY id ASC + """) + for row in cursor.fetchall(): + msg_id, session_id, role, created_at, content = row + print(f"\n[ID: {msg_id}] | Сессия: {session_id} | Роль: {role} | Время: {created_at}") + print("Содержимое:") + print(content.strip()) + print("-" * 70) + +conn.close() +print("=" * 90) \ No newline at end of file