diff options
| author | Ben Sima <ben@bensima.com> | 2025-12-19 22:31:48 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-12-19 22:31:48 -0500 |
| commit | 9da36431a548fbbd00939b46792828ce5367cfe6 (patch) | |
| tree | a2bd6579040f50fc802fe1d3a6068aa403363e91 /Omni/Ava/Trace.hs | |
| parent | 43e2512d3ca1311cd7019148e9cf417a8feab068 (diff) | |
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.
Diffstat (limited to 'Omni/Ava/Trace.hs')
| -rw-r--r-- | Omni/Ava/Trace.hs | 20 |
1 files changed, 20 insertions, 0 deletions
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 |
