migrations/0005_run_receipts.sql
Rama main · réplica de lectura del repositorio original.
-- Run Receipts: owner-scoped flight recorder for consequential agent runs.
--
-- v0 keeps artifacts out of D1. Events may point at R2/upload URLs later via
-- evidence_json, but the first dogfood slice is pure structured receipts.
CREATE TABLE IF NOT EXISTS runs (
id TEXT PRIMARY KEY,
owner_email TEXT NOT NULL,
session_id TEXT,
status TEXT NOT NULL DEFAULT 'open',
title TEXT,
task_summary TEXT NOT NULL,
bounds_json TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
);
CREATE INDEX IF NOT EXISTS idx_runs_owner_updated
ON runs(owner_email, updated_at DESC);
CREATE TABLE IF NOT EXISTS run_events (
run_id TEXT NOT NULL,
event_id TEXT NOT NULL,
owner_email TEXT NOT NULL,
ts TEXT NOT NULL,
actor_json TEXT NOT NULL,
type TEXT NOT NULL,
data_json TEXT NOT NULL,
evidence_json TEXT,
PRIMARY KEY (run_id, event_id),
FOREIGN KEY (run_id) REFERENCES runs(id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_run_events_owner_ts
ON run_events(owner_email, ts DESC);
CREATE INDEX IF NOT EXISTS idx_run_events_run_ts
ON run_events(run_id, ts ASC);
CREATE INDEX IF NOT EXISTS idx_run_events_type
ON run_events(type);