Files
personal-agent-os/memory-systems/agent-os/04_projects/hermes-dashboard/decisions.md
T
2026-10-14 12:01:27 -07:00

4.9 KiB
Raw Blame History

Hermes Dashboard — Decisions

2026-10-14

  • Build as a thin local web layer on top of existing Hermes + vault. Do not replace Hermes desktop.
  • Keep all durable memory in the existing Agent OS / Obsidian structure.
  • Prefer Streamlit for first dashboard version (fastest to ship).
  • Apollo voice stays on existing ChatGPT plan / local TTS stack (no extra voice API).
  • Search OS agent will reuse parasite-seo skill, Safari 27 MCP, and VeriPath checks.
  • Non-negotiable: high-signal only; secrets stay out of vault; no irreversible actions without confirmation.

2026-10-14 — Phase 2 decisions

  • Dashboard built as single-file Streamlit app (~/Projects/hermes-dashboard/app.py, 10.8 KB).
  • Six-card layout (2x3 grid): Chat, Apollo Voice, Oracle, Workflows, Memory, Status.
  • Live cards (3): Oracle reads athena-oracle/status.md for pipeline source health + recent files. Memory reads latest 04_Daily/ + scans 04_projects/*/status.md for open actions. Status extracts model stack from HOME.md + shows last git commit.
  • Placeholder cards (3): Chat (textarea, disabled), Apollo Voice (toggle + slider + voice selector, disabled), Workflows (4 buttons: Video, Audit, Search OS, Projects, disabled). Awaiting Phase 3–5.
  • Launch: streamlit run ~/Projects/hermes-dashboard/app.py (Hermes venv, port 8501).
  • Dark theme: #1a1a2e cards, #ffac02 amber headers, #2a2a4a borders.

2026-10-14 — Phase 3 decisions

  • Built apollo_voice.py (9.6 KB) as standalone voice loop using existing stack: faster-whisper (tiny) for local STT, edge-tts for TTS, sounddevice for mic capture, ffplay for playback.
  • Continuous VAD mode: records until 1.5s silence, transcribes, gets LLM response, speaks with barge-in detection.
  • Barge-in: checks mic energy every 300ms during playback; kills ffplay and re-listens if speech detected.
  • LLM endpoint configurable via apollo_state.json (llm_endpoint field). Defaults to local LFM2.5 on port 1920. Falls back gracefully when unavailable.
  • Dashboard Apollo card: start/stop process control, voice selector (6 Edge TTS voices), live status indicator, last exchange expander.
  • Documented in 02_agents/apollo/README.md (architecture, stack, limits, state schema).
  • Current limit: requires a running LLM endpoint for voice replies (echo mode without one). Wake-word not integrated (sherpa runs separately in Hermes).

2026-10-14 — Phase 4 decisions

  • Adopted ClearFeed (Tony_tech/ClearFeed) as the story layer — replaces Athena Oracle for news ingestion. ClearFeed does fetch → dedup → cluster → rank → optional LLM summarize.
  • Built oracle_loop.py (11.6 KB) as content generation layer on top of ClearFeed output (stories.json).
  • Dual mode: template-based generation (always works, rule-based hooks/angles) + LLM mode (pass --llm, requires local model).
  • Per story output: 05_Output/oracle/YYYY-MM-DD/<slug>-social.txt + <slug>-blog.md.
  • Dashboard Oracle card now reads oracle_state.json and shows ranked stories with expandable hooks, coverage count, and links to generated drafts.
  • "Run Oracle Loop" button in dashboard (terminal-only for now — Streamlit can't spawn long-running subprocesses reliably).
  • Workflow note added to 08_workflows/oracle-content-loop.md.

2026-10-14 — Phase 5 decisions

  • Built search_os.py (16.5 KB) as SEO analysis + content generation agent.
  • Analyzes sites for 11 SEO signals: title, meta, H1, keyword density, schema, GBP mentions, contact info, word count.
  • Generates 4 platform-specific drafts following parasite-seo V3: GBP post, YouTube description, Reddit post (local persona), Quora answer (expert persona).
  • Safari 27 MCP deferred — macOS-only, not available on Windows. Uses requests for site analysis instead.
  • VeriPath patterns applied: site surface check, GBP presence check, cross-reference analysis.
  • Dashboard Workflows card: Search OS button shows terminal invocation + recent reports from 05_Output/search-os/.
  • Example run against ultrabeautysalon.com for "best hair salon folsom": found 5 SEO issues (missing keyword in title/H1/meta, 0% density, no GBP mentions), 2 strengths (contact visible, good word count).
  • Output format: single markdown report per keyword with analysis table + content drafts + action items.
  • Non-negotiable: all [bracketed] fields in drafts must be filled from real data before publishing.

2026-10-14 — Dashboard conventions (fix pass)

  • One render_<name>() per card, registered in CARDS in app.py; cards are laid out three per row inside bordered containers, and a card error is caught and shown inside that card.
  • Actions run the venv python (hermes-agent\venv\Scripts\python.exe) via run_script() with a timeout; results are shown with show_run() (rc + stdout/stderr, success/error).
  • Expensive vault scans use st.cache_data (60–300s ttl).
  • Theme lives in .streamlit/config.toml (dark). Backups of pre-fix files are *.bak-20261014.
  • Decision: no new features in this pass; Video/Audit/Projects stay disabled until wired.