{"checks": [{"data": {}, "detail": "active", "name": "hermes-gateway.service", "ok": true, "status": "OK"}, {"data": {}, "detail": "active", "name": "hermes-ios-voice.service", "ok": true, "status": "OK"}, {"data": {}, "detail": "active", "name": "hermes-ios-voice-api.service", "ok": true, "status": "OK"}, {"data": {"body": "{\"status\": \"ok\", \"platform\": \"hermes-agent\"}", "ms": 6, "ok": true, "status": 200}, "detail": "HTTP 200 6ms", "name": "Hermes API server", "ok": true, "status": "OK"}, {"data": {"body": "ok", "ms": 2, "ok": true, "status": 200}, "detail": "HTTP 200 2ms", "name": "iOS voice web", "ok": true, "status": "OK"}, {"data": {"body": "{\"ok\": false, \"version\": \"0.6.63\", \"server_time\": 1780099714, \"model\": \"gpt-realtime-2\", \"models\": {\"realtime\": \"gpt-realtime-2\", \"full_hermes\": \"gpt-5.4-mini\"}, \"voice\": \"cedar\", \"persona\": {\"name\": \"calm retro spacecraft computer\", \"user_name\": \"Dave\", \"style\": \"calm retro spacecraft computer\", \"language\": \"en-US\", \"language_contract\": \"English only unless Dave explicitly asks for translation\"}, \"configured\": {\"openai_realtime_key\": true, \"hermes_api_key\": true, \"voice_unlock_configured\": true, \"live_agent_for_all_voice_turns\": true, \"spend_tracking\": true, \"session_budget_usd\": 0.25, \"memory_provider\": \"honcho\"}, \"voice_readiness\": {\"ok\": true, \"core_ok\": true, \"mode\": \"degraded_tools\", \"memory_ok\": true, \"memory_degraded\": false, \"video_input_ok\": true, \"realtime_configured\": true, \"full_hermes_ok\": true, \"browser_fallback_ok\": true, \"home_assistant_degraded\": true, \"tooling_degraded\": true}, \"video_input\": {\"ok\": true, \"transport\": \"openai_realtime_input_image\", \"capture\": \"canvas", "ms": 7125, "ok": true, "status": 200}, "detail": "HTTP 200 7125ms", "name": "iOS voice status", "ok": true, "status": "OK"}, {"data": {"body": "{\"ok\":true,\"service\":\"hermes-ios-voice-bridge\",\"version\":\"0.2.3\",\"configured\":{\"api_server_key\":true,\"openai_key\":true,\"voice_api_token\":true},\"models\":{\"full_hermes\":\"gpt-5.4-mini\",\"tts\":\"gpt-4o-mini-tts\",\"transcribe\":\"whisper-1\",\"transcribe_language\":\"en\"},\"weather\":{\"workplace\":\"7 Times Square, New York, NY 10036\",\"source\":\"Open-Meteo Forecast API\",\"cache_ttl_seconds\":900}}", "ms": 2, "ok": true, "status": 200}, "detail": "HTTP 200 2ms", "name": "iOS voice API bridge", "ok": true, "status": "OK"}, {"data": {"ok": true, "rc": 0, "stderr": "", "stdout": "200\n{\"ok\": true, \"model\": \"gpt-realtime-2\", \"voice\": \"cedar\", \"live_agent_for_all_voice_turns\": true}"}, "detail": "200\n{\"ok\": true, \"model\": \"gpt-realtime-2\", \"voice\": \"cedar\", \"live_agent_for_all_voice_turns\": true}", "name": "Realtime session probe", "ok": true, "status": "OK"}, {"data": {"ok": true, "rc": 0, "stderr": "", "stdout": "post 202 {\"queued\": true, \"job_id\": \"dbb3f6e49cf54b38\", \"status_url\": \"/ios-voice/tool-job/dbb3f6e49cf54b38\"}\npoll 1 running None \npoll 2 running None \npoll 3 running None \npoll 4 running None \npoll 5 running None \npoll 6 running None \npoll 7 done 200 telegram-health-ok"}, "detail": "post 202 {\"queued\": true, \"job_id\": \"dbb3f6e49cf54b38\", \"status_url\": \"/ios-voice/tool-job/dbb3f6e49cf54b38\"}\npoll 1 running None \npoll 2 running None \npoll 3 running None \npoll 4 running None \npoll 5 running None \npoll 6 running None \npoll 7 done 200 telegram-health-ok", "name": "Full Hermes text bridge", "ok": true, "status": "OK"}, {"data": {"body": "{\"ok\":true,\"result\":{\"id\":7255106532,\"is_bot\":true,\"first_name\":\"Flux\",\"username\":\"morlok525252bot\",\"can_join_groups\":true,\"can_read_all_group_messages\":false,\"supports_inline_queries\":false,\"supports_guest_queries\":false,\"can_connect_to_business\":false,\"has_main_web_app\":false,\"has_topics_enabled\":false,\"allows_users_to_create_topics\":false,\"can_manage_bots\":false}}", "ms": 348, "ok": true, "status": 200}, "detail": "HTTP 200", "name": "Telegram bot getMe", "ok": true, "status": "OK"}, {"data": {"body": "{\"ok\":true,\"result\":{\"url\":\"https://216-250-119-188.nip.io/telegram\",\"has_custom_certificate\":false,\"pending_update_count\":0,\"max_connections\":40,\"ip_address\":\"216.250.119.188\",\"allowed_updates\":[\"message\",\"edited_message\",\"channel_post\",\"edited_channel_post\",\"inline_query\",\"chosen_inline_result\",\"callback_query\",\"shipping_query\",\"pre_checkout_query\",\"poll\",\"poll_answer\",\"my_chat_member\",\"chat_member\",\"chat_join_request\",\"chat_boost\",\"removed_chat_boost\",\"message_reaction\",\"message_reaction_count\",\"business_connection\",\"business_message\",\"edited_business_message\",\"deleted_business_messages\",\"purchased_paid_media\"]}}", "ms": 327, "ok": true, "status": 200}, "detail": "pending=0 last_error=None", "name": "Telegram webhook", "ok": true, "status": "OK"}, {"data": {}, "detail": "full/admin tools present", "name": "Telegram full tool profile", "ok": true, "status": "OK"}, {"data": {"count": 100, "sample": ["agent_registry_governance", "agent_skill_evals", "agent_spending_guardrails", "agents", "ai_tool_evaluation", "ai_tool_supply_chain_safety", "airtable", "approve", "architecture_diagram", "arxiv", "ascii_art", "ascii_video", "audiocraft_audio_generation", "automotive_diy_maintenance", "background", "baoyu_article_illustrator", "baoyu_comic", "baoyu_infographic", "blogwatcher", "branch"]}, "detail": "count=100 core=['commands', 'debug', 'restart', 'update', 'yolo']", "name": "Telegram command menu", "ok": true, "status": "OK"}, {"data": {"ok": true, "rc": 0, "stderr": "", "stdout": "05-29T12:08:33.905261+00:00  ok\n\n  a7738fe8fbbd [active]\n    Name:      Daily Hermes speed optimization research\n    Schedule:  0 9 * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T09:00:00+00:00\n    Deliver:   local\n    Skills:    hermes-self-improvement-loop, hermes-agent\n    Last run:  2026-05-29T09:01:35.547354+00:00  ok\n\n  5d9371b65138 [active]\n    Name:      HA 5m bridge health watchdog\n    Schedule:  */5 * * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T00:10:00+00:00\n    Deliver:   local\n    Skills:    home-assistant-gateway-ops, hermes-health-sweeps\n    Workdir:   /usr/local/lib/hermes-agent\n    Last run:  2026-05-30T00:06:31.848397+00:00  ok\n\n  ccb72b759dd7 [active]\n    Name:      HA 15m freshness and restart-loop watchdog\n    Schedule:  7,22,37,52 * * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T00:22:00+00:00\n    Deliver:   local\n    Skills:    home-assistant-gateway-ops, hermes-health-sweeps\n    Workdir:   /usr/local/lib/hermes-agent\n    Last run:  2026-05-30T00:08:33.896734+00:00  ok\n\n  e001cc0eae67 [active]\n    Name:      HA hourly resource and error sweep\n    Schedule:  13 * * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T00:13:00+00:00\n    Deliver:   local\n    Skills:    home-assistant-gateway-ops, hermes-health-sweeps\n    Workdir:   /usr/local/lib/hermes-agent\n    Last run:  2026-05-29T23:14:49.185305+00:00  ok\n\n  a4ff5fcba1d3 [active]\n    Name:      HA daily backup age and config drift digest\n    Schedule:  20 6 * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T06:20:00+00:00\n    Deliver:   local\n    Skills:    home-assistant-gateway-ops, hermes-health-sweeps\n    Workdir:   /usr/local/lib/hermes-agent\n    Last run:  2026-05-29T06:22:13.975587+00:00  ok\n\n  5e60a8bbb305 [active]\n    Name:      HA weekly maintainability summary\n    Schedule:  30 6 * * 0\n    Repeat:    \u221e\n    Next run:  2026-05-31T06:30:00+00:00\n    Deliver:   local\n    Skills:    home-assistant-gateway-ops, hermes-health-sweeps\n    Workdir:   /usr/local/lib/hermes-agent\n\n  c1eef97bb85c [active]\n    Name:      ha-maint-latency-tracker\n    Schedule:  */5 * * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T00:10:00+00:00\n    Deliver:   local\n    Script:    ha_maint_latency_tracker.py\n    Mode:      no-agent (script stdout delivered directly)\n    Last run:  2026-05-30T00:06:46.398991+00:00  ok\n\n  20ec1be365d9 [active]\n    Name:      ha-maint-bridge-jitter\n    Schedule:  */10 * * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T00:10:00+00:00\n    Deliver:   local\n    Last run:  2026-05-30T00:04:01.138252+00:00  ok\n\n  e5d5eed826e2 [active]\n    Name:      ha-maint-dependency-correlation\n    Schedule:  0 */1 * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T01:00:00+00:00\n    Deliver:   local\n    Last run:  2026-05-30T00:04:56.966739+00:00  ok\n\n  72a9109d57e5 [active]\n    Name:      ha-maint-log-clustering\n    Schedule:  15 */1 * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T00:15:00+00:00\n    Deliver:   local\n    Last run:  2026-05-29T23:20:09.073850+00:00  ok\n\n  beaee3b4b152 [active]\n    Name:      ha-maint-maintainability-scoring\n    Schedule:  30 2 * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T02:30:00+00:00\n    Deliver:   local\n    Last run:  2026-05-29T02:33:46.953491+00:00  ok\n\n  a59c1d479234 [active]\n    Name:      ha-maint-safe-recovery-candidate-proposer\n    Schedule:  45 2 * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T02:45:00+00:00\n    Deliver:   local\n    Last run:  2026-05-29T02:54:19.312874+00:00  ok\n\n  b0430411f8fc [active]\n    Name:      manatt-office-site-watch\n    Schedule:  0 9 * * 1\n    Repeat:    \u221e\n    Next run:  2026-06-01T09:00:00+00:00\n    Deliver:   local\n    Last run:  2026-05-28T09:40:10.195338+00:00  ok\n\n  0626f84ea70b [active]\n    Name:      microsoft-status-watch\n    Schedule:  */15 * * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T00:15:00+00:00\n    Deliver:   local\n    Script:    microsoft_status_watch.py\n    Mode:      no-agent (script stdout delivered directly)\n    Last run:  2026-05-30T00:01:27.957254+00:00  ok"}, "detail": "05-29T12:08:33.905261+00:00  ok\n\n  a7738fe8fbbd [active]\n    Name:      Daily Hermes speed optimization research\n    Schedule:  0 9 * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T09:00:00+00:00\n    Deliver:   local\n    Skills:    hermes-self-improvement-loop, hermes-agent\n    Last run:  2026-05-29T09:01:35.547354+00:00  ok\n\n  5d9371b65138 [active]\n    Name:      HA 5m bridge health watchdog\n    Schedule:  */5 * * * *\n    Repeat:    \u221e\n    Next run:  2026-05-30T00:10:00+00:00\n    Deliver:   loca", "name": "Hermes cron readable", "ok": true, "status": "OK"}, {"data": {"fail_count": 0, "generated_at": "2026-05-26T23:25:07.114300+00:00", "overall": "OK", "rows": [{"detail": "active", "name": "VPS gateway service", "status": "OK"}, {"detail": "['\u25cf hermes-gateway.service - Hermes Agent Gateway - Messaging Platform Integration', '     Loaded: loaded (/etc/systemd/system/hermes-gateway.service; enabled; preset: enabled)', '    Drop-In: /etc/systemd/system/hermes-gateway.service.d', '             \u2514\u250010-memory-tmp.conf, 20-envfile.conf']", "name": "Hermes gateway CLI status", "status": "OK"}, {"detail": "\u2713 Gateway is running \u2014 cron jobs will fire automatically PID: 3687515 26 active job(s) Next run: 2026-05-26T23:24:45.607433+00:00", "name": "Hermes cron scheduler", "status": "OK"}, {"detail": "active", "name": "Systemd hermes-sync.timer", "status": "OK"}, {"detail": "active", "name": "Systemd vps-load-upgrade-watchdog.timer", "status": "OK"}, {"detail": "active", "name": "Systemd hermes-voice-watchdog.timer", "status": "OK"}, {"detail": "## main...origin/main", "name": "Sanitized backup repo clean", "status": "OK"}, {"detail": "OK", "name": "Green dashboard artifact", "status": "OK"}, {"detail": "attention=1, actionable=0, warnings=0", "name": "Voice command center attention queue", "status": "OK"}, {"detail": "HTTP 200 overall=OK ok=True", "name": "Public status https://216-250-119-188.nip.io/vps-status.json", "status": "OK"}, {"detail": "HTTP 200 overall=OK ok=True", "name": "Public status https://morloksmaze.com/vps-status.json", "status": "OK"}, {"detail": "HTTP 404", "name": "Sensitive path blocked https://216-250-119-188.nip.io/.env", "status": "OK"}, {"detail": "HTTP 404", "name": "Sensitive path blocked https://morloksmaze.com/.env", "status": "OK"}, {"detail": "HTTP 404", "name": "Sensitive path blocked https://216-250-119-188.nip.io/api/session", "status": "OK"}, {"detail": "HTTP 404", "name": "Sensitive path blocked https://morloksmaze.com/api/session", "status": "OK"}], "warn_count": 0}, "detail": "overall=OK fail_count=0", "name": "Control plane verifier artifact", "ok": true, "status": "OK"}, {"data": {"attention_items": [{"detail": "1 non-voice agent sandbox error(s) observed in recent green-dashboard logs; raw traceback stays on the VPS.", "name": "Recent non-voice tool errors", "severity": "INFO", "source": "green-dashboard-noise"}, {"detail": "Voice usable; Home Assistant degraded; tool routes degraded; HA status auth_flap; failure auth_failed; Refresh HA token/remote auth; add NetBird routed network for 192.168.1.100/32 or HA LAN.; NetBird netbird service active; private HA route absent", "name": "Voice tools degraded", "severity": "WARN", "source": "voice-readiness"}], "generated_at": 1780099454, "generated_at_iso": "2026-05-30T00:04:14Z", "green_dashboard": {"checks": {"ios_voice": "200 2 0.275921", "ios_voice_api": "200 379 0.010535", "root_health": "200 0 0.140023"}, "disk": "Filesystem      Size  Used Avail Use% Mounted on\n/dev/vda1       465G   39G  427G   9% /\ntmpfs           7.8G   19M  7.8G   1% /tmp\n/dev/vda1       465G   39G  427G   9% /", "docker": "honcho-api-1 Up 26 hours (healthy)\nhoncho-deriver-1 Up 5 days\nhoncho-redis-1 Up 5 days (healthy)\nhoncho-database-1 Up 5 days (healthy)\nuptime-kuma Up 5 days (healthy)\nsearxng-vps Up 5 days\nnetdata Up 5 days (healthy)", "generated_at": "2026-05-30T00:04:14+00:00", "improvement_idea": "Prioritize the warning/failure above first.", "memory": "total        used        free      shared  buff/cache   available\nMem:            15Gi       3.7Gi       558Mi       150Mi        11Gi        11Gi\nSwap:          2.0Gi        10Mi       2.0Gi", "ok": false, "overall": "WARN", "recent_errors": "40 recent error line(s) recorded; raw error text stays on the VPS.", "rows": [{"detail": "active", "icon": "[OK]", "name": "hermes-gateway.service", "status": "OK"}, {"detail": "active", "icon": "[OK]", "name": "caddy.service", "status": "OK"}, {"detail": "active", "icon": "[OK]", "name": "hermes-ios-voice.service", "status": "OK"}, {"detail": "active", "icon": "[OK]", "name": "hermes-ios-voice-api.service", "status": "OK"}, {"detail": "active", "icon": "[OK]", "name": "hermes-upgrade-health.timer", "status": "OK"}, {"detail": "200 0 0.140023", "icon": "[OK]", "name": "root_health", "status": "OK"}, {"detail": "200 2 0.275921", "icon": "[OK]", "name": "ios_voice", "status": "OK"}, {"detail": "200 379 0.010535", "icon": "[OK]", "name": "ios_voice_api", "status": "OK"}, {"detail": "{\"last_error_message\": null, \"max_connections\": 40, \"pending_update_count\": 0, \"url\": \"https://216-250-119-188.nip.io/telegram\"}", "icon": "[OK]", "name": "Telegram webhook", "status": "OK"}, {"detail": "40 recent error line(s) recorded; raw error text stays on the VPS.", "icon": "[WARN]", "name": "Recent errors", "status": "WARN"}], "services": {"caddy.service": "active", "hermes-gateway.service": "active", "hermes-ios-voice-api.service": "active", "hermes-ios-voice.service": "active", "hermes-upgrade-health.timer": "active"}, "summary": {"fail": 0, "ok": 9, "warn": 1}, "telegram_webhook": {"last_error_message": null, "max_connections": 40, "pending_update_count": 0, "url": "https://216-250-119-188.nip.io/telegram"}, "updated": "2026-05-30T00:04:14+00:00", "uptime": "00:04:15 up 13 days,  5:48,  2 users,  load average: 0.47, 0.39, 0.37"}, "hermes_api": {"_probe_ms": 1, "platform": "hermes-agent", "status": "ok"}, "insights": {"age": {"generated": "0s", "watchdog_last_ok": "unknown"}, "headline": "Degraded with 1 attention item and 1 info item.", "health": "degraded", "next_actions": [{"priority": "P1", "prompt": "Use full Hermes to review current command-center attention items, separate harmless noise from real risk, and propose or apply safe fixes.", "title": "Review attention item: Voice tools degraded", "why": "Voice usable; Home Assistant degraded; tool routes degraded; HA status auth_flap; failure auth_failed; Refresh HA token/remote auth; add NetBird routed network for 192.168.1.100/32 or HA LAN.; NetBird netbird service active; private HA rout"}, {"priority": "P1", "prompt": "Refresh the Home Assistant long-lived token or remote-auth session on the VPS, then rerun verify:ops. Do not switch to Mac/Tailscale fallback.", "title": "Refresh Home Assistant token/remote auth", "why": "Voice usable; Home Assistant degraded; tool routes degraded; HA status auth_flap; failure auth_failed; Refresh HA token/remote auth; add NetBird routed network for 192.168.1.100/32 or HA LAN.; NetBird netbird service active; private HA rout"}, {"priority": "P1", "prompt": "In NetBird admin, distribute route 192.168.1.100/32 to the VPS peer/group using an always-on home routing peer, then rerun verify:ops.", "title": "Add NetBird Home Assistant route", "why": "Voice usable; Home Assistant degraded; tool routes degraded; HA status auth_flap; failure auth_failed; Refresh HA token/remote auth; add NetBird routed network for 192.168.1.100/32 or HA LAN.; NetBird netbird service active; private HA rout"}, {"priority": "P3", "prompt": "Run a routine health sweep for Hermes Voice, VPS resources, watchdogs, and public URLs; fix only safe issues and summarize evidence.", "title": "Run a routine health sweep", "why": "Quick proactive check across voice, Hermes API, watchdogs, and resources."}], "quick_prompts": ["What needs attention right now on Hermes Voice?", "Run a safe voice watchdog and tell me whether live voice is healthy.", "Use full Hermes to research the best next improvement for this page and implement the safe part.", "Explain the latest command-center JSON in plain English."], "runbook": {"public_urls": {"command_center": "https://morloksmaze.com/ios-voice/command-center", "json": "https://morloksmaze.com/ios-voice/command-center.json", "live_voice": "https://morloksmaze.com/ios-voice/", "status": "https://morloksmaze.com/ios-voice/status"}, "refresh_command_center": "/root/bin/hermes_voice_command_center.py || true", "restart": "systemctl restart hermes-ios-voice.service hermes-ios-voice-api.service", "rollback_hint": "Use the timestamped /opt/hermes-ios-voice/server.py.bak-* or /root/bin/hermes_voice_command_center.py.bak-* backups, then restart services.", "safe_checks": ["curl -fsS https://morloksmaze.com/ios-voice/status | python3 -m json.tool", "curl -fsS https://morloksmaze.com/ios-voice/command-center.json | python3 -m json.tool", "/root/bin/hermes_voice_watchdog.py", "systemctl is-active hermes-ios-voice.service hermes-ios-voice-api.service hermes-voice-command-center.timer", "/root/bin/hermes_voice_command_center.py || true"]}}, "mission": "VPS-first always-on Hermes live voice agent and command center", "ok": true, "primary_interface": {"mode": "live voice first; full Hermes/tools on explicit Ask full Hermes/tool handoff", "owner": "VPS", "tool_policy": "Fast conversation stays low-latency; tool work routes through full Hermes API with existing approval/safety boundaries.", "url": "https://morloksmaze.com/ios-voice/"}, "resources": {"disk_root": {"available": "427G", "size": "465G", "use_percent": "9%", "used": "39G"}, "mem": {"available": "11Gi", "free": "443Mi", "total": "15Gi", "used": "3.8Gi"}, "swap": {"available": null, "free": "2.0Gi", "total": "2.0Gi", "used": "10Mi"}}, "services": {"caddy.service": true, "hermes-gateway.service": true, "hermes-ios-voice-api.service": true, "hermes-ios-voice.service": true, "hermes-local-model.service": true, "hermes-queue-worker.service": true, "hermes-vps-api-facade.service": true}, "timers": {"hermes-backup-watchdog.timer": {"active": true, "last": "Sat 2026-05-30 00:00:01 UTC", "next": "Sat 2026-05-30 00:30:00 UTC", "state": "active", "substate": "waiting"}, "hermes-gateway-latency-watchdog.timer": {"active": true, "last": "Sat 2026-05-30 00:04:14 UTC", "next": "", "state": "active", "substate": "waiting"}, "hermes-green-dashboard.timer": {"active": true, "last": "Fri 2026-05-29 13:01:40 UTC", "next": "Sat 2026-05-30 13:00:58 UTC", "state": "active", "substate": "waiting"}, "hermes-sync.timer": {"active": true, "last": "Sat 2026-05-30 00:01:36 UTC", "next": "", "state": "active", "substate": "waiting"}, "hermes-upgrade-health.timer": {"active": true, "last": "Sat 2026-05-30 00:04:14 UTC", "next": "", "state": "active", "substate": "waiting"}, "hermes-voice-command-center.timer": {"active": true, "last": "Sat 2026-05-30 00:04:14 UTC", "next": "", "state": "active", "substate": "running"}, "hermes-voice-watchdog.timer": {"active": true, "last": "Sat 2026-05-30 00:04:14 UTC", "next": "", "state": "active", "substate": "running"}}, "tool_jobs": {"counts": {"done": 14}, "latest": [{"age_seconds": 10488, "id": "7603605270754234", "request_preview": "Dave asked about the movie after prior tool work. No new tool call is needed; summarize the earlier result: AMC Roosevel", "status": "done"}, {"age_seconds": 10497, "id": "12520ed1852740d5", "request_preview": "Dave said 'Hermes.' No tool action required. Provide a brief Hermes-style acknowledgement and offer help.", "status": "done"}, {"age_seconds": 10530, "id": "d54babce6a654895", "request_preview": "Dave referred to me as Flux, then Hermes. Clarify name per developer instruction: identify as Hermes in a concise Hermes", "status": "done"}, {"age_seconds": 10544, "id": "566f845f9d3c4259", "request_preview": "Dave asked my name again. No tool is needed. Provide a concise response in Hermes voice: identify as Hermes, Dave\u2019s voic", "status": "done"}, {"age_seconds": 10560, "id": "0625ddc365084e46", "request_preview": "Dave asked my name. No tool is needed. Provide a concise response in Hermes voice: identify as Hermes, Dave\u2019s voice comp", "status": "done"}, {"age_seconds": 10597, "id": "0f33e08c4fce45a9", "request_preview": "Dave asked to check the internet for whether 'The Mandalorian' is playing at the AMC near Roosevelt Field (Garden City, ", "status": "done"}, {"age_seconds": 10673, "id": "7818d5588b7541fa", "request_preview": "Dave is looking for the movie 'The Mandalorian' at the AMC theater near Roosevelt Field. Please check current listings f", "status": "done"}, {"age_seconds": 10697, "id": "d25dc94efd5b4218", "request_preview": "Dave apologized after an ambiguous event-time question. No tool action is required. Provide a concise Hermes-style respo", "status": "done"}], "path": "/root/.hermes/monitor/voice_tool_jobs.json"}, "voice": {"_probe_ms": 7316, "browser_voice_fallback": {"continuous_recognition": false, "english_voice_required": true, "final_transcript_guard": true, "handoff_endpoint": "/ios-voice/text-hermes?async=1", "handoff_mode": "async_full_hermes", "interim_transcripts": true, "language": "en-US", "ok": true, "recognition_api": "SpeechRecognition_or_webkitSpeechRecognition", "speaks_answer": true, "stop_cancels_speech": true, "synthesis_api": "SpeechSynthesisUtterance", "synthesis_language": "en-US", "trigger": "realtime_quota_exhausted_or_user_preference", "uses_full_hermes": true}, "configured": {"hermes_api_key": true, "live_agent_for_all_voice_turns": true, "memory_provider": "honcho", "openai_realtime_key": true, "session_budget_usd": 0.25, "spend_tracking": true, "voice_unlock_configured": true}, "connectors": [{"detail": "HA auth is flapping; using last-good proof age=18s", "id": "home_assistant", "last_verified_at": 1780099436, "metrics": {"candidate_count": 1, "failure_category": "auth_failed", "lights_count": 12, "live": false, "recovery_action": "Refresh HA token/remote auth; add NetBird routed network for 192.168.1.100/32 or HA LAN.", "stale": true, "time_zone": "America/New_York"}, "name": "Home Assistant", "status": "warn"}, {"detail": "13 tools discoverable", "id": "ha_mcp", "last_verified_at": 1780099459, "name": "HA MCP", "status": "ok"}, {"detail": "generate_204 reachable", "id": "web", "last_verified_at": 1780099459, "name": "Outside web", "status": "ok"}, {"detail": "Honcho active: hybrid, 1600-token context, dialectic every 5 turns", "id": "memory", "last_verified_at": 1780099461, "metrics": {"backup_age_seconds": 74755, "backup_bytes": 21396889, "backup_ok": true, "context_tokens": 1600, "degraded": false, "dialectic_cadence": 5, "dialectic_depth": 2, "embedding_null_count": 0, "embedding_total_count": 1, "observation_mode": "directional", "provider": "honcho", "provider_quota_blocked": false, "quota_backoff": false, "recall_mode": "hybrid", "semantic_recall": "embedded"}, "name": "Honcho memory", "status": "ok"}, {"detail": "Hermes state directory readable", "id": "files", "last_verified_at": 1780099459, "name": "Files", "status": "ok"}, {"detail": "gateway service active", "id": "telegram", "last_verified_at": 1780099459, "name": "Telegram", "status": "ok"}, {"detail": "netbird service active; private HA route absent", "id": "netbird", "last_verified_at": 1780099459, "metrics": {"management_connected": true, "networks_present": false, "private_ha_route": false, "route_device": "ens6", "route_target": "192.168.1.100", "service_active": true, "signal_connected": true, "status_command_ok": true}, "name": "NetBird", "status": "warn"}, {"detail": "Realtime key configured", "id": "openai", "last_verified_at": 1780099459, "name": "OpenAI", "status": "ok"}, {"detail": "API server health reachable", "id": "full_hermes", "last_verified_at": 1780099459, "name": "Full Hermes", "status": "ok"}], "home_assistant": {"auth_failed": true, "auth_flap": true, "candidate_count": 1, "config_http_status": null, "detail": "HA auth is flapping; using last-good proof age=18s", "failure_category": "auth_failed", "fallback_reason": "200", "gateway_source": "HOMEASSISTANT_URL", "last_verified_at": 1780099436, "lights_count": 12, "live": false, "location_name": "Home", "ms": null, "ok": false, "proof_age_seconds": 18, "recovery_action": "Refresh HA token/remote auth; add NetBird routed network for 192.168.1.100/32 or HA LAN.", "route_kind": "ha_cloud_or_remote_https", "source": "authenticated_ha_rest_failfast", "stale": true, "states_http_status": null, "status": "auth_flap", "time_zone": "America/New_York", "version": "2026.6.0b0"}, "language_guard": {"browser_fallback_guard": true, "full_hermes_prompt_guard": true, "hard_guard": "English-only output is prepended to full-Hermes handoffs and Realtime instructions.", "ok": true, "output_language": "en-US", "realtime_prompt_guard": true}, "memory": {"backup": {"age_seconds": 74755, "bytes": 21396889, "checked": true, "latest_at": "2026-05-29T03:18:26Z", "latest_file": "latest.sql.gz", "max_age_seconds": 172800, "ok": true}, "config": {"ai_peer": "hermes-leader", "context_cadence": 1, "context_tokens": 1600, "dialectic_cadence": 5, "dialectic_depth": 2, "honcho_config_exists": true, "observation_mode": "directional", "peer_name": "david", "pin_peer_name": true, "private_loopback": true, "provider": "honcho", "recall_mode": "hybrid", "session_strategy": "global", "workspace": "hermes", "write_frequency": "async"}, "degraded": false, "detail": "Honcho active: hybrid, 1600-token context, dialectic every 5 turns", "embedding_backlog": {"null_count": 0, "state": "embedded", "total_count": 1}, "embedding_state": {"checked": true, "null_count": 0, "state": "embedded", "total_count": 1}, "ok": true, "provider": "honcho", "provider_quota": {"blocked": false, "checked": true, "evidence": "", "window_minutes": 15}, "provider_quota_blocked": false, "quota_backoff": false, "semantic_recall": "embedded", "warnings": []}, "model": "gpt-realtime-2", "models": {"full_hermes": "gpt-5.4-mini", "realtime": "gpt-realtime-2"}, "ok": false, "page_capabilities": {"browser_voice_fallback": true, "camera": true, "data_wait_jokes": true, "full_hermes_handoff": true, "ha_degraded_plain_status": true, "ha_recovery_action": true, "memory_backup_status": true, "memory_telemetry": true, "microphone": true, "netbird_route_status": true, "page_load_telemetry": true, "token_spend": true, "video_context_age_detail": true, "video_input": true, "voice_readiness_status": true}, "pairing": {"expires_at": 1810894757, "has_pairing_code": true}, "persona": {"language": "en-US", "language_contract": "English only unless Dave explicitly asks for translation", "name": "calm retro spacecraft computer", "style": "calm retro spacecraft computer", "user_name": "Dave"}, "server_time": 1780099454, "services": {"hermes_api": {"ms": 3, "ok": true, "status": 200}, "home_assistant": {"failure_category": "auth_failed", "last_verified_at": 1780099436, "live": false, "ok": false, "stale": true, "status": "auth_flap"}, "memory": {"backup": {"age_seconds": 74755, "bytes": 21396889, "checked": true, "latest_at": "2026-05-29T03:18:26Z", "latest_file": "latest.sql.gz", "max_age_seconds": 172800, "ok": true}, "degraded": false, "last_verified_at": 1780099461, "ok": true, "provider": "honcho", "provider_quota_blocked": false, "semantic_recall": "embedded"}, "voice_api": {"ms": 4, "ok": true, "status": 200}, "voice_web": true, "watchdog_timer_active": true}, "version": "0.6.63", "video_input": {"capture": "canvas_jpeg", "detail": "Camera ready. User-initiated frames only. Camera frames are sent only after Dave opens camera, captures a frame, or enables live view.", "features": {"camera_preview": true, "front_back_camera": true, "low_rate_live_frames": true, "single_frame_ask_view": true}, "jpeg_quality": 0.62, "live_frame_min_interval_ms": 2600, "live_frame_trigger": "input_audio_buffer.speech_started", "manual_frame_response": true, "max_frame_width": 768, "max_prompt_chars": 2000, "ok": true, "privacy": "user_initiated", "realtime_detail": "low", "realtime_event": "conversation.item.create", "requires_active_realtime_session": true, "speech_triggered_live_frames": true, "telemetry": {"client_event": "camera_frame_sent", "context_fresh_window_seconds": 300, "context_status": "none", "enabled": true, "last_frame_age_seconds": null, "last_frame_fresh": false, "last_frame_source": null, "live_frames_24h": 0, "manual_frames_24h": 0, "recent_frames_24h": 0}, "transport": "openai_realtime_input_image"}, "voice": "cedar", "voice_readiness": {"browser_fallback_ok": true, "core_ok": true, "full_hermes_ok": true, "home_assistant_degraded": true, "memory_degraded": false, "memory_ok": true, "mode": "degraded_tools", "ok": true, "realtime_configured": true, "tooling_degraded": true, "video_input_ok": true}, "watchdog": {"last_browser_smoke": {"degraded": false, "exit_code": 0, "healthStatus": 200, "healthText": "ok", "ms": 1370, "ok": true, "pageLoaded": true, "pageTelemetrySent": true, "pageTelemetryStatus": 200, "pageVersion": "0.6.63", "sdpPrefix": "v=0\r\no=- 194", "sessionOk": true, "sessionStatus": 200, "signalingState": "stable", "statusStatus": 200}, "last_failures": [], "last_ok_age_seconds": 304, "last_ok_ts": 1780099158}}, "voice_events": {"counts_1h": {"page_loaded": 11}, "counts_1h_by_page": {"0.6.63": {"page_loaded": 11}}, "counts_1h_current_page": {"page_loaded": 11}, "counts_24h": {"page_loaded": 237, "voice_latency": 57}, "counts_24h_by_page": {"0.6.46": {"voice_latency": 1}, "0.6.47": {"voice_latency": 12}, "0.6.49": {"voice_latency": 1}, "0.6.57": {"page_loaded": 6}, "0.6.58": {"page_loaded": 5}, "0.6.59": {"page_loaded": 3}, "0.6.60": {"page_loaded": 2}, "0.6.61": {"page_loaded": 11}, "0.6.62": {"page_loaded": 2}, "0.6.63": {"page_loaded": 208, "voice_latency": 43}}, "counts_24h_current_page": {"page_loaded": 208, "voice_latency": 43}, "current_page": "0.6.63", "current_page_telemetry": {"current_page": "0.6.63", "latest_current_page_age_seconds": 297, "latest_event_age_seconds": 297, "stale_latest_pages": ["0.6.62", "0.6.61", "0.6.60", "0.6.59", "0.6.58", "0.6.57", "0.6.49", "0.6.47"], "status": "current"}, "latest": [{"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780099157, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780098834, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780098508, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780098200, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780097902, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780097574, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780097264, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780096942, "type": "page_loaded"}], "latest_current_page": [{"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780099157, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780098834, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780098508, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780098200, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780097902, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780097574, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780097264, "type": "page_loaded"}, {"detail": "watchdog browser smoke current page loaded", "page": "0.6.63", "ts": 1780096942, "type": "page_loaded"}], "log_path": "/root/.hermes/monitor/voice_turn_events.jsonl"}, "warnings": [], "watchdog": {"failures": [], "last_alert_ts": 1780050117, "last_browser_smoke": {"degraded": false, "exit_code": 0, "healthStatus": 200, "healthText": "ok", "ms": 1370, "ok": true, "pageLoaded": true, "pageTelemetrySent": true, "pageTelemetryStatus": 200, "pageVersion": "0.6.63", "sdpPrefix": "v=0\r\no=- 194", "sessionOk": true, "sessionStatus": 200, "signalingState": "stable", "statusStatus": 200}, "last_failure_ts": 1780050117, "last_ok_ts": 1780099158}}, "detail": "warnings=0", "name": "Voice command-center artifact", "ok": true, "status": "OK"}, {"data": {"checks": [{"data": {"missing": [], "tools": ["browser", "clarify", "code_execution", "computer_use", "cronjob", "delegation", "file", "homeassistant", "image_gen", "memory", "messaging", "session_search", "skills", "terminal", "todo", "tts", "video", "vision", "web"]}, "detail": "19 tools; full/admin profile", "name": "cli full/admin tool profile", "ok": true, "status": "OK"}, {"data": {"core_missing": [], "tools": ["clarify", "cronjob", "file", "memory", "messaging", "session_search", "skills", "terminal", "todo", "tts", "web", "no_mcp"]}, "detail": "12 tools; fast Telegram profile with no_mcp; core_missing=[]", "name": "telegram fast/admin-safe tool profile", "ok": true, "status": "OK"}, {"data": {"missing": [], "tools": ["browser", "clarify", "code_execution", "computer_use", "cronjob", "delegation", "file", "homeassistant", "image_gen", "memory", "messaging", "session_search", "skills", "terminal", "todo", "tts", "video", "vision", "web"]}, "detail": "19 tools; full/admin profile", "name": "api_server full/admin tool profile", "ok": true, "status": "OK"}, {"data": {"ok": true, "rc": 0, "stderr": "", "stdout": "active\n"}, "detail": "active\n", "name": "Gateway service active", "ok": true, "status": "OK"}, {"data": {"ok": true, "rc": 0, "stderr": "", "stdout": "active\n"}, "detail": "active\n", "name": "Voice page service active", "ok": true, "status": "OK"}, {"data": {"ok": true, "rc": 0, "stderr": "", "stdout": "active\n"}, "detail": "active\n", "name": "Voice API service active", "ok": true, "status": "OK"}, {"data": {"ok": true, "rc": 0, "stderr": "", "stdout": "full-control-cli-ok"}, "detail": "full-control-cli-ok", "name": "CLI terminal baseline", "ok": true, "status": "OK"}, {"data": {"response": "full-control-api-ok"}, "detail": "HTTP 200 6186ms content='full-control-api-ok'", "name": "API/live chat full-control terminal probe", "ok": true, "status": "OK"}, {"data": {"job_id": "8a8029f3587946a8", "last": {"answer": "full-control-ios-ok", "completed_at": 1780099743, "created_at": 1780099736, "duration_seconds": 7, "http_status": 200, "id": "8a8029f3587946a8", "input_tokens_estimate": 30, "output_tokens_estimate": 5, "phase": "done", "progress": "Answer ready", "request_preview": "Use the terminal tool to run: printf full-control-ios-ok . Then reply with exactly the command output and nothing else.", "session_id": "unknown", "started_at": 1780099736, "status": "done"}}, "detail": "status=done http=200 answer='full-control-ios-ok'", "name": "iPhone voice/text full-control terminal probe", "ok": true, "status": "OK"}, {"data": {"allowed_updates": ["message", "edited_message", "channel_post", "edited_channel_post", "inline_query", "chosen_inline_result", "callback_query", "shipping_query", "pre_checkout_query", "poll", "poll_answer", "my_chat_member", "chat_member", "chat_join_request", "chat_boost", "removed_chat_boost", "message_reaction", "message_reaction_count", "business_connection", "business_message", "edited_business_message", "deleted_business_messages", "purchased_paid_media"], "has_custom_certificate": false, "ip_address": "216.250.119.188", "max_connections": 40, "pending_update_count": 0, "url": "https://216-250-119-188.nip.io/telegram"}, "detail": "pending=0 last_error=None", "name": "Telegram webhook full-control path reachable", "ok": true, "status": "OK"}, {"data": {"sample": ["agent_registry_governance", "agent_skill_evals", "agent_spending_guardrails", "agents", "ai_tool_evaluation", "ai_tool_supply_chain_safety", "airtable", "approve", "architecture_diagram", "arxiv", "ascii_art", "ascii_video", "audiocraft_audio_generation", "automotive_diy_maintenance", "background", "baoyu_article_illustrator", "baoyu_comic", "baoyu_infographic", "blogwatcher", "branch", "bundles", "capability_acquisition_loop", "claude_code", "claude_design", "codebase_inspection", "codex", "codex_runtime", "comfyui", "commands", "compress"]}, "detail": "count=100", "name": "Telegram command surface registered", "ok": true, "status": "OK"}], "failures": [], "generated_at": "2026-05-30T00:09:05.653184+00:00", "note": "Telegram actual tool execution is verified by full/admin profile plus webhook/menu health; send a real Telegram message for end-to-end user-path confirmation.", "overall": "OK", "summary": {"fail": 0, "ok": 11, "warn": 0}, "warnings": []}, "detail": "overall=OK summary={'fail': 0, 'ok': 11, 'warn': 0}", "name": "Full-control verifier", "ok": true, "status": "OK"}, {"data": {"ok": true, "rc": 0, "stderr": "", "stdout": "Filesystem      Size  Used Avail Use% Mounted on\n/dev/vda1       465G   39G  427G   9% /"}, "detail": "Filesystem      Size  Used Avail Use% Mounted on\n/dev/vda1       465G   39G  427G   9% /", "name": "VPS disk readable", "ok": true, "status": "OK"}, {"data": {"ok": true, "rc": 0, "stderr": "", "stdout": "total        used        free      shared  buff/cache   available\nMem:            15Gi       3.7Gi       554Mi       150Mi        11Gi        11Gi\nSwap:          2.0Gi        10Mi       2.0Gi"}, "detail": "total        used        free      shared  buff/cache   available\nMem:            15Gi       3.7Gi       554Mi       150Mi        11Gi        11Gi\nSwap:          2.0Gi        10Mi       2.0Gi", "name": "VPS memory readable", "ok": true, "status": "OK"}], "failures": [], "generated_at": "2026-05-30T00:09:05.678733+00:00", "ok": true, "overall": "OK", "summary": {"fail": 0, "ok": 19, "warn": 0}, "warnings": [], "source": "full-hermes-health", "artifact_age_seconds": 52186}