hermes-agent/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/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 docs(i18n): translate all docs into Simplified Chinese (zh-Hans) (#31942) 2026-05-25 01:47:38 -07:00
skills feat(providers): remove google-gemini-cli + google-antigravity OAuth providers (#50492) 2026-06-21 19:53:27 -07:00
checkpoints-and-rollback.md docs(i18n): translate all docs into Simplified Chinese (zh-Hans) (#31942) 2026-05-25 01:47:38 -07:00
cli.md docs(i18n): port deep-audit corrections to zh-Hans mirror (#41104) 2026-06-07 01:57:18 -07:00
configuration.md feat(providers): remove google-gemini-cli + google-antigravity OAuth providers (#50492) 2026-06-21 19:53:27 -07:00
configuring-models.md docs(i18n): port deep-audit corrections to zh-Hans mirror (#41104) 2026-06-07 01:57:18 -07:00
docker.md fix(docker): replace dashboard --insecure with basic-auth provider 2026-06-21 19:05:27 -07:00
git-worktrees.md docs(i18n): port deep-audit corrections to zh-Hans mirror (#41104) 2026-06-07 01:57:18 -07:00
profile-distributions.md docs(i18n): translate all docs into Simplified Chinese (zh-Hans) (#31942) 2026-05-25 01:47:38 -07:00
profiles.md docs(profile): update clone-from references 2026-06-13 07:33:58 -07:00
security.md remove Vercel AI Gateway and Vercel Sandbox (#33067) 2026-05-27 00:43:32 -07:00
sessions.md docs(i18n): translate all docs into Simplified Chinese (zh-Hans) (#31942) 2026-05-25 01:47:38 -07:00
tui.md docs(tui): correct HERMES_TUI_GATEWAY_URL — dashboard-internal, not remote-attach (#42162) 2026-06-08 09:37:03 -07:00
windows-native.md fix(docs): update all install instructions everywhere 2026-06-04 21:07:45 -04:00
windows-wsl-quickstart.md fix(docs): update all install instructions everywhere 2026-06-04 21:07:45 -04:00