docs(P01): complete minimal-voice-loop phase
---ci--- phase: 1 milestone: v0.1 status: complete requirements: covered: [REQ-VOICE-01, REQ-VOICE-02, REQ-VOICE-03, REQ-VOICE-04, REQ-SCEN-01, REQ-STATE-01, REQ-LLM-01, REQ-LLM-02, REQ-DEBRIEF-01, REQ-ORCH-01, REQ-ORCH-02, REQ-SCEN-FMT-01, REQ-NFR-LAT-01, REQ-NFR-SAFE-01, REQ-NFR-COST-01] partial: [] ---/ci---
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
-- Migration 0001 — initial schema for v0.1 learner state (D-007).
|
||||
-- Creates learner, sessions, turns, progress tables + the hardcoded learner-1 row.
|
||||
|
||||
-- Schema (also in db/schema.sql for reference; this is the migration source).
|
||||
CREATE TABLE IF NOT EXISTS learner (
|
||||
id TEXT PRIMARY KEY,
|
||||
display_name TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS sessions (
|
||||
id TEXT PRIMARY KEY,
|
||||
learner_id TEXT NOT NULL REFERENCES learner(id),
|
||||
scenario_id TEXT NOT NULL,
|
||||
started_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
ended_at TEXT,
|
||||
branch_path_json TEXT,
|
||||
outcome TEXT,
|
||||
cost_estimated_cents INTEGER,
|
||||
debrief_text TEXT,
|
||||
cost_breakdown_json TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS turns (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
session_id TEXT NOT NULL REFERENCES sessions(id),
|
||||
seq INTEGER NOT NULL,
|
||||
role TEXT NOT NULL,
|
||||
asr_text TEXT,
|
||||
tts_text TEXT,
|
||||
latency_ms REAL,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
UNIQUE(session_id, seq)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS progress (
|
||||
learner_id TEXT NOT NULL REFERENCES learner(id),
|
||||
scenario_id TEXT NOT NULL,
|
||||
attempts INTEGER NOT NULL DEFAULT 0,
|
||||
last_outcome TEXT,
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
PRIMARY KEY (learner_id, scenario_id)
|
||||
);
|
||||
|
||||
-- The single hardcoded learner row (D-007 — no auth in v0.1).
|
||||
INSERT OR IGNORE INTO learner (id, display_name) VALUES ('learner-1', 'Alex');
|
||||
Reference in New Issue
Block a user