Forge: Current State Report¶
Snapshot date: 2026-04-28 Author: Wellness worker session (Opus 4.7) Purpose: Point-in-time inventory of every machine, IP, service, script, automation, integration, and connection that makes up Justin's forge system.
1. Hardware & Network¶
Physical / VM machines¶
| Name | Role | OS | IP | SSH |
|---|---|---|---|---|
| Finn | Proxmox host (MS-01) | Proxmox VE | 192.168.86.67 | ssh finn |
| UDev | VM 103 on Finn, command center | Ubuntu | 192.168.86.50 | (this box) |
| Vector | Primary workstation | Windows 11 Pro | DHCP | , |
| Sol | MacBook Pro M3 Max 64GB, runs LM Studio | macOS | 192.168.86.33 (also static .87 on en7) | , |
| Venus | iPhone 15 Pro Max | iOS | DHCP | , |
Containers/VMs on Finn (Proxmox)¶
| VMID | Type | Hostname | IP | SSH alias | Role |
|---|---|---|---|---|---|
| 100 | VM | homeassistant | 192.168.86.70 | ssh homeassistant |
Home Assistant Core 2026.4.4 |
| 101 | LXC | plex | 192.168.86.73 | ssh plex |
Plex media streaming |
| 102 | LXC | media-server | 192.168.86.74 | ssh media-server |
Arr stack + Tailscale + jk-hub-api |
| 104 | LXC | biz-apps | 192.168.86.81 | ssh biz-apps |
decommissioned |
| 105 | LXC | adguard | 192.168.86.75 | ssh adguard |
DNS + ad blocking |
| 106 | LXC | n8n | 192.168.86.82 | ssh n8n |
Workflow automation (Docker) |
| 107 | LXC | immich | 192.168.86.83 | ssh immich |
Photo/video library |
| 108 | LXC | frigate | 192.168.86.84 | ssh frigate |
Reolink NVR |
| 110 | LXC | minecraft | 192.168.86.23 | ssh minecraft |
WiebCraft Paper+Geyser server (public) |
UDev has passwordless SSH to all containers via key auth.
2. Storage (centralized on Finn)¶
| Tier | Drive | Size | UDev path | Backed up? |
|---|---|---|---|---|
| Cloud | Google Drive | , | /mnt/workspace/Google-Drive/ (rclone FUSE) |
Native (Google) |
| Workspace | NVMe | 8 TB | /mnt/workspace/ (NFS) |
Nightly rsync to Storage |
| Storage | HDD | 26 TB | /mnt/storage/ (NFS) |
, |
Workspace holds video projects, brand assets per-brand year-organized (JustinWieb-VR, Nova-Design, Gus-Outdoor-Co, Sip-N-Serve, JustinWieb-Tech, Personal), shared assets (Music, Sound-Effects), and Frigate's security-cameras/.
Storage holds Plex movies/tv, photo archive (1991-2020), audiobooks, books, downloads, app data (tautulli, justinkrystal-media), forge-archive/ (cold storage of decommissioned forge content), and workspace-backup/ (nightly rsync source).
Google Drive is fully mapped at system-map/google-drive. Top-level:
Business/: Gus-Outdoor-Co, JustinWieb-VR, Nova-Design, Sip-N-Serve, Wiebelhaus-Enterprises (formation, EIN, taxes, records)Inbox/, content project drafts (video scripts, research)Personal/, house, finances, fitness, journal, recipes, records, travel, etc.- Root: AI-generated
.docxfrom/save-to-drivepipeline
3. Forge Workspace (/home/justinwieb/forge)¶
forge/
├── system-map/ ← Shared model-agnostic brain (fleet, architecture, steering, drive)
├── CLAUDE.md ← Bootstrap instructions for Claude Code sessions
├── memory/
│ ├── daily/ ← Append-only daily logs (YYYY-MM-DD.md)
│ ├── general/ ← Long-term topical knowledge
│ ├── handoffs/ ← Cross-session briefings (~21 docs)
│ └── _archive/ ← Cold storage of retired pieces
├── scripts/ ← Tooling (assets, cleanup, cloudflare, gdoc, hooks, integrations, monitors, n8n, notion, search, sites)
├── sites/ ← Deployable static sites (justinkrystal.com, justinsforge.com, _shared, _templates)
├── infra/ ← Infrastructure (context-api, mkdocs, n8n/workflows, systemd, logrotate)
├── brands/ ← Brand context (gus-outdoor-co, gus-the-bass, nova-design, wiebelhaus-enterprises)
├── data/ ← Local SQLite DBs + JSONL caches (search, context, inbox-context, telegram-chats)
├── logs/ ← Service + monitor + integration + worker logs
├── tasks/ ← Dispatcher queue (pending/active/completed/failed) — 97 completed, 7 failed, 0 pending
├── comms/ ← File-based agent comms bus (inbox/, broadcasts/, results/)
├── dashboard/ ← Web dashboard generator (port 8099)
├── docs/ ← Operational playbooks (sites-playbook, asset-grabber, refactor docs)
├── personal/ ← Justin's personal files
├── clients/ ← Client files
└── .claude/ ← Skills, agents, settings
4. Always-on systemd services (UDev)¶
| Service | Status | Role |
|---|---|---|
forge-context-api |
active | FastAPI on 0.0.0.0:7358, /healthz, /sources, /ingest/{source}, /context, /refresh/wellness |
forge-dispatcher |
active | Watches tasks/pending/, runs claude -p --bare workers (pipe mode) |
forge-home-base |
active | Always-on Claude Code Remote Control session (home-base_Sonnet46), phone-driveable |
forge-inbox-webhook |
active | HTTP entry on :7400 for iOS Shortcuts → inbox_brain |
forge-mkdocs |
active | MkDocs Material on :8000, renders all forge .md at https://mkdocs.justinsforge.com |
forge-telegram-ava |
active | @Ava_JForgeBot LifeOS/SecondBrain assistant |
forge-telegram-bot |
active | @GregTwoPointO_Bot chat bot, /task, /opus, /haiku, /status, plain chat via claude -p |
forge-telegram-inbox |
active | @jw_inbox_bot voice/text inbox: Whisper → Sonnet brain → tools |
All enabled via systemctl enable, restart on failure.
5. Cron Jobs (28 active)¶
Monitors (every 5–15 min)¶
*/5,monitors/security-check.sh→ SSH/firewall/auth log scan*/10,monitors/infra-check.sh→ fleet health, disk, services*/10,monitors/mount-watchdog.sh→ self-heal dead FUSE mounts (rclone)*/15,monitors/business-check.sh→ Shopify/email checks
Wellness pipeline¶
- Garmin polling, hourly at
:00UTC from14:00–03:00UTC = 09:00–22:00 CT (14×/day) */15,infra/context-api/scripts/ha_poller.py→ HA →facts_wellness0 3UTC,wellness/daily-summary.py→ Notion Wellness Daily upsert (= 22:00 CT)30 7UTC,morning-wellness-check.sh(legacy, soft-deprecated)- Eight Sleep cron poller DISABLED 2026-04-28 (HA native integration is canonical)
Brain routines (Justin-facing pushes)¶
0 12UTC,morning-brief.py→ @jw_updates_bot at 7am CT0 17UTC,heartbeat.py noon→ midday check-in0 23UTC,heartbeat.py evening→ end-of-day check-in* * * * *,telegram/nudge-fire.py→ fires scheduled nudges (every minute)
Maintenance¶
30 3, search index rebuild (fastembed BGE + sqlite-vec over memory/system-map/docs/brands/CLAUDE.md)0 4: Minecraft world backup (CT 110 →/mnt/storage/minecraft-backups/)15 4, retention sweep (moves >30d files incomms/,tasks/,logs/workers/→_archive/YYYY-MM/)
6. The Brain: Agents & Bots¶
Telegram bots (4 active + 2 push-only)¶
| Bot | Service | Role |
|---|---|---|
@GregTwoPointO_Bot |
forge-telegram-bot |
Chat with claude -p + slash commands (/task, /opus, /haiku, /status, /context) |
@jw_inbox_bot |
forge-telegram-inbox |
Voice/text → Whisper → Sonnet brain → 29 tools → confirm |
@Ava_JForgeBot |
forge-telegram-ava |
LifeOS assistant (life-coach personality wrapper) |
@jw_updates_bot |
(push only, no service) | Outbound notifications (morning brief, heartbeats, alerts) |
@Manager_JForgeBot |
(push only) | Unified output for ALL forge agents, chat_id 7110798439 |
Inbox Brain (scripts/integrations/telegram/inbox_brain.py), 29 registered tools¶
| Category | Tools |
|---|---|
| Capture | save_to_inbox, save_knowledge, log_habit, schedule_nudge |
| Tasks | create_task, update_task, query_notion |
| Calendar | create_calendar_event, update_calendar_event, delete_calendar_event, list_calendar_events |
| Email: Personal & Business Gmail | search_emails, read_email, get_email_thread, email_to_task, archive_emails, clear_emails, mark_email_as_read, star_email, apply_email_label, unsubscribe_email, block_sender, manage_drafts, draft_email |
| Wellness | wellness_now (live snapshot), wellness_history (Notion review) |
| Outbound | push_updates (push to @jw_updates_bot) |
| Spawn | spawn_worker (fire claude -p worker into dispatcher) |
Sonnet 4.6 makes the tool-use decision per message. Voice → faster-whisper base.en transcription locally on UDev.
Task dispatcher¶
scripts/dispatcher.sh (v2 pipe mode claude -p --bare) watches tasks/pending/, fires headless workers, writes results to tasks/completed|failed/. 97 completed tasks to date, 0 pending.
7. Data Layer¶
SQLite, data/context.db (1.4 MB, 4,656 wellness rows)¶
| Table | Rows | Purpose |
|---|---|---|
events_raw |
751 | Raw ingest events |
facts_wellness |
4,656 | Time-series wellness metrics (Eight Sleep + Garmin + hub temps) |
facts_home |
0 | Home Assistant state snapshots (placeholder; not yet ingested) |
sources |
2 | eight_sleep + garmin, both active, last success 2026-04-28T17:15 |
consents |
, | Per-source data-use consents |
Search index, fastembed BGE-small + sqlite-vec¶
- Indexes
memory/,system-map/,docs/,brands/, root.mdfiles - Reindexed nightly 03:30 UTC
- Skill:
/recall <query>for semantic search
Notion DBs: Life OS (parent 37e5e724-...-fab8) + JustinWieb-VR (parent 9d19c2ab-...-db06)¶
Life OS (10 DBs):
| DB | ID prefix |
|---|---|
| 📥 Inbox | 3500950b-d7a9-81f8... |
| ✅ Tasks | 3500950b-d7a9-81c0... |
| 📦 Projects | 3500950b-d7a9-81dd... |
| 🎯 Areas | 3500950b-d7a9-811a... |
| 🔁 Habits | 3500950b-d7a9-8125... |
| 🧠 Knowledge | 3500950b-d7a9-8104... |
| 📝 Daily Log | 3500950b-d7a9-8124... |
| 📚 Reading & Watch | 3500950b-d7a9-8164... |
| 🎯 Goals | 3500950b-d7a9-8195... |
| 💪 Wellness Daily | 3500950b-d7a9-811c... (NEW 2026-04-28) |
JustinWieb-VR (6 DBs): Tasks, Projects, Content Ideas, Production, Published, Content Pillars, Sponsors.
All 16 DBs registered in inbox_brain.NOTION_DBS for tool access.
8. n8n Workflows (34 total, infra/n8n/workflows/)¶
n8n runs in CT 106 at 192.168.86.82:5678. Auth via X-Forge-Auth header (secret in ~/.forge-secrets/n8n.env).
| Category | Workflows |
|---|---|
| Gmail (12) | list-recent-emails, get-email-body, get-email-thread, get-draft-content, archive-emails, clear-emails, mark-as-read, star-email, apply-label, manage-gmail-drafts, unsubscribe-sender, block-sender |
| Gmail drafts (2) | create-gmail-draft-business, create-gmail-draft-personal |
| Calendar (4) | list-calendar-events, create-calendar-event, update-calendar-event, delete-calendar-event |
| Notion (9) | notion-create-database, notion-create-page, notion-update-page, notion-query-database, notion-search-databases, notion-get-database, notion-list-children, notion-search, notion-patch-database |
| TickTick (3) | ticktick-create-task, ticktick-list-projects, ticktick-list-project-tasks (deprecated: TickTick is OUT) |
| Misc (4) | forge-hello (ping), verify-gmail-business, verify-gmail-personal, verify-calendar |
Caller helper: scripts/n8n/call.sh <webhook-path> <json-payload> (supports @/path/to/file.json).
9. Home Assistant (VM 100, 192.168.86.70:8123)¶
- Version: 2026.4.4
- 992 entities total, 358 sensor, 123 number, 87 switch, 85 button, 65 binary_sensor, 50 select, 42 light, 35 script, 30 automation, 17 notify, 5 camera, 5 media_player
Active integrations (40)¶
alexa_devices · alexa_media (HACS) · androidtv_remote · backup · blink · brother · cast · cloud (Nabu Casa: Alexa+Google enabled) · dlna_dmr · eight_sleep (HACS lukas-clarke) · elgato (×2) · frigate · go2rtc · google_generative_ai_conversation · google_translate · group · hacs · hassio · homekit_controller · ipp · lg_thinq · lutron_caseta · matter · met · mobile_app · mqtt · nest · nws · petkit · proxmoxve · radio_browser · reolink · shopping_list · smartthings · spotify · sun · template · thread · tuya · upnp · wake_on_lan
HACS frontend cards (5)¶
Bubble-Card · advanced-camera-card · lovelace-card-mod · lovelace-mushroom · mini-graph-card
Dashboards¶
- Main (
/lovelace) + wellness-dash (5 views: Today / Trends 7d / Trends 30d / Krystal / Detail) with refresh button - Reachable: LAN
http://192.168.86.70:8123/wellness-dashor via Tailscale
REST commands wired¶
forge_claude_dispatch→ n8n alexa-claude webhook (voice → Claude bridge)forge_refresh_wellness→ POSThttp://192.168.86.50:7358/refresh/wellness(NEW 2026-04-28)
10. Wellness Stack¶
Eight Sleep ──(HA native integration, real-time, every ~15-30 min idle)──┐
│
Garmin (hourly poll 09-22 CT) ──(scripts/integrations/garmin/poll.py)──┐ │
▼ ▼
Home Assistant sensors
│
(ha_poller every 15 min)
│
▼
SQLite facts_wellness (4,656 rows)
│
┌─────────────┼─────────────────┐
▼ ▼ ▼
/context API morning-brief daily-summary.py
(7am CT) (22:00 CT)
│
▼
Notion 💪 Wellness Daily
(Sonnet coach note)
│
▼
Brain `wellness_history` tool
Garmin metrics captured: steps, distance, calories, RHR, HRV overnight + status + weekly avg, body battery, stress avg, training readiness, sleep score, sleep duration, sleep stages (deep/light/rem/awake), respiration avg, SpO2.
Eight Sleep metrics: sleep_fitness/quality/routine_score, time_slept (sec), HRV, heart_rate, breath_rate, bed_temperature, target_temperature, sleep_stage, presence_start/end, bed_presence.
user_id mapping: Justin = right side c78dce09..., Krystal = left side b5ce51a3....
See reference_wellness_pollers for the full pipeline writeup.
11. Sites & Web Properties¶
Cloudflare zones (10, all active)¶
gusoutdoor.co · gusthebass.com · justinkrystal.com · justinsforge.com · justinwieb.com · justinwiebelhaus.com · metaapplications.com · shopnovadesign.com · sipnservesociety.com · virtualrealityalliance.com
Cloudflare tunnels (4)¶
| Tunnel | Status | Purpose |
|---|---|---|
media-server (a55b7768...) |
healthy | Catch-all *.justinkrystal.com + main service ingress |
AdGuard (86588d06...) |
healthy | AdGuard Web UI |
Deployed/active sites¶
- justinkrystal.com, multi-page (landing, hub-api Docker container running on media-server, Press Your Luck, basketball, whiteboard)
- justinsforge.com, landing, demo-scaffold, games
- shopnovadesign.com: Shopify e-commerce (Nova Design)
- MkDocs at
mkdocs.justinsforge.com(CF Access protected), renders all forge.md(memory, nexus, docs, brands, infra, root)
12. External Service Connections¶
| Service | Auth location | Used for |
|---|---|---|
| Cloudflare API | ~/.forge-secrets/cloudflare.env |
DNS + Tunnels (scripts/cloudflare/cf.py, /cf-add skill) |
| Notion API | n8n cred mgQHSiQOlbURyLs1 |
All Notion DB ops via 9 n8n workflows |
Gmail Personal ([email protected]) |
n8n OAuth | Read/draft/archive/filter, never auto-send (recovery email) |
Gmail Business ([email protected]) |
n8n OAuth | Read/draft/archive/filter; send allowed but always confirm |
| Google Calendar | n8n OAuth | List/create/update/delete events |
| Google Drive | rclone (mount) + n8n | /mnt/workspace/Google-Drive/ live FUSE mount |
| Eight Sleep | ~/.forge-secrets/wellness.env + HA integration |
Wellness data |
| Garmin Connect | ~/.forge-secrets/wellness.env (garminconnect lib + token cache) |
Wellness data, hourly poll |
| Home Assistant API | forge/.env (HA_TOKEN, HA_URL) |
All HA REST + WebSocket calls |
| Anthropic API | Claude Code CLI auth | All Sonnet/Opus/Haiku calls (Max plan) |
| GitHub | ~/.forge-secrets/github.env (PAT) |
Plugin + repo operations |
| Spotify | HA integration | Playback control |
| TickTick | n8n cred (deprecated) | Was task sync, removed from stack 2026-04-28 |
| Whisper | local faster-whisper base.en |
Voice transcription (Telegram inbox) |
| LM Studio (Sol) | port 1234 | Local MLX models (Qwen 3.5 9B/35B), used by OpenClaw (currently wiped) |
Secrets layout, ~/.forge-secrets/ (chmod 600, outside repo)¶
cloudflare.env·github.env·n8n.env·wellness.envtelegram.env·telegram-ava.env·telegram-inbox.env·telegram-manager.env·telegram-updates.env
13. Brand & Project Inventory¶
Active brands (in forge/brands/)¶
- Nova Design (shopnovadesign.com): Shopify e-commerce; FMO contract files in Drive
- JustinWieb-VR (justinwieb.com): VR affiliate; Notion JWVR DBs (Tasks, Projects, Content Ideas, Production, Published, Pillars, Sponsors)
- Gus Outdoor Co (gusoutdoor.co), outdoor brand
- Gus the Bass (gusthebass.com), niche brand
- Wiebelhaus Enterprises, parent/holding LLC; formation docs, EIN, taxes in Drive
- Sip-N-Serve (sipnservesociety.com), brand files in Drive
Active projects¶
- UDev / Forge, this entire system
- Business Second Brain, n8n + Claude Code automation architecture (master handoff: building-the-brain-life-os-inbox-2026-04-27)
- justinkrystal.com, personal site with Press Your Luck game, basketball, whiteboard, landing
- WiebCraft Minecraft server (CT 110, public)
- Wellness pipeline (rebuilt 2026-04-28, see wellness-stack-improvements-2026-04-28)
- Decorator Crab, integration architecture for Context Graph
Decommissioned / wiped¶
- OpenClaw / Greg: Docker container, all persona files, Discord bot, fully wiped 2026-03-15, trailing artifacts cleaned 2026-04-28
- biz-apps CT 104, was AppFlowy + Invoice Ninja
- TickTick, removed from Second Brain stack 2026-04-28
14. Skills (slash commands), 17 active in .claude/skills/¶
| Skill | Purpose |
|---|---|
/spawn |
Spawn Claude Code Remote Control session in tmux on UDev |
/sessions |
Lifecycle for spawned sessions (list/kill/status/log/budget) |
/recall |
Semantic search across forge knowledge (fastembed + sqlite-vec) |
/context |
Pull live wellness/home/all snapshot from Context API |
/notify |
Multi-channel notification (file/ntfy/n8n/Discord/Slack/Telegram) |
/fleet-status |
All running sessions/agents/workers/monitors |
/create-task |
Drop a task into dispatcher queue |
/spawn-worker |
Ephemeral claude -p worker via dispatcher |
/save-to-drive |
Markdown → styled .docx in Google Drive |
/preview-site |
Local + Tailscale URL preview of sites/<name>/ |
/deploy-site |
Manual site deployment |
/screenshot |
Playwright desktop+mobile capture |
/cf-add |
Add Cloudflare DNS+ingress hostname |
/decrypt-n8n |
Decrypt n8n credential by ID |
/handoff |
Scaffold a handoff doc |
/mount-check |
Verify rclone/FUSE mounts |
/ssh-status |
Fleet host health snapshot |
15. Agents (.claude/agents/)¶
chief-director.md, director.md, manager.md, worker.md, agent role definitions for forking/spawning subagents with specific scopes.
16. Memory & Knowledge¶
| Location | What |
|---|---|
MEMORY.md (in ~/.claude/projects/-home-justinwieb-forge/memory/) |
Auto-memory index, always loaded into Claude Code context |
memory/daily/ |
Append-only daily logs (364 KB across many days) |
memory/general/ |
Topical long-term knowledge (16 KB) |
memory/handoffs/ |
Cross-session briefings (420 KB, ~21 docs) |
memory/_archive/ |
Cold storage of retired pieces |
~/.claude/projects/.../memory/reference_*.md |
Tool/system references, wellness pollers, Notion scaffold, MkDocs, etc. |
system-map/ |
Model-agnostic shared brain (fleet, architecture, steering, google-drive, lm-studio-setup, network-sharing-plan) |
Boot briefing: scripts/hooks/since-last.sh (SessionStart) surfaces last session, recent handoffs, pending tasks, monitor alerts, active tmux.
Auto-context: scripts/hooks/auto-context.py (UserPromptSubmit) auto-loads project pointers when prompts mention Nova/JWVR/HA/n8n/Plex/Frigate/etc.
Auto-checkpoint: scripts/hooks/auto-checkpoint.sh (Stop) writes session checkpoints to today's daily log.
17. Claude Code Plugins¶
telegram@claude-plugins-official: DISABLED (conflicts withbot.pyon same token)github@claude-plugins-official, needs PATpyright-lsp@claude-plugins-official: Python LSPcontext7, live docs MCPfrontend-design, design helperskill-creator, skill scaffolding
18. Active tmux sessions (snapshot)¶
| Session | Started | Likely role |
|---|---|---|
home-base_Sonnet46 |
always-on | systemd-managed home base |
n8n-telegram_Opus47 |
Mon 20:13 | "Building The Brain" (parent) |
biz-inbox_Sonnet46 |
Mon 20:45 | Business inbox session |
mkdocs-build_Opus47 |
Tue 00:58 | MkDocs build worker |
notion-scaffold_Sonnet46 |
Tue 01:35 | Notion DB scaffolding |
forge-cleanup_Opus47 |
Tue 01:43 | Cleanup sweep |
forge-home_Opus47 |
Tue 02:10 | Forge home base |
forge-refactor_Opus47 |
Tue 13:46 | Memory + skills refactor |
wellness-stack_Opus47 |
Tue 13:12 | Wellness pipeline rebuild (this report's author) |
19. Logs & Observability (forge/logs/)¶
- Service logs:
dispatcher.log,home-base.log,inbox-webhook.log,telegram-bot.log,telegram-inbox.log - Monitor logs:
monitor-business.log,monitor-infra.log,monitor-mounts.log,monitor-security.log - Integration logs:
integrations/{eight-sleep,garmin,wellness-daily,context-poller,cron}.log - Brain routines:
morning-brief.log,heartbeat.log - Workers:
workers/<task-id>/*.log - Site screenshots:
site-screenshots/ - Logrotate config:
infra/logrotate/forge.conf(installed at/etc/logrotate.d/forge)
20. Connection Diagram (high level)¶
┌─────────────────┐
Justin's iPhone (Venus) → │ Telegram bots │
│ - GregTwoPointO│
│ - jw_inbox_bot │ ← voice/text → Whisper → Sonnet brain
│ - Ava │
│ - jw_updates │ ← outbound only (morning brief, alerts)
│ - Manager │ ← unified output for ALL agents
└────────┬────────┘
│
┌────────▼────────┐
│ inbox_brain.py │ 29 tools
│ (Sonnet 4.6) │
└────────┬────────┘
│
┌──────────────────────┼──────────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌────────────────┐ ┌──────────────────┐
│ n8n │ │ Context API │ │ Dispatcher │
│ 192.168.86.82│ │ 0.0.0.0:7358 │ │ (claude -p) │
│ 34 wfs │ │ facts_wellness│ │ tasks/pending │
└──────┬───────┘ │ 4,656 rows │ └──────────────────┘
│ └────────┬───────┘
┌───────────┼──────────────┐ │
▼ ▼ ▼ │
Gmail Notion Calendar │
(×2) (16 DBs) │
│
┌────────▼─────────┐
│ Home Assistant │
│ 192.168.86.70 │
│ 992 entities │
│ 40 integrations │
└────────┬─────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
Eight Sleep Reolink/Frigate Other devices
Pod 4 (live) cameras (Petkit, Nest, Tuya, LG, Lutron, Spotify, etc.)
▼
Garmin (hourly poll, garminconnect lib)
▼
SQLite facts_wellness → /context → morning-brief, brain, daily-summary
│
▼
Notion 💪 Wellness Daily
21. Pending / known follow-ups¶
morning-wellness-check.sh(07:30 UTC) is soft-deprecated, still reads oldsensor.eight_sleep_right_*entities. Should be deleted or repointed.- TickTick workflows in n8n are deprecated but still present
ha_dashboard_setup.pyis stale, would clobber the new dashboard if rerun- Alexa exposure: sensors auto-exposed, but custom friendly names not set (HA UI flow)
- HA Assist + LLM agent for free-form voice queries, not configured yet
- biz-apps CT 104, fully decommissioned but container still exists on Finn
Snapshot captured 2026-04-28 by the wellness worker session. Living systems drift fast, re-generate this report when the architecture changes.