5.5 KiB
5.5 KiB
AshBot — Status
Personal assistant agent for Ashley (Phoenix Salon + Spa — Veripath's active client), delivered over iMessage via Photon. Hermes profile
ashbot. Last worked: 2026-09-15.
Identity
| Profile | ashbot — ~/AppData/Local/hermes/profiles/ashbot |
| Purpose | Ashley's personal assistant (scheduling, business admin, marketplace scouting) |
| Channel | Photon → iMessage. Own Photon project, separate from the coach line |
| Reachable by | Ashley (home channel + allowed user); Tony tests from his own line |
| Sidecar | Photon sidecar on 127.0.0.1:8790 |
| Gateway | PID 10384, platform photon: connected, Hermes 0.21.2 |
Model stack (changed 2026-09-12)
| Provider | omniroute → http://127.0.0.1:20128/v1 |
| Primary | auto/best-free (OmniRoute free-tier auto-combo — live roulette) |
| Fallback | openrouter/deepseek/deepseek-v4.1-flash → freetoken-gemma26b/Gemma-4-26B-A4B-NVFP4 (local, free) |
Before 2026-09-12 this profile had no failover at all — hermes -p ashbot fallback list
returned "No fallback providers configured"; the model.fallback: key in her config is not
the failover chain. See 01_Wiki/omniroute-routing-failover for the failure mode.
Incident log
2026-09-12 — turn died mid Marketplace scan (fixed)
- 10:07–10:17 PT. Ashley/Tony asked for a live Facebook Marketplace flip scan.
- Browser work (
browser_exec) ran; the connection hiccuped mid-scan; then the model API collapsed — 9 empty streams in a row (http 200, bytes 0) at 10:14:53–10:15:11. - Cause: the
auto/best-freecombo's OpenRouter primary dropped out, and the chain fell into broken targets —opencode/minimax-m3-free(401, model unsupported) andauggie/claude-sonnet-4.6(200 with an empty body, ~1.0 s). A 200 never trips OmniRoute's breaker, so the combo never reached a working target and Hermes killed the turn. - User-visible: 276 s of silence → a 141-char stub → an 18,045-char dump truncated to 8,000
chars mid-sentence by the Photon adapter. Session
20260912_100658_6c1e9828; last message persisted 10:12:49 — the turn never completed. - Fixed:
fallback_providersadded to herconfig.yaml(backup:config.yaml.bak.20260912_133720) andblockedProviders = ["auggie","opencode"]set in OmniRoute (~/.omniroute/storage.sqlite). Catalog went 476 → 453 models.
2026-09-15 — fleet-wide gateway outage after Hermes 0.21.2 auto-update (fixed)
- 07:27–07:31 PT. The 0.21.2 auto-update requested graceful restarts of every profile's gateway (ashbot 07:31:27, leonard 07:31:35, jimmy 07:31:45); the post-restart relaunch never fired, so all gateways stayed down. The machine had rebooted ~07:27 — login items started gateways, the update then stopped them, nothing restarted them.
- Ashbot additionally lost its whole model provider: the OmniRoute server itself was dead
(no process, nothing on :20128 — it has no service/login item and does not survive a
reboot). Restarted via
omniroute serve --no-open --daemon(NOTnode dist/server-ws.mjs, which serves only Dashboard/WS and never the 20128 API). - Root-caused the combo's per-turn lag:
theoldllmtargets 403'd on every request and OpenRouter connection wascredits_exhausted, soauto/best-freeburned ~6-20 s/turn on dead hops before landing on the local freetoken Gemma engine (which answers every turn today). Combo verdict logs499 "all targets exhausted"even when the last successful step's body was delivered. - Fixed:
blockedProviders+=theoldllm(catalog 453 → 427 models);fallback_providerschain verified still registered (hermes -p ashbot fallback list). Turn latency back to ~10 s. Live check-ins continue to routeomniroute→ local Gemma-4-26B.
Active automation
- Cron job
e4df5902e96f— "Tony daily check-in",0 9 * * *, provider pinned (--provider omniroute). Created and test-run 2026-09-12; delivery verified. - Contact/scheduling jobs discussed with Ashley — the 9/12 test confirmed a scheduled check-in actually fires and delivers.
Open items
- iMessage outbound cap: 8,000 chars. The Photon adapter truncates long replies
mid-sentence (
truncating outbound from 18045 to 8000 chars). Her scan reports routinely exceed it — cap her output or chunk it. - Primary is still the free roulette. A failure now costs the retry window (~1 min typical, up to ~4.5 min) before the fallback takes over, instead of killing the turn.
- OpenRouter connection is
credits_exhausted(2026-09-15). Everyauto/*combo hop that tries OpenRouter dies instantly and the chain leans on the local Gemma engine; this is also why the coach profile 402s. Decision needed: top up, or accept local-first. Combo still tries ~3-4 fast-failing no-auth targets per turn (duckduckgo-web 418, chipotle 502, mimocode 499) before the local hop — sub-second each, cosmetic. - Browser mid-scan hiccup —
browser_execdropped during the marketplace scan; the retry path is untested since the model fix.
Files
| Path | Change |
|---|---|
profiles/ashbot/config.yaml |
+ fallback_providers (2026-09-12); backup alongside |
~/.omniroute/storage.sqlite |
settings.blockedProviders = ["auggie","opencode","theoldllm"] (2026-09-15) |
| Hermes skill | omniroute-routing-failover (jimmy profile) |
See also: 04_projects/phoenix-salon/status · 04_projects/veripath/status · 01_Wiki/omniroute-routing-failover