Bot Mode room members each keep a hidden `Group: <roomId> · <thread>`
plumbing session that grows with every drive. When it bloats the member
degrades into empty replies, yet nothing could compress it: the session is
hidden from every list, the focused-chat /compress never targets it, and
`-q` chat forwards slash text to the model. Group settings now lists each
member with a "Compress history" action that resumes every session the
room holds for that member (thread-scoped pointers, the legacy pre-thread
pointer, or the pre-thread title as last resort) and runs the gateway's
session.compress against the live runtime id — the exact RPC pair the
reporter had to issue by hand over JSON-RPC. A 4007 (no such session)
skips; anything else surfaces in the toast. requestForBot/host.request
gain an optional per-request timeout so the 660 s compress budget the
focused-chat /compress already uses applies here too instead of the
socket's 30 s default reporting a false timeout.
Slim redo of #102333 by @fangliquanflq (same action, without the
auto-hygiene sweep and the group-turns facade appendage).
Co-authored-by: fangliquanflq <fangliquanflq@users.noreply.github.com>