Files
obsidian-vault/wiki/personal-os-state-2026-04-27.md
T

5.3 KiB
Raw Blame History

source, content_hash, namespace, last_synced, confidence, tags
source content_hash namespace last_synced confidence tags
raw/personal-os-state-2026-04-27.md 1640cb63145b49263b9476e2c39fe443ac561fdf6c27faccc50cfc8568552614 work 2026-05-29 0.8
personal-os
state
architecture
hermes
executor

Personal OS — State Snapshot (2026-04-27)

Supersedes state-2026-04-27.md and personal-os-plan-v3.md. Reflects the catch-up plan executed on 2026-04-27. See personal-os-catchup-plan-2026-04-27 for the deliverables that produced this state.

What's built

Infrastructure

  • PostgreSQL on Mac — see personal-os-schema for tables.
  • sync.js — 4-source Asana fetch (my_tasks, following, delegated, project:*), incremental deltas, sweepRecentlyCompleted().
  • generate-status.js — DB → status.md + asana_context.md. possibly_deleted filter fixed; now also writes advisor + visibility + executor queue blocks, and the quadrant column on activity_daily.
  • ActivityWatch — DDG browser watcher + Xcode watcher running.
  • Hermes v0.11.x — launchd daemon ai.hermes.gateway, Claude Code OAuth, model claude-sonnet-4-6.
  • Discord bot Орёл#0898 — no @-mention needed. Channels: #daily-brief #inbox #focus #executor #projects #journal #retrospector.

Hermes cron schedule

Job Schedule Channel
data-pipeline */30 721 workdays silent
morning-brief 08:30 workdays #daily-brief
eod-summary 18:00 workdays #daily-brief
inbox-check */30 919 workdays #inbox
weekly-plan Mon 08:00 #daily-brief
weekly-review Fri 17:00 #daily-brief
retrospector Fri 17:30 #retrospector
commit-vault 23:00 daily silent

launchd agents (fire on wake)

  • personal.os.heartbeat:05 hourly. Reads jobs.json, fires any missed once-per-day Hermes jobs.
  • personal.os.wiki-ingest — 22:00 daily. claude -p subprocess writes ~/obsidian/wiki/. See wiki-ingest-process.

Scripts

  • run-pipeline.sh, run-wiki-ingest.sh, commit-vault.sh, hermes-heartbeat.sh.

Vault layout (~/obsidian/)

  • wiki/ — mix of LLM-generated and confidence: 1.0 human notes.
  • raw/ — symlinks to source files for ingest.
  • work/, personal/ — Eagle write-allowed; family/ exists.
  • Git remote on ZFS data pool: ssh://truenas_admin@mallexxx.duckdns.org/mnt/RED_2TB/storage/git/obsidian-vault.git.

Agent prompts (~/Developer/personal-os/agent/prompts/)

daily-brief.md, weekly-plan.md, weekly-review.md, inbox-triage.md, generate-status.md, wiki-ingest.md, executor-bug-fix.md, executor-td-review.md.

Retrospector (Phase 3 — live)

Friday-only. Surfaces: correction patterns (3+ times), velocity vs scope, vault git activity, exactly one decision question.

What's not done

Item Status
Phase 2-family (VPS, family Hermes, iCloud sync) Deferred until after Phase 4
work/projects/ notes Empty — Eagle fills on first use
Executor v2 end-to-end live run Prompt written, not tested on real task
MS365 MCP in Hermes Cloud connector works in Claude Code; no local npm package

Catch-up plan 2026-04-27 items 1, 310 ; item 2 (MS365) 🟡.

Executor v2 — architecture summary

User-initiated in #executor ("fix [task]"), scheduled via Friday weekly-review, or status-driven via ## ⚡ Executor Queue. Worker spawns in a Discord thread, streams progress, opens a draft PR assigned to Alex (never tags humans), runs a CI polling loop (every 10 min, max 3 auto-fix attempts). Full state machine in executor_runs table. See personal-os-catchup-plan-2026-04-27 for design rationale.

Worktrees live at ~/DuckDuckGo/apple-browsers.git/.claude/worktrees/executor-{gid}-{slug}/. Scheme: DuckDuckGo macOS in .xcworkspace, xcbeautify required. UI tests via ddg-vm MCP (VirtualBuddy).

Decisions divergent from plan v3

  1. Wiki-ingest moved from Hermes cron → launchd subprocess (needs local FS access).
  2. personal-wiki MCP replaced with obsidian-mcp — DB tables dropped.
  3. Single personal.os.heartbeat instead of per-job launchd plists.
  4. Retrospector extracted from weekly-review → own prompt, cron, channel.
  5. NAS git path moved to /mnt/RED_2TB/storage/git/ (ZFS data pool, not boot pool).
  6. Phase 2-family deferred until after Phase 4.
  7. Executor v1 prompts manual-only with STOP gates (v2 adds autonomy).
  8. wiki-ingest rewritten file-based (SHA256 in frontmatter) — DB tables superseded.

Known issues / tech debt

  • Morning brief never smoke-tested (medium).
  • Executor v1 prompts manual-only — replace with v2 (medium).
  • wiki-ingest uses claude -p without --allowedTools (low).
  • NAS SSH key still in boot pool /home/ — must move to /mnt/RED_2TB/ before next TrueNAS update (high).
  • Hermes memory ~/.hermes/memory/ not backed up.

Key Points

  • Postgres + Hermes + launchd + Obsidian vault are the four pillars; everything extends one of those.
  • All 10 catch-up items shipped except MS365 MCP in Hermes (cloud-only).
  • Executor v2 = single STOP gate at Analysis, then autonomous draft PR + CI loop.
  • Boot-pool-vs-data-pool distinction matters: persistent data must live under /mnt/RED_2TB/.

personal-os-catchup-plan-2026-04-27 personal-os-schema wiki-ingest-process