mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-18 14:52:04 +00:00
fix(gateway): log signal transport response and bubble cron live adapter errors
This commit is contained in:
parent
5649b8649a
commit
3a6c171e9e
2 changed files with 24 additions and 9 deletions
|
|
@ -810,6 +810,7 @@ def _deliver_result(job: dict, content: str, adapters=None, loop=None) -> Option
|
|||
# rooms (e.g. Matrix) where the standalone HTTP path cannot encrypt.
|
||||
runtime_adapter = (adapters or {}).get(platform)
|
||||
delivered = False
|
||||
target_errors = []
|
||||
if runtime_adapter is not None and loop is not None and getattr(loop, "is_running", lambda: False)():
|
||||
send_metadata = {"thread_id": thread_id} if thread_id else None
|
||||
try:
|
||||
|
|
@ -824,18 +825,26 @@ def _deliver_result(job: dict, content: str, adapters=None, loop=None) -> Option
|
|||
)
|
||||
if future is None:
|
||||
adapter_ok = False
|
||||
target_errors.append("live adapter event loop scheduling failed")
|
||||
else:
|
||||
try:
|
||||
send_result = future.result(timeout=60)
|
||||
except TimeoutError:
|
||||
except TimeoutError as te:
|
||||
future.cancel()
|
||||
target_errors.append(f"live adapter send timed out: {te}")
|
||||
raise
|
||||
if send_result and not getattr(send_result, "success", True):
|
||||
err = getattr(send_result, "error", "unknown")
|
||||
except Exception as ex:
|
||||
target_errors.append(f"live adapter send failed: {ex}")
|
||||
raise
|
||||
|
||||
if send_result is None or not getattr(send_result, "success", True):
|
||||
err = getattr(send_result, "error", "unknown") if send_result else "no response from adapter"
|
||||
msg = f"live adapter send to {platform_name}:{chat_id} failed: {err}"
|
||||
logger.warning(
|
||||
"Job '%s': live adapter send to %s:%s failed (%s), falling back to standalone",
|
||||
job["id"], platform_name, chat_id, err,
|
||||
"Job '%s': %s, falling back to standalone",
|
||||
job["id"], msg,
|
||||
)
|
||||
target_errors.append(msg)
|
||||
adapter_ok = False # fall through to standalone path
|
||||
elif (
|
||||
send_result
|
||||
|
|
@ -867,9 +876,12 @@ def _deliver_result(job: dict, content: str, adapters=None, loop=None) -> Option
|
|||
logger.info("Job '%s': delivered to %s:%s via live adapter", job["id"], platform_name, chat_id)
|
||||
delivered = True
|
||||
except Exception as e:
|
||||
err_msg = f"live adapter delivery to {platform_name}:{chat_id} failed: {e}"
|
||||
if not any(err_msg in err for err in target_errors):
|
||||
target_errors.append(err_msg)
|
||||
logger.warning(
|
||||
"Job '%s': live adapter delivery to %s:%s failed (%s), falling back to standalone",
|
||||
job["id"], platform_name, chat_id, e,
|
||||
"Job '%s': %s, falling back to standalone",
|
||||
job["id"], err_msg,
|
||||
)
|
||||
|
||||
if not delivered:
|
||||
|
|
@ -889,13 +901,15 @@ def _deliver_result(job: dict, content: str, adapters=None, loop=None) -> Option
|
|||
except Exception as e:
|
||||
msg = f"delivery to {platform_name}:{chat_id} failed: {e}"
|
||||
logger.error("Job '%s': %s", job["id"], msg)
|
||||
delivery_errors.append(msg)
|
||||
target_errors.extend([msg])
|
||||
delivery_errors.extend(target_errors)
|
||||
continue
|
||||
|
||||
if result and result.get("error"):
|
||||
msg = f"delivery error: {result['error']}"
|
||||
logger.error("Job '%s': %s", job["id"], msg)
|
||||
delivery_errors.append(msg)
|
||||
target_errors.extend([msg])
|
||||
delivery_errors.extend(target_errors)
|
||||
continue
|
||||
|
||||
logger.info("Job '%s': delivered to %s:%s", job["id"], platform_name, chat_id)
|
||||
|
|
|
|||
|
|
@ -1024,6 +1024,7 @@ class SignalAdapter(BasePlatformAdapter):
|
|||
else:
|
||||
params["recipient"] = [await self._resolve_recipient(chat_id)]
|
||||
|
||||
logger.info("[Signal] Sending response (%d chars) to %s", len(plain_text), chat_id)
|
||||
result = await self._rpc("send", params)
|
||||
|
||||
if result is not None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue