Enforce configured Telegram direct-message tool policies across queued runs and native harnesses. Unsupported restricted harnesses now refuse visibly; turns without explicit policy keep existing tool access. Co-authored-by: Ayaan Zaidi <hi@obviy.us>
* refactor(codex): split thread lifecycle * refactor(codex): keep lifecycle types internal