daemon/ (index.ts, types.ts, claude-adapter.ts, db.ts, reconcile.ts, schema.sql), package.json, and test scripts were implemented but never staged. Phase 3 exit criteria verified per PROGRESS.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 lines
1.3 KiB
SQL
28 lines
1.3 KiB
SQL
-- Trail Boss SQLite Schema
|
|
-- The session registry and FIFO queue state
|
|
|
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
session_id TEXT PRIMARY KEY,
|
|
pane_id TEXT NOT NULL,
|
|
cwd TEXT NOT NULL,
|
|
transcript_path TEXT NOT NULL,
|
|
last_seen_at INTEGER NOT NULL, -- unix timestamp
|
|
last_stuck_at INTEGER, -- unix timestamp of last Stop/PermissionRequest
|
|
last_stuck_reason TEXT, -- 'stopped' | 'permission'
|
|
last_message TEXT, -- last_assistant_message or tool_name+input
|
|
created_at INTEGER NOT NULL -- unix timestamp
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS queue (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
session_id TEXT NOT NULL REFERENCES sessions(session_id),
|
|
stuck_at INTEGER NOT NULL, -- unix timestamp when stuck (for FIFO ordering)
|
|
reason TEXT NOT NULL, -- 'stopped' | 'permission'
|
|
skip_cooldown_until INTEGER, -- unix timestamp; if set, not eligible as head
|
|
dequeued_at INTEGER, -- set when removed via reconcile/UserPromptSubmit
|
|
created_at INTEGER NOT NULL -- unix timestamp
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS queue_fifo ON queue (stuck_at ASC) WHERE dequeued_at IS NULL;
|
|
CREATE INDEX IF NOT EXISTS queue_session ON queue (session_id);
|
|
CREATE INDEX IF NOT EXISTS sessions_pane ON sessions (pane_id);
|