From 9da36431a548fbbd00939b46792828ce5367cfe6 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Fri, 19 Dec 2025 22:31:48 -0500 Subject: fix(ava): initialize tool_traces table on web server startup The table creation was in Memory.initMemoryDb but Web.hs opened the database directly without calling it. Now Trace.hs has its own initTraceDb function that Web.startWebServer calls on startup. --- Omni/Ava/Trace.hs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'Omni/Ava/Trace.hs') diff --git a/Omni/Ava/Trace.hs b/Omni/Ava/Trace.hs index 6dbdf51..d648da1 100644 --- a/Omni/Ava/Trace.hs +++ b/Omni/Ava/Trace.hs @@ -12,6 +12,7 @@ -- : dep uuid module Omni.Ava.Trace ( TraceRecord (..), + initTraceDb, insertTrace, getTrace, cleanupOldTraces, @@ -30,6 +31,25 @@ import qualified Database.SQLite.Simple as SQL import qualified Database.SQLite.Simple.ToField as SQL import qualified Omni.Test as Test +-- | Initialize the tool_traces table if it doesn't exist. +initTraceDb :: SQL.Connection -> IO () +initTraceDb conn = do + SQL.execute_ + conn + "CREATE TABLE IF NOT EXISTS tool_traces (\ + \ id TEXT PRIMARY KEY,\ + \ created_at TEXT NOT NULL,\ + \ tool_name TEXT NOT NULL,\ + \ input TEXT NOT NULL,\ + \ output TEXT NOT NULL,\ + \ duration_ms INTEGER NOT NULL,\ + \ user_id TEXT,\ + \ chat_id TEXT\ + \)" + SQL.execute_ + conn + "CREATE INDEX IF NOT EXISTS idx_traces_created ON tool_traces(created_at)" + main :: IO () main = Test.run test -- cgit v1.2.3