Skip to the content.

System Architecture

Data Flow

[Developer creates GitHub Issue]
           |
           v
[GitHub Actions Trigger]
  - Event: issues.opened/closed/edited
  - Runner: ubuntu-latest
           |
           v
[Supabase REST API - Upsert]
  - Table: github_issues
  - Columns: issue_number, title, body, creator, labels, status
           |
           v
[Supabase Realtime Broadcast]
  - Protocol: WebSocket
  - Channel: github_issues changes
           |
           v
[VS Code Extension Listener]
  - @supabase/supabase-js client
  - Realtime subscription active
           |
           v
[Copilot Chat Display]
  - VS Code Chat API
  - markdown formatted response

Database Schema

github_issues

| Column | Type | Description | |——–|——|————-| | id | UUID | Primary key | | issue_number | INT | GitHub issue number (unique) | | title | VARCHAR(255) | Issue title | | body | TEXT | Issue description | | creator | VARCHAR(255) | GitHub username | | labels | TEXT[] | Array of label names | | status | VARCHAR(50) | opened/closed/edited | | metadata | JSONB | Additional data | | created_at | TIMESTAMPTZ | Creation timestamp |

ai_responses

| Column | Type | Description | |——–|——|————-| | id | UUID | Primary key | | github_issue_id | UUID | FK to github_issues | | agent_id | VARCHAR(255) | AI agent identifier | | response_text | TEXT | AI-generated response | | status | VARCHAR(50) | Response status | | metadata | JSONB | Additional data |

ai_agent_state

| Column | Type | Description | |——–|——|————-| | id | UUID | Primary key | | agent_id | VARCHAR(255) | Unique agent identifier | | current_task | VARCHAR(255) | Active task | | progress | INT | 0-100 percentage | | status | VARCHAR(50) | Agent status | | last_update | TIMESTAMPTZ | Last activity time |