[2026-05-22] taiga sync: .obsidian/community-plugins.json .obsidian/graph.json .obsidian/hotkeys.json .obsidian/plugins/obsidian-git/data.json .obsidian/plugins/obsidian-git/main.js

This commit is contained in:
Тайга
2026-05-22 13:00:45 +00:00
parent 4934fb8249
commit 08142fc8a5
273 changed files with 3814 additions and 12480 deletions
+16 -55
View File
@@ -1,7 +1,7 @@
---
namespace: work
tags: [system, architecture]
last_updated: 2026-05-22
last_updated: 2026-04-28
confidence: 1.0
---
@@ -9,7 +9,7 @@ confidence: 1.0
## Why It Exists
See: [[personal-os-purpose]] and [[personal-os-agent-rules]] for goals and behavioral constraints.
See: `personal-os-purpose.md`
## Agents
@@ -22,12 +22,9 @@ See: [[personal-os-purpose]] and [[personal-os-agent-rules]] for goals and behav
### Орёл / Eagle (Tactician + reactive layer) — Hermes Zulip agent
- Reads `~/context/status.md`, daily/weekly briefs, vault via obsidian MCP
- Zulip streams: `daily-brief` `inbox` `focus` `executor` `projects` `journal` `retrospector`
- Cron jobs: morning-brief (08:30 MTWRF), eod-summary (18:00 MTWRF), inbox-check (30 min 0919 MTWRF), weekly-plan (Mon 08:00), weekly-review (Fri 17:00), retrospector (Fri 17:30), commit-vault (23:00 daily), wiki-curation (02:00 daily)
- Cron jobs: generate-daily-brief (07:00 MTWRF), morning-brief (08:30 MTWRF), eod-summary (18:00 MTWRF), inbox-check (30 min 0919 MTWRF), weekly-plan (Mon 08:00), weekly-review (Fri 17:00), retrospector (Fri 17:30), executor-autonomous (every 30 min 0918 MTWRF), commit-vault (23:00 daily)
- Logs corrections to `corrections_log` table (SQL INSERT, silently on pushback)
- **Never accesses Asana API directly** — only reads pre-rendered markdown and DB
- **Zulip plugin**: `~/.hermes/plugins/zulip-topic-routing/` — intercepts `(no topic)` messages; routes to most recent related thread or renames to descriptive topic. Status: ✅ done (2026-05-14)
> ⚠️ **Mattermost migration in-progress (2026-05-14):** Work Eagle agent (briefs, inbox, executor) moving from Zulip → corporate Mattermost. Personal/family/journal remain on Zulip/Discord. Blocked on IT Ops creating MM bot accounts (eagle-bot, executor-bot, brief-bot). See `work/plans/mattermost-migration.md`.
### Ретроспектор (Retrospector) — Friday pattern analysis
- Runs as separate Hermes cron at 17:30 Friday → `#retrospector`
@@ -41,18 +38,14 @@ See: [[personal-os-purpose]] and [[personal-os-agent-rules]] for goals and behav
- Prompt: `~/Developer/personal-os/agent/prompts/executor-bug-fix.md`
**Autonomous mode**: hourly cron (0918 workdays) → #executor
> ⚠️ Stale as of 2026-05-11: Original LLM-orchestrated autonomous cron **paused**. Replaced by v2 bash daemons:
**Autonomous mode (v2 — bash daemons, active 2026-05-11+):**
- `executor-runner.sh` — cron `*/5`; processes queued/in_progress/pr states; max 2 concurrent workers; spawns focused worker prompt per state; exits when no actionable tasks remain
- `executor-analyzer.sh` — cron `*/5`; picks one unanalyzed task, runs `claude -p` analysis prompt, sets `for_review`/`awaiting_go`/`skip`, exits; restarts for next task
- Worker prompts in `~/Developer/personal-os/agent/prompts/executor-worker-*.md`
- Maintains a queue from: My Hack Days, Watched, O-L Backlog, stale My Tasks
- Analyzes tasks → posts "[Auto] Ready to start" with complexity/feasibility
- Waits for "go {gid}" to start; no reply = moves to next analysis
- Max 1 active fix at a time; handles CI/review on open draft PRs
- Stops touching a PR once Alex moves it out of draft or pushes commits
- No Asana comments; no touching other people's PRs
- Queue state in `executor_queue` table; live plan: `~/Developer/personal-os/briefs/executor-queue.md`
**Orchestrator Pattern (Planning — 2026-05-14):**
> Research phase complete. Executor will become a separate Hermes profile with its own Zulip bot identity ("Исполнитель"), spawned by Eagle as orchestrator. Eagle monitors `#executor` via 2-min cron, auto-approves safe actions (`[REQUEST:create_worktree]`, `[REQUEST:run_tests]`, etc.), escalates ambiguous/risky ones to Alex. See `personal/projects/personal-os/executor-spawning-research.md` for full protocol and auto-approval rules.
>
> Key mechanism: **Hermes Profiles** — `~/.hermes/profiles/executor/` with its own SOUL.md, Zulip bot token, and gateway. `hermes profile create executor --clone`.
- Prompt: `~/Developer/personal-os/agent/prompts/executor-autonomous.md`
**Shared**:
- Worktree at `~/DuckDuckGo/apple-browsers.git/.claude/worktrees/executor-{gid}-{slug}/`
@@ -129,33 +122,16 @@ Executor runs
## MCP Servers
**Eagle (Mac M4) — Hermes agent:**
**Hermes agents:**
| Name | Command | Used for |
|------|---------|---------||
| obsidian | `node ~/scripts/obsidian-mcp-wrapper.js` (wraps `/opt/homebrew/bin/obsidian-mcp`) | Vault search, read, write. Wrapper handles ZodError/race condition — see [[obsidian-mcp-wrapper]] |
|------|---------|---------|
| obsidian | `/opt/homebrew/bin/obsidian-mcp ~/obsidian` | Vault search, read, write |
**Taiga (TrueNAS) — Hermes agent (`hermes-taiga` container):**
**Claude Code / `claude -p` sessions:**
| Name | Command | Used for |
|------|---------|---------||
| obsidian | `/opt/data/.local/bin/mcpvault /vault` | Vault access (sparse: personal/ + family/). Tavily search enabled. |
**Kraken (RPi5) — Hermes agent (`hermes-kraken` container):**
|| Name | Command | Used for |
||------|---------|---------||
|| obsidian | `/opt/data/.local/bin/mcpvault /vault` | Vault access (sparse: personal/ + family/). Tavily search enabled. |
Skills on Kraken: `~/.hermes/skills/` (host) — **not** visible to the container at `/opt/data/skills/`. Copy skills there if needed.
Media stack on Kraken: full *arr stack (Prowlarr/Radarr/Sonarr) + Transmission + Jellyfin + media-pipeline. See [[concepts/kraken-media-stack]].
> ⚠️ **Kraken image routing (open issue, 2026-05-14):** Gemini API credits depleted → fallback to OpenRouter models (gpt-oss-120b, minimax-m2) → these lack vision → image inbox messages fail. Desired fix: add `save_to_fs` mode to Hermes `image_routing` (save image locally, pass path to agent instead of bytes). Workaround: top up Gemini API credits on Kraken. Tracked in `personal/projects/personal-os/kraken-obsidian-write-bug.md`.
> All three nodes run Hermes with obsidian/mcpvault MCP. Eagle uses obsidian-mcp-wrapper.js (fixes ZodError+race); Taiga and Kraken use mcpvault directly.
**Claude Code / `claude -p` sessions (Eagle only):**
| Name | Command | Used for |
|------|---------|---------||
|------|---------|---------|
| ddg-vm | `npx tsx ~/Developer/virfield/server/mcp-server.ts` | VM lifecycle for UI tests |
| obsidian | `node ~/scripts/obsidian-mcp-wrapper.js` | Vault access |
| obsidian | `/opt/homebrew/bin/obsidian-mcp ~/obsidian` | Vault access |
## launchd Agents
@@ -183,18 +159,3 @@ Media stack on Kraken: full *arr stack (Prowlarr/Radarr/Sonarr) + Transmission +
│ └── apple-browsers/ ← .cursor/rules copies (.md) + vm-ui-testing.md
└── personal/ family/
```
**Taiga (TrueNAS) — Media Stack (deployed 2026-05-20):**
- *arr stack: Prowlarr/Radarr/Sonarr/Jellyfin in `/mnt/RED_2TB/docker/arr/`
- HTTPS via Caddy (subdomain-based, Let's Encrypt automatic)
- vless-proxy for blocked indexers (SOCKS5)
- router.py creates symlinks staging → categorized Jellyfin libraries
- Details: [[tech/arr-stack-taiga]]
## See Also
- [[concepts/executor-orchestrator]] — Executor as separate Hermes profile: auto-approval rules, GTD orchestration
- [[concepts/executor-security-incident]] — May 2026 security incident: autonomous Asana writes
- [[user-profile]] — Alex's profile and goals
- [[concepts/kraken-media-stack]] — Kraken full media stack
- [[personal-os-agent-rules]] — Agent behavior rules