mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-21 16:18:55 +00:00
fix(context): persist fallback compaction breaker
This commit is contained in:
parent
5ce827cac9
commit
af7dceaf77
10 changed files with 394 additions and 91 deletions
|
|
@ -758,6 +758,7 @@ CREATE TABLE IF NOT EXISTS sessions (
|
|||
handoff_error TEXT,
|
||||
compression_failure_cooldown_until REAL,
|
||||
compression_failure_error TEXT,
|
||||
compression_fallback_streak INTEGER NOT NULL DEFAULT 0,
|
||||
rewind_count INTEGER NOT NULL DEFAULT 0,
|
||||
archived INTEGER NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY (parent_session_id) REFERENCES sessions(id)
|
||||
|
|
@ -2295,6 +2296,45 @@ class SessionDB:
|
|||
"clear_compression_failure_cooldown(%s) failed: %s",
|
||||
session_id, exc,
|
||||
)
|
||||
|
||||
def get_compression_fallback_streak(self, session_id: str) -> int:
|
||||
"""Return the persisted deterministic-fallback streak."""
|
||||
if not session_id:
|
||||
return 0
|
||||
with self._lock:
|
||||
conn = self._conn
|
||||
if conn is None:
|
||||
return 0
|
||||
row = conn.execute(
|
||||
"SELECT compression_fallback_streak FROM sessions WHERE id = ?",
|
||||
(session_id,),
|
||||
).fetchone()
|
||||
if row is None:
|
||||
return 0
|
||||
value = (
|
||||
row["compression_fallback_streak"]
|
||||
if isinstance(row, sqlite3.Row)
|
||||
else row[0]
|
||||
)
|
||||
try:
|
||||
return max(0, int(value or 0))
|
||||
except (TypeError, ValueError):
|
||||
return 0
|
||||
|
||||
def set_compression_fallback_streak(self, session_id: str, streak: int) -> None:
|
||||
"""Persist the deterministic-fallback streak for one session."""
|
||||
if not session_id:
|
||||
return
|
||||
normalized = max(0, int(streak))
|
||||
|
||||
def _do(conn):
|
||||
conn.execute(
|
||||
"UPDATE sessions SET compression_fallback_streak = ? WHERE id = ?",
|
||||
(normalized, session_id),
|
||||
)
|
||||
|
||||
self._execute_write(_do)
|
||||
|
||||
# ──────────────────────────────────────────────────────────────────────
|
||||
# Compression locks
|
||||
# ──────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue