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:
Victor Kyriazakos 2026-07-28 00:05:41 +00:00
parent 9864e00fb4
commit 85a75f3155
3 changed files with 72 additions and 39 deletions

View file

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