Table chat_histories { id bigserial [pk] guid uuid [unique, not null, default: `gen_random_uuid()`] session_id text [not null] title text channel text agent_id text project_id bigint [ref: > projects.id] 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.id [delete: set null] Table learnings { id bigserial [pk] guid uuid [unique, not null, 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 bigint [ref: > projects.id] related_thought_id bigint [ref: > thoughts.id] related_skill_id bigint [ref: > agent_skills.id] reviewed_by text reviewed_at timestamptz duplicate_of_learning_id bigint [ref: > learnings.id] supersedes_learning_id bigint [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.id [delete: set null] Ref: learnings.related_thought_id > thoughts.id [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]