mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
refactor(relay): drop the flat_dm_status knob — liveliness is unconditional; add relay docs page
flat_dm_status was speculative config (rubric violation): no user wants 'make my agent look dead', and the only real consumer of status suppression was native's placement-contamination guard — which the relay lane handles structurally (QA-6/7 send-side anchor strip, leak-guard test), not via preference. Status now anchors whenever an inbound ts exists, in both modes. Docs: new website/docs/user-guide/messaging/relay.md — enterprise-only relay lane page documenting the platforms.relay.extra.<platform> subset shape (nested wins, flat fallback), the Slack reply_in_thread control, and always-on liveliness. Kept out of the native slack.md on purpose: relay controls are not Slack config.
This commit is contained in:
parent
9864e00fb4
commit
85a75f3155
3 changed files with 72 additions and 39 deletions
|
|
@ -289,15 +289,16 @@ async def test_typing_flat_mode_status_anchors_to_trigger_ts_by_default():
|
|||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_typing_flat_mode_opt_out_drops_anchor():
|
||||
"""flat_dm_status: false restores the fully-anchorless flat posture."""
|
||||
adapter, stub = _wire_with_ts("D1", "dm", "1700.0042")
|
||||
adapter.config.extra = {
|
||||
"slack": {"reply_in_thread": False, "flat_dm_status": False}
|
||||
}
|
||||
await adapter.send_typing("D1", metadata=None)
|
||||
typing = [f for f in stub.sent if f["op"] == "typing"]
|
||||
assert typing and "thread_id" not in typing[-1]["metadata"]
|
||||
async def test_typing_anchors_unconditionally_in_both_modes():
|
||||
"""Liveliness is not a preference: the status anchors whenever an inbound
|
||||
ts exists, regardless of reply_in_thread. Placement safety comes from the
|
||||
QA-6/7 send-side anchor strip, not from suppressing the status."""
|
||||
for extra in ({}, {"slack": {"reply_in_thread": False}}):
|
||||
adapter, stub = _wire_with_ts("D1", "dm", "1700.0042")
|
||||
adapter.config.extra = extra
|
||||
await adapter.send_typing("D1", metadata=None)
|
||||
typing = [f for f in stub.sent if f["op"] == "typing"]
|
||||
assert typing and typing[-1]["metadata"].get("thread_id") == "1700.0042"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue