# NousResearch/hermes-agent · Fix incorrect compress command name in tips

## Open now

- 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.

## TL;DR

- 6 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 4 PR(s) closed without merging.
- A fix was merged to main in PR #20579. Verify it addresses your case.
- **Recommended:** read PR #20579 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `resolved` · deciding PR(s): `pr-20579`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.33`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #20020: \[Bug\]: Compress command tips wrong

## Prior & competing PRs

- **#20579: fix: salvage batch — compaction guidance, memory authority, cache eviction after compression**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `agent/context_compressor.py`, `agent/memory_manager.py`, `gateway/run.py`, `scripts/release.py`
  - fix hunks:
  - `agent/context_compressor.py`

    ```diff
    @@ -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:"
    ```

    ```diff
    @@ -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`

    ```diff
    @@ -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,
     )
     
    ```

    ```diff
    @@ -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`

    ```diff
    @@ -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:
    ```

    ```diff
    @@ -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`

    ```diff
    @@ -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",
    ```
- **#20027: fix(gateway): correct compression guidance command**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `2e5acc5e771f111abf5335323c35b8a84343b021`
- **#20057: fix: use correct /compress command name in context-overflow tips**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#20027`
- **#20163: fix(gateway): correct /compact to /compress in context overflow tips**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#20027`
- **#20172: fix: salvage batch — compaction guidance, memory authority, eviction, summary boundary marker**. closed without merge
  - maintainer direction: category `silent_close`; implication `active`

## Fix status

- Merged to main in PR #20579 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-05-06`.
- Subsystem: `gateway`
