Files
hermes-agent/website/docs/developer-guide
teknium1 c61bbc2461 fix(gateway): persist the authored text, not the Discord triggering note, as the user row
The `[Triggering message id: …]` note that `_prepend_inbound_reply_context`
adds for Discord turns is a model instruction (which id to pass to the
discord tools), not something the user wrote. `_hmwa_apply_message_timestamp`
derived `persist_user_message` from the already-wrapped text, so every
Discord-origin user row stored the note as the first line of `content` —
the desktop transcript (and FTS, memory providers, exports) showed the
envelope instead of the message.

- `run_inbound.py`: the note is now the OUTERMOST prefix (after the reply
  pointer) and rendered by one function, `discord_triggering_note`;
  `strip_discord_triggering_note` peels exactly that prefix for THIS event
  off the persisted text, so the `[Replying to: "…"]` pointer survives.
- `run_turn.py::_hmwa_apply_message_timestamp`: persist the stripped text.
  The wrapper keeps riding `message_text`; when the durable row differs, the
  live bytes land in the replay-only `api_content` sidecar by the existing
  persist-override contract (same as timestamps and per-turn sidecar notes).
- `run_turn.py::_run_agent_queued_followup`: the in-band queued follow-up
  runs the same inbound prep but passed no persist override; it now carries
  the authored text too.

Live: real inbound prep → persist seam → SessionStore.append_to_transcript on
a temp state.db. Before: content='[Triggering message id: `1550…` — use as
`message_id` …]\n\nCreate a project plan for Q4'. After: content='Create a
project plan for Q4', api_content=<wrapped bytes>; reply-pointer and
no-message_id (desktop relay) controls unchanged.

Slimmer redo of #71309 by @JonthanaHanh (regex strip on a `gateway/run.py`
site that no longer exists; tests exercised a copied regex); #71619
(@calvinnwq, +1303/-40 over 10 files) is over the salvage bar.

Fixes #71304
Fixes #114719
Co-authored-by: JonthanaHanh <92574114+JonthanaHanh@users.noreply.github.com>
2026-09-18 09:53:09 -07:00
..