diff --git a/crates/manager-core/migrations/0036_index_triggers_kind_enabled.sql b/crates/manager-core/migrations/0036_index_triggers_kind_enabled.sql new file mode 100644 index 0000000..8093350 --- /dev/null +++ b/crates/manager-core/migrations/0036_index_triggers_kind_enabled.sql @@ -0,0 +1,12 @@ +-- F-P-010 (audit 2026-06-07): list_active_queue_consumers runs every +-- 100 ms via the dispatcher's queue arm. Predicate is +-- `WHERE t.kind = 'queue' AND t.enabled = TRUE` with no `app_id` +-- filter. The available index `idx_triggers_app_kind_enabled +-- (app_id, kind) WHERE enabled = TRUE` requires an app_id predicate to +-- be useful — without one the planner falls back to a sequential scan +-- of the triggers table every tick. Add an index keyed purely on +-- `kind` (partial, where enabled) so the same hot query becomes an +-- index-only lookup. +CREATE INDEX IF NOT EXISTS idx_triggers_kind_enabled + ON triggers (kind) + WHERE enabled = TRUE;