Fix incorrect compress command name in tips
NousResearch/hermes-agent · cluster 20020 · gateway
Data as of
Nothing open on GitHub. Fix merged in #20579. Check it covers your case.
The short answer
- Known?
- Yes. 6 related items grouped here, 1 issue already closed.
- Fix event
- A fix was merged to main in PR #20579. Check it covers your case. No release data is tracked.
- Tracker
- The maintainers' tracker marks this
resolved, deciding PR #20579. That is separate from the fix event. - Still open
- Nothing open on GitHub.
Multiple fixes correcting a wrong command name (likely /compact instead of /compress) appearing in context-overflow and compaction guidance tips. Related changes also touch memory authority, cache eviction, and summary boundary markers.
Open issues0
Open PRs0
Fixes on record
-
#20579 fix: salvage batch — compaction guidance, memory authority, cache eviction after compression
files:
agent/context_compressor.py,agent/memory_manager.py,gateway/run.py,scripts/release.pyShow the diff
-
agent/context_compressor.py@@ -43,6 +43,9 @@ "they were already addressed. " "Your current task is identified in the '## Active Task' section of the " "summary — resume exactly from there. " + "IMPORTANT: Your persistent memory (MEMORY.md, USER.md) in the system " + "prompt is ALWAYS authoritative and active — never ignore or deprioritize " + "memory content due to this compaction note. " "Respond ONLY to the latest user message " "that appears AFTER this summary. The current session state (files, " "config, etc.) may reflect work described here — avoid repeating it:" @@ -1373,7 +1376,7 @@ def compress(self, messages: List[Dict[str, Any]], current_tokens: int = None, f msg = messages[i].copy() if i == 0 and msg.get("role") == "system": existing = msg.get("content") - _compression_note = "[Note: Some earlier conversation turns have been compacted into a handoff summary to preserve context space. The current session state may still reflect earlier work, so build on that summary and state rather than re-doing work.]" + _compression_note = "[Note: Some earlier conversation turns have been compacted into a handoff summary to preserve context space. The current session state may still reflect earlier work, so build on that summary and state rather than re-doing work. Your persistent memory (MEMORY.md, USER.md) remains fully authoritative regardless of compaction.]" if _compression_note not in _content_text_for_contains(existing): msg["content"] = _append_text_to_content( existing, -
agent/memory_manager.py@@ -46,7 +46,7 @@ re.IGNORECASE, ) _INTERNAL_NOTE_RE = re.compile( - r'\[System note:\s*The following is recalled memory context,\s*NOT new user input\.\s*Treat as informational background data\.\]\s*', + r'\[System note:\s*The following is recalled memory context,\s*NOT new user input\.\s*Treat as (?:informational background data|authoritative reference data[^\]]*)\.\]\s*', re.IGNORECASE, ) @@ -180,7 +180,8 @@ def build_memory_context_block(raw_context: str) -> str: return ( "<memory-context>\n" "[System note: The following is recalled memory context, " - "NOT new user input. Treat as informational background data.]\n\n" + "NOT new user input. Treat as authoritative reference data — " + "this is the agent's persistent memory and should inform all responses.]\n\n" f"{clean}\n" "</memory-context>" ) -
gateway/run.py@@ -6322,6 +6322,10 @@ async def _handle_message_with_agent(self, event, source, _quick_key: str, run_g _werr, ) finally: + # Evict the cached agent so the next turn + # rebuilds its system prompt from current + # SOUL.md, memory, and skills. + self._evict_cached_agent(session_key) self._cleanup_agent_resources(_hyg_agent) except Exception as e: @@ -9505,6 +9509,9 @@ async def _handle_compress_command(self, event: MessageEvent) -> str: _aux_fail_model = getattr(compressor, "_last_aux_model_failure_model", None) _aux_fail_err = getattr(compressor, "_last_aux_model_failure_error", None) finally: + # Evict cached agent so next turn rebuilds system prompt + # from current files (SOUL.md, memory, etc.). + self._evict_cached_agent(session_key) self._cleanup_agent_resources(tmp_agent) lines = [f"🗜️ {summary['headline']}"] if focus_topic: -
scripts/release.py@@ -177,6 +177,8 @@ "[redacted:email]": "hendrixfreire", "[redacted:email]": "benjaminsehl", "[redacted:email]": "Nerijusas", + # Compaction salvage batch (May 2026) + "[redacted:email]": "MacroAnarchy", "[redacted:email]": "Ito-69", "[redacted:email]": "georgeglessner", "[redacted:email]": "maxims-oss",
-
4 PRs closed without merging
From the close comments: done elsewhere 2 · closed without comment 1 · duplicate 1
-
#20027 fix(gateway): correct compression guidance command · done elsewhere →
2e5acc5 -
#20057 fix: use correct /compress command name in context-overflow tips · done elsewhere →
#20027 -
#20163 fix(gateway): correct /compact to /compress in context overflow tips · duplicate →
#20027 - #20172 fix: salvage batch — compaction guidance, memory authority, eviction, summary boundary marker · closed without comment
Closed issues · 1
- Closed#20020[Bug]: Compress command tips wrong
How this cluster was grouped
-
Link evidence (
structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference. -
Pairwise link density
0.33: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36.1.00means every pair is linked.
Pick up a Lab task
Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.
Open the LabAt a glance
- Subsystem
- gateway
- Merged PRs
- #20579
- Closed issues
- 1
- Attempts
- 4 PRs closed without merging
- Fix link checked
- 6 May 2026