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)