diff --git a/swarm-common/obsidian-vault/will/will-shared-zap/Infrastructure/Automation/n8n Implementation Handoff.md b/swarm-common/obsidian-vault/will/will-shared-zap/Infrastructure/Automation/n8n Implementation Handoff.md index 8e6bed3..4c756a2 100644 --- a/swarm-common/obsidian-vault/will/will-shared-zap/Infrastructure/Automation/n8n Implementation Handoff.md +++ b/swarm-common/obsidian-vault/will/will-shared-zap/Infrastructure/Automation/n8n Implementation Handoff.md @@ -14,13 +14,16 @@ related: [[Infrastructure/Automation/n8n Workflows]], [[Infrastructure/Automatio n8n is running on `n8n-agent` at `http://127.0.0.1:18808`. -Last verified on 2026-05-13: +Last verified on 2026-05-13 (evening): - Container: `n8n-agent` running and healthy. - Health endpoint: `GET /healthz` returns `{"status":"ok"}`. - Workflow export: `n8n export:workflow --all` succeeds. -- Active workflows: 11. +- Active workflows: 12. +- Inactive workflows: 1 (Nightly Obsidian Vault Sync replaced by Evening Digest). - Archived workflows: 2 unrecoverable duplicate IMAP workflows archived after SQLite recovery. +- Docker health endpoint: `GET :18809/health` returns container state for 7 services. +- Systemd user service `docker-health-endpoint.service` active and enabled. ## Implemented and active @@ -44,8 +47,12 @@ Last verified on 2026-05-13: - Uses `127.0.0.1:5678` for n8n self-health. - Alerts Telegram and Discord after two consecutive failures. - Sends recovery messages when a previously-alerted service becomes healthy again. +- Docker health enrichment: implemented 2026-05-13. + - Host-side Python HTTP endpoint at `~/lab/swarm/scripts/docker-health-server.py` on port `18809`. + - Systemd user service `docker-health-endpoint.service`. + - Watchdog now calls `http://172.19.0.1:18809/health` and includes container status/health/restarts in alerts. - Remaining improvement: - - Add Docker health-state enrichment. This requires either mounting Docker socket read-only or adding a host-side helper endpoint/script. Do not mount the Docker socket casually; decide the safer boundary first. + - Tune alert deduplication thresholds after observing real failure patterns. ### n8n Failure Digest @@ -56,8 +63,9 @@ Last verified on 2026-05-13: - Queries recent failed n8n executions. - Groups failures by workflow/node/error. - Sends a concise Telegram digest. +- Discord delivery: implemented 2026-05-13. + - Now delivers to both Telegram and Discord #ops-alerts in parallel. - Remaining improvement: - - Add Discord delivery to ops channel. - Tune grouping/windowing after observing real failure volume. - Add first-seen/last-seen persistence if the current digest is too repetitive. @@ -73,6 +81,7 @@ Last verified on 2026-05-13: - Archived duplicates: - `xjUoQf97TkBrawc8` — `IMAP Inbox Triage + Obsidian Notes (squareffect)` - `kHDK9QdUSiAJ8rCM` — `IMAP Inbox Triage + Obsidian Notes (wills-portal)` +- Container URLs fixed 2026-05-13: stale `192.168.153.130` replaced with Docker bridge `172.19.0.1`. - Remaining improvement: - Rebuild any needed second-mailbox triage flows from scratch instead of unarchiving the corrupted duplicates. - Add draft-reply generation for reply-needed messages. @@ -105,16 +114,21 @@ Last verified on 2026-05-13: - Add meeting-prep note template. - Add after-meeting follow-up path that collects event + notes + transcript and produces action items. -### Nightly Obsidian Vault Sync +### Evening Digest (replaces Nightly Obsidian Vault Sync) -- Workflow ID: `75JCevkdgkyCr2qH` +- Old workflow ID: `75JCevkdgkyCr2qH` (deactivated) +- New workflow ID: `PlZywwqL8MRNEAN6` - Status: active -- Trigger: nightly +- Trigger: daily at 21:00 America/Los_Angeles - Current behavior: - - Generates nightly operational note using local LLM and live service context. + - Queries n8n executions API for today's successes and failures. + - Checks Docker container health via `172.19.0.1:18809`. + - Lists new Obsidian notes created today. + - Synthesizes with local gemma-4-26B LLM. + - Delivers to Telegram, Discord #ops-alerts, and Obsidian. - Remaining improvement: - - Align with the desired evening digest shape: jobs run today, failed jobs, reminders, short summaries. - - Add n8n Failure Digest summary as an input. + - Add systemd timer health once a host-side endpoint exists. + - Add reminders and task queue summary. ### Daily OpenClaw Session Digest @@ -279,36 +293,27 @@ Recommended implementation: ## Recommended next order of work -1. Observe Gmail IMAP fallback. - - Goal: confirm the next real Gmail ingestion produces the expected Telegram digest and Obsidian note. - - If output shape is wrong, adjust the shared triage/formatting nodes; do not return to the broken OAuth trigger unless Google OAuth is re-authorized. +1. ~~Fix Gmail Trigger warning.~~ Done 2026-05-13: replaced with IMAP fallback. +2. ~~Add Docker health-state enrichment to Swarm Health Watchdog.~~ Done 2026-05-13: host-side endpoint on 18809, systemd service. +3. ~~Build Morning Brief v1.~~ Done 2026-05-13: workflow `g3IdGZCK1EtTsv9T`, daily 06:30 PT. +4. ~~Extend Evening Digest.~~ Done 2026-05-13: workflow `PlZywwqL8MRNEAN6`, daily 21:00 PT. +5. ~~Add Discord delivery to n8n Failure Digest.~~ Done 2026-05-13. +6. ~~Fix stale container URLs in IMAP workflow.~~ Done 2026-05-13. -2. Add Docker health-state enrichment to Swarm Health Watchdog. - - Prefer safe host-side helper over raw Docker socket mount. - - Include last Docker health state and suggested fix in alerts. - -3. Build Morning Brief v1. - - Start small: calendar + weather + email highlights + swarm/n8n health. - - Deliver to Telegram/Discord and save to Obsidian. - -4. Extend Evening Digest. - - Use n8n Failure Digest plus workflow/timer run summary. - - Include failed jobs and next recommended action. - -5. Implement Obsidian Semantic Index. +7. Implement Obsidian Semantic Index. - Decide canonical vector store first. - Use Ollama embeddings on `18807`. - Add incremental update path. -6. Upgrade Web-to-Notes Capture. +8. Upgrade Web-to-Notes Capture. - Add PDF and YouTube transcript support. - Add source metadata and claim extraction. -7. Upgrade Voice Memo Pipeline. +9. Upgrade Voice Memo Pipeline. - Add native Telegram/Discord voice ingestion. - Add optional Kokoro audio summary. -8. Define webhook action bus catalog. +10. Define webhook action bus catalog. - Document stable endpoints and schemas. - Add `process_url`, `summarize_pdf`, `add_reminder`, `sync_vault`, `run_health_check`.