Phase 1 — crash recovery: SSE auto-reconnect + backoff, polling gate during disconnect, connection banner with retry button, empty-response retry 3x, non-terminal resume on empty response, persistent error cards. Phase 2/4 — visibility + continuation: custom ExecutionStatus renderer, approvals extracted on every tool_result (not just done), activity bar with status/goal, SessionDigest live polling, Continue button. Phase 3 — cleanup: complete_task auto-cancels orphaned approvals, deletes assent/destructive window keys, propose_plan marks pending steps as replaced, plan step seq-order enforcement. Phase 5 — knowledge loop: list_lxcs state filter (active/destroyed), SOUL.md unmissable writeback section, propose_plan validation nudge, complete_task writeback check, upsert_knowledge about array support, plan generation grouping in frontend, session approval count badge. Retire request_execution — all mutations now route through run. Updated SOUL.md, AGENTS.md, CLIENTS.md, skills, and agent system notes. Migration 020: plan step generation column, audit_log session_id index, nomos_plan_executions pending-approval index.
18 lines
922 B
SQL
18 lines
922 B
SQL
-- 020_session_reliability.up.sql
|
|
-- Plan step generation tracking + audit log session linkage.
|
|
-- See plans/2026-07-14-session-reliability-and-ux-audit.md.
|
|
|
|
-- Plan step generation: when the agent revises a plan mid-flight, new steps
|
|
-- get a higher generation number so the frontend can group/collapse old ones.
|
|
ALTER TABLE session_plan_steps ADD COLUMN IF NOT EXISTS generation INTEGER NOT NULL DEFAULT 1;
|
|
|
|
-- Track which session produced each audit-log entry so per-session analysis
|
|
-- (e.g. "did this task call update_entity_attributes?") is O(1) instead of
|
|
-- scanning the full log.
|
|
ALTER TABLE audit_log ADD COLUMN IF NOT EXISTS session_id UUID;
|
|
CREATE INDEX IF NOT EXISTS idx_audit_log_session ON audit_log (session_id);
|
|
|
|
-- Efficient lookup of pending-approval executions by session.
|
|
CREATE INDEX IF NOT EXISTS idx_nomos_plan_executions_session
|
|
ON nomos_plan_executions (session_id) WHERE continued_at IS NULL;
|