--- source: raw/personal-os-state-2026-04-27.md content_hash: 1640cb63145b49263b9476e2c39fe443ac561fdf6c27faccc50cfc8568552614 namespace: work last_synced: 2026-04-28 confidence: 0.8 tags: [personal-os, state, executor, infrastructure] --- # Personal OS — State Snapshot (2026-04-27) Current state of the system after the [[personal-os-catchup-plan-2026-04-27]] was executed. Supersedes earlier state and v3 plan documents. ## Infrastructure (✅ live) - **Postgres on Mac** — tables: `tasks`, `stories`, `task_edges`, `sync_state`, `signal_queue`, `activity_daily` (+ `quadrant` col), plus new `corrections_log`, `executor_runs`. See [[personal-os-schema]]. - **sync.js** — 4-source Asana fetch, incremental deltas, sweepRecentlyCompleted - **generate-status.js** — DB → `status.md` + `asana_context.md`; live blocks: 5 advisor opps, 8 visibility gaps, 10 executor queue items in first run - **ActivityWatch** — DDG browser + Xcode watchers - **Hermes v0.11.x** — launchd daemon `ai.hermes.gateway`, Claude Code OAuth, `claude-sonnet-4-6` - **Discord bot Орёл#0898** — channels `#daily-brief #inbox #focus #executor #projects #journal #retrospector` See [[personal-os-architecture]] and [[personal-os-sync-pipeline]] for component detail. ## Schedule **Hermes cron jobs (8):** data-pipeline (every 30min), morning-brief (08:30), eod-summary (18:00), inbox-check (every 30min, 9-19), weekly-plan (Mon 08:00), weekly-review (Fri 17:00), retrospector (Fri 17:30 → `#retrospector`), commit-vault (23:00). **launchd agents (Mac-level, fire on wake):** - `personal.os.heartbeat` — :05 hourly watchdog, triggers missed Hermes one-per-day jobs - `personal.os.wiki-ingest` — 22:00 daily, runs local `claude -p` (filesystem access requires local subprocess, not Hermes API agent) ## Vault `~/obsidian/` — git remote `ssh://truenas_admin@mallexxx.duckdns.org/mnt/RED_2TB/storage/git/obsidian-vault.git`. Layout: `wiki/` (LLM-generated + hand-written, see [[wiki-ingest-process]]), `raw/` (symlinks), `work/` and `personal/` (Eagle-writable per [[vault-filling-guide]]), `family/`. Phase 8 of catchup added 43 `.cursor/rules/*.mdc` files under `work/wiki/apple-browsers/`. ## Catch-up plan execution status | # | Item | Status | |---|------|--------| | 1 | Schema (corrections_log, executor_runs, quadrant) | ✅ | | 2 | MS365 MCP in Hermes | 🟡 cloud connector only; no local npm package; available to `claude -p` jobs once added to CLI env | | 3 | inbox-triage STEP 0 | ✅ | | 4 | generate-status: advisor + visibility + executor queue | ✅ | | 5 | generate-status: quadrant + activity_daily upsert | ✅ | | 6 | retrospector SQL blocks | ✅ | | 7 | SOUL.md corrections_log INSERT | ✅ | | 8 | Vault consolidation (43 .mdc) | ✅ | | 9 | Executor PR template inline | ✅ | | 10 | Executor v2 prompt | ✅ written, not yet run end-to-end | ## Executor v2 architecture (Phase 4 plan) Autonomous worker: evaluates backlog → picks task → spawns sub-agent in Discord thread under `#executor` → streams progress → produces draft PR → self-reviews → CI loop → surfaces in daily/weekly briefs. **Triggers:** user-initiated (`fix [task]` in `#executor`), scheduled (Friday weekly-review queue), status-driven (Eagle reads `## ⚡ Executor Queue` from status.md). **Qualification SQL:** assigned to Alex, not completed, no stories in 14+ days, due within 30 days. **Worker flow:** Eagle creates Discord thread → spawns sub-agent (`--worktree` mode, workdir `~/DuckDuckGo/apple-browsers.git/.claude/worktrees/executor--/`) → posts streaming updates per phase → opens PR → self-review comment → polls `gh pr checks` every 10min → on red, auto-fix max 3 attempts then escalate. **Phases:** 4a evaluation engine · 4b worker spawning + threads · 4c PR + CI loop · 4d feedback loop on PR comments · 4e scheduled evaluation. ## Key decisions (divergence from earlier plan v3) 1. **wiki-ingest** moved from Hermes cron → launchd `claude -p` subprocess. Filesystem I/O requires local process; Hermes API agents have no filesystem. 2. **personal-wiki MCP** dropped, replaced with stock `obsidian-mcp` against `~/obsidian/`. The DB-backed wiki was never built; vault is the source of truth now. 3. **Single heartbeat watchdog** instead of per-job launchd plists — simpler, covers wake-from-sleep for all one-per-day jobs. 4. **Retrospector** extracted to standalone `retrospector.md` + own cron + `#retrospector` channel, separating "what moved" (review) from "what's the pattern" (retro). 5. **NAS git path** moved to `/mnt/RED_2TB/storage/git/` — `/home/` lives on TrueNAS boot pool which is wiped on OS updates. 6. **Phase 2-family deferred** until after Phase 4 — Executor v2 has higher leverage than family infra. 7. **Executor v1 manual-only** with explicit STOP gates — first autonomous code-changing agent stays conservative. 8. **wiki-ingest prompt** rewritten DB-first → file-based with SHA256 frontmatter `content_hash`. See [[wiki-ingest-process]]. ## Open questions before Executor v2 starts (all resolved) - Repo: `~/DuckDuckGo/apple-browsers.git/` bare repo, sibling worktrees, main at `main/` - Worktree path: `.claude/worktrees/executor-{gid}-{slug}/` - Xcode scheme: `DuckDuckGo macOS`, `.xcworkspace` required, xcbeautify required - PR template: `pull-request.mdc` strict gates overridden by Executor v2 (task known, reviewer=@me, description auto-generated) - Cleanup: `git worktree remove --force` + `git push --delete` + stop/delete VM - UI test VM: ddg-vm MCP at `~/Developer/virfield/server/mcp-server.ts`, VirtualBuddy at `~/Documents/VirtualBuddy/` ## Tech debt - Morning brief never smoke-tested (first real run = next 08:30) — Medium - `work/projects/` empty (Eagle fills on first relevant conversation) — Low - `executor-bug-fix.md` v1 still manual-only — replaced by v2 architecture above — Medium - wiki-ingest `claude -p` runs without `--allowedTools` — Low - **NAS SSH key in boot-pool `/home/`** — High; `authorized_keys` will be wiped on TrueNAS update; move under `/mnt/RED_2TB/` - Hermes memory `~/.hermes/memory/` not backed up — Low ## Deferred — Phase 2-family VPS (Ubuntu 24.04 $5/mo) `family_db` postgres + family Hermes instance + iCloud vault sync (`~/Library/Mobile Documents/iCloud~md~obsidian/`) for wife's iPhone Obsidian + NAS hourly rsync. Resumes after Phase 4. ## Related [[personal-os-catchup-plan-2026-04-27]] [[personal-os-architecture]] [[personal-os-schema]] [[personal-os-sync-pipeline]] [[personal-os-agent-rules]] [[personal-os-self-modification]] [[personal-os-purpose]] [[wiki-ingest-process]] [[ddg-asana-workflow]] [[vault-filling-guide]]