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

99 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
source: raw/personal-os-state-2026-04-27.md
content_hash: 1640cb63145b49263b9476e2c39fe443ac561fdf6c27faccc50cfc8568552614
namespace: work
last_synced: 2026-05-29
confidence: 0.8
tags: [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/`.
## Related
[[personal-os-catchup-plan-2026-04-27]] [[personal-os-schema]] [[wiki-ingest-process]]