fix: Implement Phase 2 major fixes
Database: - Add missing indexes for api_key_hash, status, metrics queries - New migration: 005_add_missing_indexes.sql Server: - Fix WebSocket Ping/Pong protocol (RFC 6455 compliance) - Use separate channel for Pong responses Agent: - Replace format!() path construction with PathBuf::join() - Replace todo!() macros with proper errors for macOS support Dashboard: - Fix duplicate filter values in Agents page (__unassigned__ sentinel) - Add onError handlers to all mutations in Agents, Clients, Sites pages All changes reviewed and approved. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
-- Migration: Add missing indexes for performance
|
||||
-- These indexes were identified during code review as missing
|
||||
-- Date: 2026-01-20
|
||||
|
||||
-- Index for agent API key lookups (authentication)
|
||||
-- Supports legacy authentication where agents have their own api_key_hash
|
||||
CREATE INDEX IF NOT EXISTS idx_agents_api_key_hash ON agents(api_key_hash);
|
||||
|
||||
-- Index for site API key lookups
|
||||
-- Note: idx_sites_api_key already exists from migration 002, but using consistent naming
|
||||
-- This is a no-op if the index already exists
|
||||
CREATE INDEX IF NOT EXISTS idx_sites_api_key_hash ON sites(api_key_hash);
|
||||
|
||||
-- Index for command status queries (find all pending/running commands)
|
||||
-- Note: idx_commands_agent_status exists for (agent_id, status)
|
||||
-- This index is for querying by status alone (e.g., find all pending commands)
|
||||
CREATE INDEX IF NOT EXISTS idx_commands_status ON commands(status);
|
||||
|
||||
-- Index for metrics time-range queries
|
||||
-- Note: idx_metrics_agent_time already exists for (agent_id, timestamp DESC)
|
||||
-- This is equivalent - creating with requested name for compatibility
|
||||
CREATE INDEX IF NOT EXISTS idx_metrics_agent_timestamp ON metrics(agent_id, timestamp DESC);
|
||||
|
||||
-- Index for finding online agents quickly with last_seen ordering
|
||||
-- Allows efficient queries like: WHERE status = 'online' ORDER BY last_seen DESC
|
||||
CREATE INDEX IF NOT EXISTS idx_agents_status_last_seen ON agents(status, last_seen DESC);
|
||||
Reference in New Issue
Block a user