-- Migration: 005_machine_metadata.sql -- Purpose: Add the organization / site / tags columns to connect_machines. -- -- db::machines::update_machine_metadata (called from relay/mod.rs on every -- AgentStatus update) has always written `organization`, `site`, and `tags` -- to connect_machines, but no prior migration ever created those columns. -- The caller swallows the error (`let _ = ...`), so the write failed silently -- and the metadata never persisted. This adds the columns so the write -- succeeds, and the Machine struct now maps them (so SELECT * returns them). -- Resolves coord todo faf39fe0. -- -- Idempotent: ADD COLUMN IF NOT EXISTS. Applied on server startup by -- sqlx::migrate!(); never pre-applied via psql. Ordered after 004. -- See .claude/standards/gururmm/sqlx-migrations.md. -- organization / site: nullable free-form text reported by the agent -- (AgentStatus.organization / AgentStatus.site). ALTER TABLE connect_machines ADD COLUMN IF NOT EXISTS organization TEXT; ALTER TABLE connect_machines ADD COLUMN IF NOT EXISTS site TEXT; -- tags: TEXT[] matching the &[String] bound by update_machine_metadata and the -- repeated-string AgentStatus.tags proto field. NOT NULL DEFAULT '{}' so every -- row (existing and new) holds an array and decodes cleanly into Vec; -- the metadata update only overwrites it when the agent reports a non-empty set. ALTER TABLE connect_machines ADD COLUMN IF NOT EXISTS tags TEXT[] NOT NULL DEFAULT '{}';