Table chat_histories { id uuid [pk, default: `gen_random_uuid()`] session_id text [not null] title text channel text agent_id text project_id uuid [ref: > projects.guid] messages jsonb [not null, default: `'[]'`] summary text metadata jsonb [not null, default: `'{}'`] created_at timestamptz [not null, default: `now()`] updated_at timestamptz [not null, default: `now()`] indexes { session_id project_id channel agent_id created_at } } Table tool_annotations { id bigserial [pk] tool_name text [unique, not null] notes text [not null, default: ''] created_at timestamptz [not null, default: `now()`] updated_at timestamptz [not null, default: `now()`] } // Cross-file refs (for relspecgo merge) Ref: chat_histories.project_id > projects.guid [delete: set null] Table learnings { id uuid [pk, default: `gen_random_uuid()`] summary text [not null] details text [not null, default: ''] category text [not null, default: 'insight'] area text [not null, default: 'other'] status text [not null, default: 'pending'] priority text [not null, default: 'medium'] confidence text [not null, default: 'hypothesis'] action_required boolean [not null, default: false] source_type text source_ref text project_id uuid [ref: > projects.guid] related_thought_id uuid [ref: > thoughts.guid] related_skill_id uuid [ref: > agent_skills.id] reviewed_by text reviewed_at timestamptz duplicate_of_learning_id uuid [ref: > learnings.id] supersedes_learning_id uuid [ref: > learnings.id] tags "text[]" [not null, default: `'{}'`] created_at timestamptz [not null, default: `now()`] updated_at timestamptz [not null, default: `now()`] indexes { project_id category area status priority reviewed_at tags [type: gin] summary [type: gin] details [type: gin] } } // Cross-file refs (for relspecgo merge) Ref: learnings.project_id > projects.guid [delete: set null] Ref: learnings.related_thought_id > thoughts.guid [delete: set null] Ref: learnings.related_skill_id > agent_skills.id [delete: set null] Ref: learnings.duplicate_of_learning_id > learnings.id [delete: set null] Ref: learnings.supersedes_learning_id > learnings.id [delete: set null]