11 KiB
11 KiB
title, type, status, created, updated, review_after, confidence, tags, sources
| title | type | status | created | updated | review_after | confidence | tags | sources | |
|---|---|---|---|---|---|---|---|---|---|
| Current State | concept | active | 2026-07-22 | 2026-08-14 | 2026-10-22 | high |
|
Current State
Updated: 2026-08-14
Attested facts
- Config version: 33 — Verified,
~/.hermes/config.yaml, 2026-07-25 - Default profile:
default— Verified, WebUI prompt, 2026-07-22 - Timezone:
Australia/Perth— User-provided + Verified in config, 2026-07-22 - Main provider:
custom:litellm→http://litellm:4000/v1— Verified,~/.hermes/config.yaml, 2026-07-22 - Default model:
freellmapi-auto— Verified,~/.hermes/config.yaml, 2026-07-22 - Fallback/aux provider:
custom:omni→http://omni:20128/v1— Verified, config, 2026-08-13 (migrated fromcustom:omniroute, CT600) - OmniRoute host:
omni.kangaroo-eel.ts.net→100.93.204.4— Verified, DNS resolution, 2026-08-13 - Memory backend: Mnemosyne — Verified, config, 2026-07-22
- Memory enabled: true — Verified, config, 2026-07-22
- Streaming enabled: true — Verified, config, 2026-07-22
- Dashboard public URL:
https://hermes.martinwa.org/— Verified, config, 2026-07-22 - Pet config: enabled/slug null — Verified, config, 2026-07-22
- WebUI connected platforms: local, api_server, discord, email, homeassistant, mattermost, ntfy, slack, telegram, webhook — Verified, WebUI session, 2026-07-22
Recent Changes (2026-08-02)
- Browser backend reverted: Camoufox restored as primary on 2026-07-30. Steel Browser (CT201) experiment ended — CDP issues + DeepSeek 0731 tool name validation.
browser.cloud_provider: camofox,camera_provider: camofox. Steel plugin disabled. See comparisons/steel-vs-camoufox and decisions/rollback-steel-to-camofox. - Mnemosyne capture fix (2026-08-01): Automatic conversational capture was broken by stringified YAML (
sync_roles: "['user']"). Fixed by rewriting structured Mnemosyne settings with native YAML types. See incidents/2026-08-01-mnemosyne-capture-failure. - Mnemosyne vector coverage gap discovered: Only 159/1,476 working memories (10.8%) have vector embeddings. 0/458 episodic memories have embeddings. Semantic search is mostly FTS5 fallback.
- DeepSeek V4 Flash 0731: Post-training bump, same model ID, same pricing. Terminal Bench 2.1: 82.7 (up from 61.8). Stricter tool name validation (
^[a-zA-Z0-9_-]+$) — may cause issues with OmniRoute-transformed tool names. - Uber Eats report upgraded: Now uses Camofox authenticated session (not stale cookies.txt). HTML + wiki report generated. Cron job updated with
camofox-browser-automation+browser-backend-verificationskills. - GitHub Trending Radar — Daily Digest removed: Stopped by user on 2026-08-02. Weekly roundup still active.
- Ops profile renamed: Tembo → Tusk. All SOUL.md, skill references, and memory entries updated.
- Wiki audit cron job created: Runs nightly at 23:59 AWST — reviews past 24h of conversation for wiki changes.
- Ops profile Mnemosyne enabled: Mnemosyne plugin enabled on ops profile with
profile_isolation: true— Tusk gets its own memory bank, separate from default (Rhino). Zero cross-contamination. Verified end-to-end 2026-08-02. Config:~/.hermes/profiles/ops/config.yaml(memory.mnemosyne.profile_isolation: true,allow_tool_override: false). - OmniRoute free-DeepSeek silent-stop mitigation (2026-08-04): Free-DeepSeek upstreams returning empty-after-tool responses since Aug 1 → silent turn stops on
deepseek-flash-freeandsmart-route/good-freeacross both instances. Reworked both combos: strategypriority→fill-first, dropped proven culprits (238d5978/deepseek-v4-flash+-0731,nvidiadeepseek), healthy free models promoted, deepseek demoted to last resort. See incidents/2026-08-04-omniroute-free-deepseek-silent-stops. - OmniRoute three-layer fix (2026-08-07): npm package
.envoverride (ENABLE_SOCKS5_PROXY=true re-installed by npm update), dead nanobot provider connection (CT333 DOWN), PVE host load leaking into CT600 via nesting=1. First-request-after-cache-expiry stall documented. See systems/omniroute. - Nanobot status degraded (2026-08-07): CT333 nanobot confirmed DOWN — connection refused on 8900. OmniRoute provider connection disabled. See systems/nanobot.
- CT460 memory bumped (2026-08-07): 5096MB → 14GB RAM. Was causing swap thrashing at load 8+.
Recent Changes (2026-08-08)
- Cron job model repinning: 3 jobs repinned from dead
freeapi/minimax-m2.7→smart-route(IDs:c8d52904e1d6,1b23c042e17d,d40085da631c). Mosquito Tracker repinned from deadfreeapi/auto→smart-route(ID:1b31187397a5). 9 stale-named cron jobs (e.g.vertex/gemini-2.5-flash,gpt-5.6-terra,deepseek-v4-flash-free) repinned tosmart-route. Daily Marketing Job Radar swapped togpt-5.6-terra. - Hermes UI vite config revert: Vite config had been changed to HTTPS with self-signed certs (~16:00 Aug 8), breaking iPad access (plain HTTP → HTTPS-only without trusted cert). Reverted to pre-HTTPS config, restarted
hermes-ui.service. Production build now serves/ui/path correctly with relative asset paths.hermes-desktop.martinwa.orgidentified as separate Cloudflare infrastructure (likely on CT450), not fixable from CT460. - Phase One estate review completed: Manual cron run verified CT450's 11 duplicate publishing jobs remain paused (zero executions since Aug 1), CT460's 11 production jobs remain enabled with
last_status=ok, and CT333 Nanobot has a livejobs.jsonwith 9 jobs. The cron review report contained two inaccuracies (wrong date, false claim about CT333 having no scheduler) — verified via live system probes instead.
Recent Changes (2026-08-09)
- Portainer password reset (CT245): Admin user is
anthony(notadmin). Password was forgotten; reset viadocker run --rm -v portainer_data:/data portainer/helper-reset-passwordafter stopping the Portainer container. Verified end-to-end withPOST /api/auth→ HTTP 200 + valid JWT. Portainer now uses Tailscale/Let's Encrypt cert on:9443(see systems/homepage-dashboard). Recovery procedure: stop container → run helper image → restart → verify with auth API. - SFTPGo security review (CT299): Anthony shared SFTPGo WebAdmin PDF settings for audit. Key findings: (1) remote SFTP root path
//resolves to/— full filesystem access, (2) host fingerprints empty (low-risk on Tailscale but should be pinned for hygiene), (3) remote user isroot, (4) quota valueF1on Cloudflare-R2 virtual folder is non-standard (may be display artifact). No action taken — flagged for Anthony's review.
Recent Changes (2026-08-10)
- Cron job failures — session storage issue: Four cron jobs failed on 2026-08-10 with two distinct error patterns:
- TimeoutError (idle for 601–602s): "Daily Marketing Job Radar" (dca8482e4f76) at 07:12, "Political News Digest (Mon/Thu)" (0e519874d280) at 08:12. Jobs stuck initializing, exceeded 600s idle limit.
- RuntimeError (session storage): "Tech & AI Newsletter Digest (Analytical)" (85edf6772bca) at 07:12, "GitHub Trending Radar — Weekly Roundup" (c0a9fa314542) at 09:03. Error: "session storage could not be written (the transcript would have been lost on restart). This is often a full disk — free some space (or fix state.db permissions)."
- Root cause: Disk at 83% (11GB free on 65GB).
state.dbis 593MB. Not critically full but may be triggering write failures. Sessions.json shows only 1 active session in past 24h — session DB likely needs cleanup or WAL checkpoint. - Impact: News digests and GitHub Trending did not deliver. Job Radar did not run.
- See: systems/scheduled-tasks Known Issues section.
- OpenCode WebSocket proxy errors: Repeated "OpenCode service unavailable" errors in hermes node journal (Aug 11 00:08). Process running (PID 809564,
opencode serve), but WebSocket proxy failing to connect. Likely transient — service was available earlier in the day.
Recent Changes (2026-08-14)
- OmniRoute factory reset on CT601: Database wiped clean (0 combos, 0 providers, 0 API keys, 115 built-in auto entries). Backup at
/opt/omniroute/factory-reset-backup-20260814-225524. Providers re-added from Notion API vault: Anthropic, Google Gemini, Groq, Mistral, OpenRouter (all passed live tests). OpenAI keys tested but invalid — removed. See systems/omniroute. - Hermes default model changed:
auto/best-free→resilient-freein~/.hermes/config.yaml.auto/best-freewas misconfigured (no combo definition, routed to paidgpt-5.6-sol). - Multiple free combos broken by upstream model ID changes: OpenRouter Poolside
laguna-s-2-1:free→laguna-s-2.1:free(dash→dot); Groqllama-4-scout-17b-16e-instructretired. Affected:resilient-free,free-IA,free-stack,good-free,deepseek-flash-free,mimo-free. - Guanaco router updated: CT205
ollamacontainer — Guanaco v0.8.11 → v0.8.14. DSML tag leakage fixes (tool-call formatting no longer leaks raw syntax), dashboard performance fix. See systems/guanaco. - GPT-5.6 Luna research: Community consensus — Luna cleaner/polished; DeepSeek V4 Flash more persistent/cheaper. Provider route matters more than model name. Luna recommended for planning/review, DeepSeek for execution. See systems/model-providers.
- Hermes UI restart: Port 8787 service restarted, now properly binding 0.0.0.0 for external access. Confirmed reachable from Tailscale.
- LiteLLM routing issue identified: Hermes was previously pointed at LiteLLM (
http://litellm:4000/v1, modelfree-auto) causing 6–26s per call. OmniRouteauto/best-freetested at 265ms. Config now points at OmniRoute.
Recent Changes (2026-08-13)
- OmniRoute migrated CT600 → CT601: Provider renamed
custom:omniroute→custom:omni; base URLhttp://omniroute:20128/v1→http://omni:20128/v1. Hostomni.kangaroo-eel.ts.net(100.93.204.4, active) replacesomniroute(100.88.81.19, offline). CT600 stopped, CT601 running. DB path/var/lib/omniroute/storage.sqlite→/opt/omniroute/storage.sqlite; API key unchanged. All config (14) + cron-job (22)custom:omnirouterefs repointed tocustom:omni. Backup:~/.hermes/config.yaml.bak.omniroute-removal. See systems/omniroute. - Evening stand-down briefing weather bugfix: Weather collector returns a plain string (
+16°C Sunny), but the three dashboard widgets (evening.html,evening-grid.html,evening-briefing.html) read object fields →undefined. Added string-vs-object guards; verified served HTML no longer contains broken raw field refs.