chore: anchor fresh-start history to upstream

This commit is contained in:
2026-09-16 15:06:54 +08:00
parent 64a9b43261
commit 012c9c6bed
3514 changed files with 48322 additions and 187346 deletions
@@ -0,0 +1,37 @@
"""The CLI's session store must be the registry's shared handle for state.db.
``_init_session_store`` used to construct a bare ``SessionDB()``. The goal/loop/heartbeat
managers acquire the same path through ``hermes_state_registry`` from the REPL thread a
moment later, so a bare handle meant a SECOND full open — including the /proc-wide
deleted-WAL sidecar scan (~4k readlinks, each a GIL round-trip against the busy startup
threads) — which showed up as the post-banner freeze before the first prompt.
"""
from types import SimpleNamespace
import hermes_cli.goals as goals
from cli import HermesCLI
def test_cli_session_store_is_the_registry_handle_goals_reuse(monkeypatch):
import hermes_state_registry
monkeypatch.setattr(goals, "_DB_CACHE", {})
constructed = []
real_open = hermes_state_registry._open_session_db
def recording_open(path):
constructed.append(path)
return real_open(path)
monkeypatch.setattr(hermes_state_registry, "_open_session_db", recording_open)
cli = SimpleNamespace()
try:
HermesCLI._init_session_store(cli)
assert cli._session_db is not None and not cli._session_db_unavailable
# goals/loops/heartbeat go through the registry: same object, no second open.
assert goals._get_session_db() is cli._session_db
assert len(constructed) == 1
finally:
hermes_state_registry.close_all()