From 47455aa0f1e81253f5094c29cf547fa977abd306 Mon Sep 17 00:00:00 2001 From: "kiloconnect[bot]" <240665456+kiloconnect[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2026 07:44:50 +0000 Subject: [PATCH] (janitor/dead-code): remove orphaned gastown rig/town table definitions Delete seven unused Durable Object SQLite table definitions from services/gastown/src/db/tables/: rig-agents, rig-bead-events, rig-beads, rig-mail, rig-molecules, rig-review-queue, and town-escalations. These are legacy Postgres-era table schemas superseded by the Town and Rig Durable Object sub-modules. None are imported by any source file, test, migration, config, or prompt, and their exported symbols and table name strings appear nowhere else in the repository or in the external Kilo-Org/kilocode consumer. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> --- .../gastown/src/db/tables/rig-agents.table.ts | 44 ------------- .../src/db/tables/rig-bead-events.table.ts | 63 ------------------- .../gastown/src/db/tables/rig-beads.table.ts | 57 ----------------- .../gastown/src/db/tables/rig-mail.table.ts | 36 ----------- .../src/db/tables/rig-molecules.table.ts | 30 --------- .../src/db/tables/rig-review-queue.table.ts | 34 ---------- .../src/db/tables/town-escalations.table.ts | 36 ----------- 7 files changed, 300 deletions(-) delete mode 100644 services/gastown/src/db/tables/rig-agents.table.ts delete mode 100644 services/gastown/src/db/tables/rig-bead-events.table.ts delete mode 100644 services/gastown/src/db/tables/rig-beads.table.ts delete mode 100644 services/gastown/src/db/tables/rig-mail.table.ts delete mode 100644 services/gastown/src/db/tables/rig-molecules.table.ts delete mode 100644 services/gastown/src/db/tables/rig-review-queue.table.ts delete mode 100644 services/gastown/src/db/tables/town-escalations.table.ts diff --git a/services/gastown/src/db/tables/rig-agents.table.ts b/services/gastown/src/db/tables/rig-agents.table.ts deleted file mode 100644 index cab0311450..0000000000 --- a/services/gastown/src/db/tables/rig-agents.table.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { z } from 'zod'; -import { getTableFromZodSchema, getCreateTableQueryFromTable } from '../../util/table'; - -const AgentRole = z.enum(['polecat', 'refinery', 'mayor']); -const AgentStatus = z.enum(['idle', 'working', 'blocked', 'dead']); - -export const RigAgentRecord = z.object({ - id: z.string(), - rig_id: z.string().nullable(), - role: AgentRole, - name: z.string(), - identity: z.string(), - status: AgentStatus, - current_hook_bead_id: z.string().nullable(), - dispatch_attempts: z.number().default(0), - last_activity_at: z.string().nullable(), - checkpoint: z - .string() - .nullable() - .transform((v): unknown => (v === null ? null : (JSON.parse(v) as unknown))) - .pipe(z.unknown()), - created_at: z.string(), -}); - -export type RigAgentRecord = z.output; - -// TODO: This should be called town_agents -export const rig_agents = getTableFromZodSchema('rig_agents', RigAgentRecord); - -export function createTableRigAgents(): string { - return getCreateTableQueryFromTable(rig_agents, { - id: `text primary key`, - rig_id: `text`, - role: `text not null`, - name: `text not null`, - identity: `text not null unique`, - status: `text not null default 'idle'`, - current_hook_bead_id: `text references rig_beads(id)`, - dispatch_attempts: `integer not null default 0`, - last_activity_at: `text`, - checkpoint: `text`, - created_at: `text not null`, - }); -} diff --git a/services/gastown/src/db/tables/rig-bead-events.table.ts b/services/gastown/src/db/tables/rig-bead-events.table.ts deleted file mode 100644 index 0da2c6f25f..0000000000 --- a/services/gastown/src/db/tables/rig-bead-events.table.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { z } from 'zod'; -import { getTableFromZodSchema, getCreateTableQueryFromTable } from '../../util/table'; - -export const BeadEventType = z.enum([ - 'created', - 'assigned', - 'hooked', - 'unhooked', - 'status_changed', - 'closed', - 'escalated', - 'notification_failed', - 'mail_sent', - 'review_submitted', - 'review_completed', - 'agent_spawned', - 'agent_exited', -]); - -export type BeadEventType = z.infer; - -export const RigBeadEventRecord = z.object({ - id: z.string(), - bead_id: z.string(), - agent_id: z.string().nullable(), - event_type: BeadEventType, - old_value: z.string().nullable(), - new_value: z.string().nullable(), - metadata: z.string().transform((v, ctx): Record => { - try { - return JSON.parse(v) as Record; - } catch { - ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'Invalid JSON in metadata' }); - return {}; - } - }), - created_at: z.string(), -}); - -export type RigBeadEventRecord = z.output; - -export const rig_bead_events = getTableFromZodSchema('rig_bead_events', RigBeadEventRecord); - -export function createTableRigBeadEvents(): string { - return getCreateTableQueryFromTable(rig_bead_events, { - id: `text primary key`, - bead_id: `text not null`, - agent_id: `text`, - event_type: `text not null`, - old_value: `text`, - new_value: `text`, - metadata: `text default '{}'`, - created_at: `text not null`, - }); -} - -export function getIndexesRigBeadEvents(): string[] { - return [ - `CREATE INDEX IF NOT EXISTS idx_rig_bead_events_bead ON ${rig_bead_events}(${rig_bead_events.columns.bead_id})`, - `CREATE INDEX IF NOT EXISTS idx_rig_bead_events_created ON ${rig_bead_events}(${rig_bead_events.columns.created_at})`, - `CREATE INDEX IF NOT EXISTS idx_rig_bead_events_type ON ${rig_bead_events}(${rig_bead_events.columns.event_type})`, - ]; -} diff --git a/services/gastown/src/db/tables/rig-beads.table.ts b/services/gastown/src/db/tables/rig-beads.table.ts deleted file mode 100644 index b0e46a2f22..0000000000 --- a/services/gastown/src/db/tables/rig-beads.table.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { z } from 'zod'; -import { getTableFromZodSchema, getCreateTableQueryFromTable } from '../../util/table'; - -const BeadType = z.enum(['issue', 'message', 'escalation', 'merge_request']); -const BeadStatus = z.enum(['open', 'in_progress', 'in_review', 'closed', 'failed']); -const BeadPriority = z.enum(['low', 'medium', 'high', 'critical']); - -export const RigBeadRecord = z.object({ - id: z.string(), - rig_id: z.string().nullable(), - type: BeadType, - status: BeadStatus, - title: z.string(), - body: z.string().nullable(), - assignee_agent_id: z.string().nullable(), - convoy_id: z.string().nullable(), - molecule_id: z.string().nullable(), - priority: BeadPriority, - labels: z.string().transform(v => JSON.parse(v) as string[]), - metadata: z.string().transform(v => JSON.parse(v) as Record), - created_at: z.string(), - updated_at: z.string(), - closed_at: z.string().nullable(), -}); - -export type RigBeadRecord = z.output; - -export const rig_beads = getTableFromZodSchema('rig_beads', RigBeadRecord); - -export function createTableRigBeads(): string { - return getCreateTableQueryFromTable(rig_beads, { - id: `text primary key`, - rig_id: `text`, - type: `text not null`, - status: `text not null default 'open'`, - title: `text not null`, - body: `text`, - assignee_agent_id: `text`, - convoy_id: `text`, - molecule_id: `text`, - priority: `text default 'medium'`, - labels: `text default '[]'`, - metadata: `text default '{}'`, - created_at: `text not null`, - updated_at: `text not null`, - closed_at: `text`, - }); -} - -export function getIndexesRigBeads(): string[] { - return [ - `CREATE INDEX IF NOT EXISTS idx_rig_beads_status ON ${rig_beads}(${rig_beads.columns.status})`, - `CREATE INDEX IF NOT EXISTS idx_rig_beads_type ON ${rig_beads}(${rig_beads.columns.type})`, - `CREATE INDEX IF NOT EXISTS idx_rig_beads_assignee ON ${rig_beads}(${rig_beads.columns.assignee_agent_id})`, - `CREATE INDEX IF NOT EXISTS idx_rig_beads_convoy ON ${rig_beads}(${rig_beads.columns.convoy_id})`, - ]; -} diff --git a/services/gastown/src/db/tables/rig-mail.table.ts b/services/gastown/src/db/tables/rig-mail.table.ts deleted file mode 100644 index c20d4a2393..0000000000 --- a/services/gastown/src/db/tables/rig-mail.table.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { z } from 'zod'; -import { getTableFromZodSchema, getCreateTableQueryFromTable } from '../../util/table'; - -export const RigMailRecord = z.object({ - id: z.string(), - from_agent_id: z.string(), - to_agent_id: z.string(), - subject: z.string(), - body: z.string(), - delivered: z.number().transform(v => Boolean(v)), - created_at: z.string(), - delivered_at: z.string().nullable(), -}); - -export type RigMailRecord = z.output; - -export const rig_mail = getTableFromZodSchema('rig_mail', RigMailRecord); - -export function createTableRigMail(): string { - return getCreateTableQueryFromTable(rig_mail, { - id: `text primary key`, - from_agent_id: `text not null references rig_agents(id)`, - to_agent_id: `text not null references rig_agents(id)`, - subject: `text not null`, - body: `text not null`, - delivered: `integer not null default 0`, - created_at: `text not null`, - delivered_at: `text`, - }); -} - -export function getIndexesRigMail(): string[] { - return [ - `CREATE INDEX IF NOT EXISTS idx_rig_mail_undelivered ON ${rig_mail}(${rig_mail.columns.to_agent_id}) WHERE ${rig_mail.columns.delivered} = 0`, - ]; -} diff --git a/services/gastown/src/db/tables/rig-molecules.table.ts b/services/gastown/src/db/tables/rig-molecules.table.ts deleted file mode 100644 index 663723ae24..0000000000 --- a/services/gastown/src/db/tables/rig-molecules.table.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { z } from 'zod'; -import { getTableFromZodSchema, getCreateTableQueryFromTable } from '../../util/table'; - -const MoleculeStatus = z.enum(['active', 'completed', 'failed']); - -export const RigMoleculeRecord = z.object({ - id: z.string(), - bead_id: z.string(), - formula: z.string().transform(v => JSON.parse(v) as unknown), - current_step: z.number(), - status: MoleculeStatus, - created_at: z.string(), - updated_at: z.string(), -}); - -export type RigMoleculeRecord = z.output; - -export const rig_molecules = getTableFromZodSchema('rig_molecules', RigMoleculeRecord); - -export function createTableRigMolecules(): string { - return getCreateTableQueryFromTable(rig_molecules, { - id: `text primary key`, - bead_id: `text not null references rig_beads(id)`, - formula: `text not null`, - current_step: `integer not null default 0`, - status: `text not null default 'active'`, - created_at: `text not null`, - updated_at: `text not null`, - }); -} diff --git a/services/gastown/src/db/tables/rig-review-queue.table.ts b/services/gastown/src/db/tables/rig-review-queue.table.ts deleted file mode 100644 index 0074fda396..0000000000 --- a/services/gastown/src/db/tables/rig-review-queue.table.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { z } from 'zod'; -import { getTableFromZodSchema, getCreateTableQueryFromTable } from '../../util/table'; - -const ReviewStatus = z.enum(['pending', 'running', 'merged', 'failed']); - -export const RigReviewQueueRecord = z.object({ - id: z.string(), - agent_id: z.string(), - bead_id: z.string(), - branch: z.string(), - pr_url: z.string().nullable(), - status: ReviewStatus, - summary: z.string().nullable(), - created_at: z.string(), - processed_at: z.string().nullable(), -}); - -export type RigReviewQueueRecord = z.output; - -export const rig_review_queue = getTableFromZodSchema('rig_review_queue', RigReviewQueueRecord); - -export function createTableRigReviewQueue(): string { - return getCreateTableQueryFromTable(rig_review_queue, { - id: `text primary key`, - agent_id: `text not null references rig_agents(id)`, - bead_id: `text not null references rig_beads(id)`, - branch: `text not null`, - pr_url: `text`, - status: `text not null default 'pending'`, - summary: `text`, - created_at: `text not null`, - processed_at: `text`, - }); -} diff --git a/services/gastown/src/db/tables/town-escalations.table.ts b/services/gastown/src/db/tables/town-escalations.table.ts deleted file mode 100644 index 88a8449bf1..0000000000 --- a/services/gastown/src/db/tables/town-escalations.table.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { z } from 'zod'; -import { getTableFromZodSchema, getCreateTableQueryFromTable } from '../../util/table'; - -export const EscalationSeverity = z.enum(['low', 'medium', 'high', 'critical']); - -export const TownEscalationRecord = z.object({ - id: z.string(), - source_rig_id: z.string(), - source_agent_id: z.string().nullable(), - severity: EscalationSeverity, - category: z.string().nullable(), - message: z.string(), - acknowledged: z.number(), - re_escalation_count: z.number(), - created_at: z.string(), - acknowledged_at: z.string().nullable(), -}); - -export type TownEscalationRecord = z.output; - -export const town_escalations = getTableFromZodSchema('town_escalations', TownEscalationRecord); - -export function createTableTownEscalations(): string { - return getCreateTableQueryFromTable(town_escalations, { - id: `text primary key`, - source_rig_id: `text not null`, - source_agent_id: `text`, - severity: `text not null`, - category: `text`, - message: `text not null`, - acknowledged: `integer not null default 0`, - re_escalation_count: `integer not null default 0`, - created_at: `text not null`, - acknowledged_at: `text`, - }); -}