fix(session): reset out-of-range last_consolidated to recover hidden history (#4066)
This commit is contained in:
@@ -205,7 +205,8 @@ class TestRepairCorruptFile:
|
||||
|
||||
session = mgr._load("test:badts")
|
||||
assert session is not None
|
||||
assert session.last_consolidated == 5
|
||||
# offset 5 exceeds the single loaded message; reset to avoid hiding history (#4066)
|
||||
assert session.last_consolidated == 0
|
||||
assert isinstance(session.created_at, datetime)
|
||||
|
||||
def test_read_session_file_repairs_corrupt_jsonl(self, tmp_path: Path):
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
"""Reset a corrupt last_consolidated offset instead of hiding history (#4066)."""
|
||||
|
||||
from nanobot.session.manager import Session
|
||||
|
||||
|
||||
def _session(count: int, last_consolidated: int) -> Session:
|
||||
msgs = [{"role": "user", "content": f"msg{i}"} for i in range(count)]
|
||||
return Session(key="chan:chat", messages=msgs, last_consolidated=last_consolidated)
|
||||
|
||||
|
||||
def test_out_of_range_offset_is_reset():
|
||||
assert _session(10, 999).last_consolidated == 0
|
||||
assert _session(3, -5).last_consolidated == 0
|
||||
|
||||
|
||||
def test_valid_offset_is_preserved():
|
||||
session = _session(10, 4)
|
||||
assert session.last_consolidated == 4
|
||||
assert len(session.get_history()) == 6
|
||||
Reference in New Issue
Block a user