From 40ecd61d4993754e077a2bdf0c68707cd2add5f4 Mon Sep 17 00:00:00 2001 From: kenyonxu Date: Thu, 11 Jun 2026 13:06:19 +0800 Subject: [PATCH] fix(gateway): move handoff_state index to DEFERRED_INDEX_SQL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The index references the handoff_state column which is added by _reconcile_columns() on legacy databases. Placing it in SCHEMA_SQL causes 'no such column' errors during schema migration tests because SCHEMA_SQL runs before reconciliation. Move to DEFERRED_INDEX_SQL which runs after _reconcile_columns() — matching the existing pattern used by idx_messages_session_active. Refs: #43504, #40695 --- hermes_state.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hermes_state.py b/hermes_state.py index bda6eeacd62..6deda428dc1 100644 --- a/hermes_state.py +++ b/hermes_state.py @@ -522,6 +522,8 @@ CREATE INDEX IF NOT EXISTS idx_compression_locks_expires ON compression_locks(ex DEFERRED_INDEX_SQL = """ CREATE INDEX IF NOT EXISTS idx_messages_session_active ON messages(session_id, active, timestamp); +CREATE INDEX IF NOT EXISTS idx_sessions_handoff_state + ON sessions(handoff_state, started_at); """ FTS_SQL = """