mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-06-12 04:12:09 +00:00
31 lines
1.5 KiB
SQL
31 lines
1.5 KiB
SQL
-- 000004_teams_v2: FTS for team_tasks + delegation_history table
|
|
|
|
-- 1. Full-text search on team_tasks (subject + description)
|
|
ALTER TABLE team_tasks ADD COLUMN IF NOT EXISTS tsv tsvector
|
|
GENERATED ALWAYS AS (to_tsvector('simple', subject || ' ' || COALESCE(description, ''))) STORED;
|
|
CREATE INDEX IF NOT EXISTS idx_team_tasks_tsv ON team_tasks USING GIN(tsv);
|
|
|
|
-- 2. Delegation history (persisted record of every delegation)
|
|
CREATE TABLE IF NOT EXISTS delegation_history (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v7(),
|
|
source_agent_id UUID NOT NULL REFERENCES agents(id),
|
|
target_agent_id UUID NOT NULL REFERENCES agents(id),
|
|
team_id UUID REFERENCES agent_teams(id) ON DELETE SET NULL,
|
|
team_task_id UUID REFERENCES team_tasks(id) ON DELETE SET NULL,
|
|
user_id VARCHAR(255),
|
|
task TEXT NOT NULL,
|
|
mode VARCHAR(10) NOT NULL DEFAULT 'sync',
|
|
status VARCHAR(20) NOT NULL DEFAULT 'completed',
|
|
result TEXT,
|
|
error TEXT,
|
|
iterations INT DEFAULT 0,
|
|
trace_id UUID,
|
|
duration_ms INT,
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
completed_at TIMESTAMPTZ
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_delegation_history_source ON delegation_history(source_agent_id);
|
|
CREATE INDEX IF NOT EXISTS idx_delegation_history_team ON delegation_history(team_id);
|
|
CREATE INDEX IF NOT EXISTS idx_delegation_history_created ON delegation_history(created_at DESC);
|