507d479c8c
* test(clarify-gateway): cover signature, timeout fallback, and notify paths for 100% coverage Fixes #36531 (cherry picked from commit 5265dfe2f5d484c5fb97c71eb311cbb230c0110e) * fix(clarify): one canonical timeout across CLI, TUI/desktop, and gateway The clarify wait timeout was resolved three different (wrong) ways: - CLI (`cli.py`, `hermes_cli/callbacks.py`) read a non-existent top-level `clarify.timeout`, so it always fell through to a hardcoded 120s instead of the canonical `agent.clarify_timeout` (default 3600) the gateway uses (#42969). - The TUI/desktop bridge called `_block("clarify.request", …)` with no timeout, so it used the hardcoded 300s `_block` default and ignored config (#51960). - There was no way to disable the auto-skip: a user who wanted the agent to wait indefinitely while they think couldn't get it. Collapse all of this onto a single resolver: - `tools.clarify_gateway.resolve_clarify_timeout(config)` is the one source of truth. Order: explicit legacy `clarify.timeout` (back-compat) → canonical `agent.clarify_timeout` → 3600. `<= 0` is preserved verbatim as "unlimited". - CLI, callbacks, and the TUI bridge (`_clarify_timeout_seconds`) all route through it, so the three surfaces can't drift. - `<= 0` means unlimited everywhere: `wait_for_response` and `_block` drop the deadline (heartbeat still fires), and the CLI hides its countdown. Tests: resolver order / default / non-numeric / unlimited-sentinel; an unlimited `wait_for_response` blocks until resolved rather than auto-skipping; the TUI clarify bridge passes the configured timeout to `_block`. Supersedes #42974 (CLI key), #51993 (TUI honors config), and #68986 (unlimited wait); folds in #52031 (clarify_gateway coverage). Co-authored-by: liuhao1024 <liuhao1024@users.noreply.github.com> Co-authored-by: lkevincc0 <lkevincc0@users.noreply.github.com> Co-authored-by: theone139344 <theone139344@users.noreply.github.com> Co-authored-by: baauzi <baauzi@users.noreply.github.com> --------- Co-authored-by: Christopher-Schulze <210261288+Christopher-Schulze@users.noreply.github.com> Co-authored-by: liuhao1024 <liuhao1024@users.noreply.github.com> Co-authored-by: lkevincc0 <lkevincc0@users.noreply.github.com> Co-authored-by: theone139344 <theone139344@users.noreply.github.com> Co-authored-by: baauzi <baauzi@users.noreply.github.com>