hermes-agent/website/docs/user-guide
Ben 751a300fca docs(cron): scope in_channel to channels; document DM continuation knob
Live DM testing showed a reply to a DM cron brief did NOT continue the job.
Root cause: for a 1:1 DM the governing knob is dm_top_level_threads_as_sessions
(default True), NOT reply_in_thread / cron_continuable_surface. Under the
default, each top-level DM keys to a per-message session (…:dm:<chat>:<ts>),
so a reply mints a new ts and can never converge with the flat …:dm:<chat>
session the cron seed creates.

A 1:1 DM has no thread-vs-timeline split, so "in_channel" has no coherent
meaning for a DM — cron_continuable_surface is a channel concept and is a
no-op for DMs. DM continuation is governed entirely by
dm_top_level_threads_as_sessions:
  - false → all top-level DMs share …:dm:<chat> → seed + reply converge → works
  - true (default) → per-message sessions → no continuation (cron or interactive)

Option A (chosen): document the requirement; no code change (the flat-DM seed
from the prior commit already lands correctly when the knob is false). Adds a
":::note 1:1 DMs" admonition to cron.md + the zh-Hans mirror.

Verification (real inbound handler, not a hard-coded assumption — the mistake
that made the earlier DM E2E falsely pass): tests/manual/cron_inchannel_dm_e2e.py
drives the REAL _handle_slack_message for a top-level DM under both knob values
and asserts false→converges (…:dm:D_TESTDM == seed), true→diverges
(…:dm:D_TESTDM:<ts>). See decisions.md D9.
2026-07-01 03:16:13 -07:00
..
features docs(cron): scope in_channel to channels; document DM continuation knob 2026-07-01 03:16:13 -07:00
messaging feat(cron/slack): flat in-channel continuable cron delivery surface 2026-07-01 03:16:13 -07:00
secrets
skills feat(claude-design): add surface-first conditioning + slop diagnostic (#55399) 2026-06-29 21:12:29 -07:00
_category_.json
checkpoints-and-rollback.md
cli.md
configuration.md revert: back out prompt_caching.enabled toggle (#56105) for re-evaluation (#56126) 2026-07-01 00:20:32 -07:00
configuring-models.md
desktop.md fix(desktop): route old runtimes through dashboard when serve is absent 2026-06-28 22:10:42 -05:00
docker.md
git-worktrees.md
managed-scope.md
multi-profile-gateways.md
profile-distributions.md
profiles.md
security.md
sessions.md
tui.md
windows-native.md
windows-wsl-quickstart.md