mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-23 16:36:23 +00:00
A context-compaction handoff is persisted as an ordinary history message but is not a real turn. The ACP history replay streamed it as a bare user/agent message chunk, dropping the in-process _compressed_summary marker, so ACP frontends (editors, vscode-hermes) rendered the entire handoff as a regular message. Tag replayed summary chunks under _meta.hermes (ACP's extensibility channel), covering all three persistence shapes the compressor emits: - standalone role="user" handoff -> compactionSummary: true - standalone role="assistant" handoff (alternation-driven role pick) -> compactionSummary: true - merge-into-tail message (preserved tail content + appended summary) -> containsCompactionSummary: true, a distinct key so clients that collapse standalone summaries cannot hide the preserved real content Detection honors the in-process metadata flag and falls back to a new ContextCompressor.classify_summary_content() content classifier (standalone/merged/None), so it also works for a DB-reloaded session that lost the in-memory flag. _is_context_summary_content is now a thin wrapper over the classifier, keeping existing callers unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_approval_isolation.py | ||
| test_auth.py | ||
| test_edit_approval.py | ||
| test_entry.py | ||
| test_events.py | ||
| test_mcp_e2e.py | ||
| test_permissions.py | ||
| test_ping_suppression.py | ||
| test_server.py | ||
| test_session.py | ||
| test_session_db_private_access.py | ||
| test_session_provenance.py | ||
| test_tools.py | ||