mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-08 13:12:08 +00:00
test(state): cover explicit active=1 on message INSERT (#51646)
Add a regression for legacy DBs whose active column has no INSERT default, and assert gateway conversation replay sees newly appended rows.
This commit is contained in:
parent
ae878e1aee
commit
7445df1505
1 changed files with 54 additions and 0 deletions
|
|
@ -663,6 +663,60 @@ class TestMessageStorage:
|
|||
assert messages[0]["content"] == "Hello"
|
||||
assert messages[1]["role"] == "assistant"
|
||||
|
||||
def test_append_message_sets_active_for_transcript_loader(self, db):
|
||||
"""Regression #51646: gateway loaders filter on active = 1."""
|
||||
db.create_session(session_id="s1", source="discord")
|
||||
mid = db.append_message("s1", role="user", content="Hello")
|
||||
active = db._conn.execute(
|
||||
"SELECT active FROM messages WHERE id = ?", (mid,)
|
||||
).fetchone()[0]
|
||||
assert active == 1
|
||||
assert len(db.get_messages_as_conversation("s1")) == 1
|
||||
|
||||
def test_append_message_active_one_when_column_has_no_default(self, tmp_path):
|
||||
"""Legacy DBs may have active added without a working INSERT default."""
|
||||
db_path = tmp_path / "legacy_state.db"
|
||||
conn = sqlite3.connect(db_path)
|
||||
conn.executescript(
|
||||
"""
|
||||
CREATE TABLE schema_version (version INTEGER);
|
||||
INSERT INTO schema_version VALUES (11);
|
||||
CREATE TABLE sessions (
|
||||
id TEXT PRIMARY KEY, source TEXT, started_at REAL, ended_at REAL,
|
||||
message_count INTEGER DEFAULT 0, tool_call_count INTEGER DEFAULT 0,
|
||||
title TEXT, parent_session_id TEXT, model_config TEXT
|
||||
);
|
||||
CREATE TABLE messages (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
session_id TEXT NOT NULL, role TEXT NOT NULL, content TEXT,
|
||||
tool_call_id TEXT, tool_calls TEXT, tool_name TEXT,
|
||||
timestamp REAL NOT NULL, token_count INTEGER, finish_reason TEXT,
|
||||
reasoning TEXT, reasoning_content TEXT, reasoning_details TEXT,
|
||||
codex_reasoning_items TEXT, codex_message_items TEXT,
|
||||
platform_message_id TEXT, observed INTEGER DEFAULT 0
|
||||
);
|
||||
CREATE TABLE state_meta (key TEXT PRIMARY KEY, value TEXT);
|
||||
"""
|
||||
)
|
||||
conn.execute(
|
||||
"INSERT INTO sessions (id, source, started_at) VALUES ('s1', 'discord', 1.0)"
|
||||
)
|
||||
conn.execute("ALTER TABLE messages ADD COLUMN active INTEGER")
|
||||
conn.execute("ALTER TABLE messages ADD COLUMN compacted INTEGER DEFAULT 0")
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
session_db = SessionDB(db_path=db_path)
|
||||
try:
|
||||
mid = session_db.append_message("s1", role="user", content="gateway turn")
|
||||
active = session_db._conn.execute(
|
||||
"SELECT active FROM messages WHERE id = ?", (mid,)
|
||||
).fetchone()[0]
|
||||
assert active == 1
|
||||
assert len(session_db.get_messages_as_conversation("s1")) == 1
|
||||
finally:
|
||||
session_db.close()
|
||||
|
||||
def test_append_message_accepts_explicit_timestamp(self, db):
|
||||
db.create_session(session_id="s1", source="telegram")
|
||||
event_ts = 1777383653.0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue