SQL
CREATE TABLE artifacts (
id TEXT PRIMARY KEY,
kind TEXT NOT NULL,
status TEXT NOT NULL CHECK (status IN ('queued','building','ready','failed','discarded')),
title TEXT,
summary TEXT,
meta TEXT,
-- JSON (intent, topic, tags, etc.)
output_json TEXT,
-- JSON (structured payload)
output_mrkdwn TEXT,
-- rendered markdown
evidence_event_ids TEXT,
-- JSON array
confidence REAL,
episode_id TEXT,
thread_id TEXT,
error TEXT,
attempt_count INTEGER DEFAULT 0,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
claimed_at TEXT,
claim_id TEXT,
ready_at TEXT,
discarded_at TEXT,
FOREIGN KEY (episode_id) REFERENCES episodes(id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED
)
Columns
| Column | Data type | Allow null | Primary key | Actions |
|---|---|---|---|---|
id |
TEXT |
✓ | ✓ | Rename | Drop |
kind |
TEXT |
Rename | Drop | ||
status |
TEXT |
Rename | Drop | ||
title |
TEXT |
✓ | Rename | Drop | |
summary |
TEXT |
✓ | Rename | Drop | |
meta |
TEXT |
✓ | Rename | Drop | |
output_json |
TEXT |
✓ | Rename | Drop | |
output_mrkdwn |
TEXT |
✓ | Rename | Drop | |
evidence_event_ids |
TEXT |
✓ | Rename | Drop | |
confidence |
REAL |
✓ | Rename | Drop | |
episode_id |
TEXT |
✓ | Rename | Drop | |
thread_id |
TEXT |
✓ | Rename | Drop | |
error |
TEXT |
✓ | Rename | Drop | |
attempt_count |
INTEGER |
✓ | Rename | Drop | |
created_at |
TEXT |
Rename | Drop | ||
updated_at |
TEXT |
Rename | Drop | ||
claimed_at |
TEXT |
✓ | Rename | Drop | |
claim_id |
TEXT |
✓ | Rename | Drop | |
ready_at |
TEXT |
✓ | Rename | Drop | |
discarded_at |
TEXT |
✓ | Rename | Drop |
Foreign Keys
| Column | Destination |
|---|---|
episode_id |
episodes.id |
Indexes
| Name | Columns | Unique | SQL | Drop? |
|---|---|---|---|---|
| idx_artifacts_episode |
|
SQL | Drop | |
| idx_artifacts_kind_status |
|
SQL | Drop | |
| idx_artifacts_thread |
|
SQL | Drop | |
| sqlite_autoindex_artifacts_1 |
id
|
✓ | SQL | Drop |