feat(server,web): DB-served session list, CLI-session visibility toggle, and sidebar group paging (#158)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,10 @@
|
||||
* SQLite stores only indexes and aggregates: users / login sessions / Project authorization /
|
||||
* Agent & Session indexes / usage summaries / error records / UI preferences. Agent State,
|
||||
* Trace, and Workspace still follow the local directory-based storage rules.
|
||||
* Product not yet released: no migration branches — everything is CREATE IF NOT EXISTS, formed once.
|
||||
* Product not yet released: no migration branches — everything is CREATE IF NOT EXISTS, formed
|
||||
* once. The one exception: columns added to an existing table after release of a web.db are
|
||||
* ALTERed in by the idempotent per-column guard in database.ts (ensureColumn), since CREATE
|
||||
* TABLE IF NOT EXISTS never touches an existing table.
|
||||
*/
|
||||
|
||||
export const SCHEMA_SQL = `
|
||||
@@ -48,8 +51,11 @@ CREATE TABLE IF NOT EXISTS sessions (
|
||||
approval_mode TEXT NOT NULL DEFAULT 'allow-all', -- allow-all|deny-all|read-only|always-ask
|
||||
title TEXT, -- auto-generated by the model after the first exchange; NULL=not yet (frontend shows "New chat")
|
||||
archived_at TEXT, -- archive time; NULL=not archived (shown by default; archived ones move under "Archived")
|
||||
client TEXT, -- creating client: 'web' (created via the Web App) | 'cli' (adopted from a CLI Trace); NULL = legacy row, treated as web
|
||||
has_trace INTEGER NOT NULL DEFAULT 0, -- cache: a Trace record exists (set at task start / adoption / subagent registration; lazily backfilled by list hydration)
|
||||
created_at TEXT NOT NULL
|
||||
); -- session origin is NOT stored: session_meta in the Trace is the single source of truth (see runtime/session-sources.ts)
|
||||
); -- the schedule/subagent SOURCE is NOT stored: session_meta in the Trace is the single source of truth (see runtime/session-sources.ts); "client" is a different, DB-only axis (who created the row)
|
||||
CREATE INDEX IF NOT EXISTS idx_sessions_agent_created ON sessions(project_id, agent_id, created_at DESC);
|
||||
CREATE TABLE IF NOT EXISTS usage_records (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
ts TEXT NOT NULL,
|
||||
|
||||
Reference in New Issue
Block a user