[2026-05-29] personal os catchup plan, personal os state, wiki ingest process

This commit is contained in:
Alexey Martemyanov
2026-05-29 23:02:07 +06:00
parent 67b2292cff
commit 91b24b6ebe
3 changed files with 287 additions and 0 deletions
+98
View File
@@ -0,0 +1,98 @@
---
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]]