fix(monitoring): persist session summaries to avoid history scans

- Maintain counts and display snapshots in source transactions with replay-safe deduplication.
- Read session lists exclusively from summaries and remove execution-only filters.
- Automatically initialize historical summaries in bounded, resumable batches during OSS startup.
- Add behavioral contracts covering accounting, retention, query cost and PostgreSQL concurrency.

Verified with the required session_summary suite and real container upgrade startup.
This commit is contained in:
BiFangKNT
2026-10-20 06:12:00 +08:00
parent 62b647761f
commit 810d053df9
33 changed files with 4227 additions and 466 deletions
@@ -78,7 +78,8 @@ class TestEventLogStore:
store = EventLogStore(mock_db_engine)
mock_session = AsyncMock()
mock_session.add = MagicMock()
mock_db_engine.dialect.name = 'sqlite'
mock_session.execute.return_value = MagicMock(rowcount=1)
mock_session.commit = AsyncMock()
with patch.object(store, '_session_factory') as mock_factory:
@@ -98,8 +99,8 @@ class TestEventLogStore:
)
assert event_id == 'evt_1'
stored_event = mock_session.add.call_args.args[0]
assert stored_event.metadata_json is None
stored_event = mock_session.execute.call_args.args[0].compile().params
assert stored_event['metadata_json'] is None
@pytest.mark.asyncio
async def test_append_event_stores_metadata_json(self, mock_db_engine):
@@ -109,7 +110,8 @@ class TestEventLogStore:
store = EventLogStore(mock_db_engine)
mock_session = AsyncMock()
mock_session.add = MagicMock()
mock_db_engine.dialect.name = 'sqlite'
mock_session.execute.return_value = MagicMock(rowcount=1)
mock_session.commit = AsyncMock()
with patch.object(store, '_session_factory') as mock_factory:
@@ -130,9 +132,9 @@ class TestEventLogStore:
)
assert event_id == 'evt_steering'
stored_event = mock_session.add.call_args.args[0]
assert '"status": "queued"' in stored_event.metadata_json
assert '"claimed_by_run_id": "run_1"' in stored_event.metadata_json
stored_event = mock_session.execute.call_args.args[0].compile().params
assert '"status": "queued"' in stored_event['metadata_json']
assert '"claimed_by_run_id": "run_1"' in stored_event['metadata_json']
class TestTranscriptStore: