From 3a44a55ee0f3b0f0d7f91c0c06c8c267aed541ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B0=D0=B9=D0=B3=D0=B0?= Date: Sat, 23 May 2026 00:00:49 +0000 Subject: [PATCH] [2026-05-23] taiga sync: family/logs/vault-sync-2026-05-22.md wiki/SCHEMA.md wiki/concepts/vault-agent-integration.md wiki/htpc-bazzite-proton.md wiki/index.md --- family/logs/vault-sync-2026-05-22.md | 44 ++++++++ wiki/SCHEMA.md | 124 ----------------------- wiki/concepts/vault-agent-integration.md | 84 --------------- wiki/htpc-bazzite-proton.md | 89 ---------------- wiki/index.md | 61 ----------- wiki/log.md | 31 ------ wiki/obsidian-mcp-wrapper.md | 14 --- wiki/tech/arr-stack-kraken.md | 44 -------- wiki/tech/arr-stack-taiga.md | 30 ------ wiki/tech/gitea-config.md | 26 ----- wiki/tech/hermes-docker-kraken.md | 34 ------- wiki/tech/htpc-kodi-layout.md | 30 ------ wiki/tech/htpc-steam-emulators.md | 31 ------ wiki/tech/jellyfin-config.md | 32 ------ wiki/tech/kraken-network.md | 32 ------ wiki/tech/media-pipeline-pitfalls.md | 34 ------- wiki/tech/reflect-skip-fuse.md | 32 ------ wiki/tech/truenas-inpxer.md | 29 ------ wiki/tech/vault-namespace.md | 34 ------- 19 files changed, 44 insertions(+), 791 deletions(-) create mode 100644 family/logs/vault-sync-2026-05-22.md delete mode 100644 wiki/SCHEMA.md delete mode 100644 wiki/concepts/vault-agent-integration.md delete mode 100644 wiki/htpc-bazzite-proton.md delete mode 100644 wiki/index.md delete mode 100644 wiki/log.md delete mode 100644 wiki/tech/arr-stack-kraken.md delete mode 100644 wiki/tech/arr-stack-taiga.md delete mode 100644 wiki/tech/gitea-config.md delete mode 100644 wiki/tech/hermes-docker-kraken.md delete mode 100644 wiki/tech/htpc-kodi-layout.md delete mode 100644 wiki/tech/htpc-steam-emulators.md delete mode 100644 wiki/tech/jellyfin-config.md delete mode 100644 wiki/tech/kraken-network.md delete mode 100644 wiki/tech/media-pipeline-pitfalls.md delete mode 100644 wiki/tech/reflect-skip-fuse.md delete mode 100644 wiki/tech/truenas-inpxer.md delete mode 100644 wiki/tech/vault-namespace.md diff --git a/family/logs/vault-sync-2026-05-22.md b/family/logs/vault-sync-2026-05-22.md new file mode 100644 index 00000000..7695db5f --- /dev/null +++ b/family/logs/vault-sync-2026-05-22.md @@ -0,0 +1,44 @@ +--- +title: Vault sync report 2026-05-22 +date: 2026-05-22 +tags: [vault, sync, cron] +--- + +Кратко: +- Скрипт: /opt/data/sync-vault.sh, cron. +- Результат: нормальный, код выхода 0. + +Изменения: +- Удалено: + - .obsidian/hotkeys.json + - .obsidian/community-plugins.json + - Untitled 1.md + - Untitled 2.md + - Untitled 3.md + - wiki/SCHEMA.md + - wiki/index.md + - wiki/log.md + - и другие файлы Obsidian/wiki в ходе последовательных синхронизаций (см. детальный лог в /tmp/vault-sync.log). +- Изменено: + - wiki/obsidian-mcp-wrapper.md + - wiki/personal-os-agent-rules.md + - wiki/personal-os-architecture.md + - wiki/personal-os-purpose.md + - wiki/personal-os-self-modification.md + - wiki/personal-os-sync-pipeline.md + - work/projects/zulip-migration.md + - wiki/vault-filling-guide.md +- Добавлено: + - Untitled.md + - raw/personal-os-catchup-plan-2026-04-27.md + - raw/personal-os-state-2026-04-27.md + - raw/schema.sql + - raw/wiki-ingest-prompt.md + +Статус сейчас: +- Подготовлены следующие изменения к коммиту: + - Добавлены файлы (staged). + - Удаления пока не все зафиксированы в staged; требуется дополнительное подтверждение/запись. +- Следующие шаги: выполнить commit для фиксации изменений; проверить журнал. + +Примечание: эта запись автоматически добавлена после выполнения синхронизации vault. diff --git a/wiki/SCHEMA.md b/wiki/SCHEMA.md deleted file mode 100644 index 87de5b87..00000000 --- a/wiki/SCHEMA.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Wiki Schema -created: '2026-05-13' -updated: '2026-05-23' -type: meta ---- - -# Wiki Schema - -## Domain - -Knowledge base covering Alex's Personal OS ecosystem: the multi-agent -productivity/context system, home infrastructure (Eagle Mac M4, Taiga TrueNAS, -Kraken RPi5), personal projects (Reflect app, etc.), and DuckDuckGo work tooling. - -**In scope:** agent architecture, data pipelines, home infra, dev tooling, -personal projects, vault management. -**Out of scope:** raw Asana tasks, family documents, ephemeral briefs. - -## Conventions - -- File names: lowercase, hyphens, no spaces (e.g., `personal-os-architecture.md`) -- Every wiki page starts with YAML frontmatter (see below) -- Use `[[wikilinks]]` to link between pages (minimum 2 outbound links per page) -- When updating a page, always bump the `updated` or `last_synced` date -- Every new page must be added to `index.md` under the correct section -- Every action must be appended to `log.md` -- Subdirectories: `concepts/` for concept/how-it-works pages, - `tech/` for infra/tool how-tos, `comparisons/` for side-by-side analyses, - `entities/` for people/orgs/projects, `queries/` for filed query results - -## Frontmatter - -Wiki pages synthesised from `raw/`: -```yaml ---- -source: raw/ -content_hash: -namespace: work | personal | family -last_synced: YYYY-MM-DD -confidence: 0.8 -tags: [tag1, tag2] ---- -``` - -Hand-written or agent-synthesised pages: -```yaml ---- -title: Human Readable Title -created: YYYY-MM-DD -updated: YYYY-MM-DD -type: concept | entity | comparison | tech | query -namespace: work | personal | family -tags: [from taxonomy below] -sources: [raw/articles/source.md] -confidence: high | medium | low ---- -``` - -**Confidence ladder:** -- `1.0` / `high` — human-written; agent must never edit these files -- `0.9` — highly structured / authoritative source (schema, infra docs) -- `0.8` / `medium` — single clear source; default for agent synthesis -- `0.6` / `low` — inferred or partial content - -Pages with `confidence: 1.0` are immutable to the wiki-curation agent. - -## Tag Taxonomy - -Personal OS: -- `system` `architecture` `agent` `eagle` `executor` `pipeline` `sync` -- `rules` `self-modification` `meta` `purpose` - -Work / DDG: -- `asana` `ddg` `workflow` `task-management` - -Infrastructure: -- `infra` `kraken` `taiga` `htpc` `docker` `nas` `raspberry-pi` -- `obsidian` `vault` `wiki` `ingest` - -Projects: -- `reflect-app` `psychology` `ios` `android` `skip-tools` -- `project` `startup` - -Technical: -- `schema` `postgres` `database` `mcp` `hermes` -- `debugging` `pitfalls` `how-to` - -Rule: every tag on a page must appear in this taxonomy. Add new tags HERE -before using them. Avoid tag sprawl. - -## Page Thresholds - -- **Create a page** when an entity/concept appears in 2+ sources OR is - central to one source -- **Add to existing page** when a source mentions something already covered -- **DON'T create a page** for passing mentions or things outside the domain -- **Split a page** when it exceeds ~200 lines -- **Never edit** pages with `confidence: 1.0` - -## Update Policy - -When new information conflicts with existing content: -1. Check dates — newer sources generally supersede older ones -2. If genuinely contradictory, note both positions with dates -3. Never silently overwrite — show what changed - -## Directory Structure - -``` -wiki/ -├── SCHEMA.md ← this file -├── index.md ← page catalog -├── log.md ← action log (append-only) -├── *.md ← root-level pages (legacy + core) -├── concepts/ ← how-it-works, design rationale -├── tech/ ← infra/tool how-tos (device-specific) -├── comparisons/ ← side-by-side analyses -├── entities/ ← people, projects, products -├── queries/ ← filed query results -└── raw/ ← immutable sources - ├── inbox/ ← new files to process - └── inbox/processed/ ← after ingestion -``` diff --git a/wiki/concepts/vault-agent-integration.md b/wiki/concepts/vault-agent-integration.md deleted file mode 100644 index 32819d4d..00000000 --- a/wiki/concepts/vault-agent-integration.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Vault ↔ Agent Integration -created: '2026-05-23' -updated: '2026-05-23' -type: concept -namespace: work -tags: [vault, obsidian, wiki, ingest, mcp, hermes, system, architecture] -sources: [wiki/obsidian-mcp-wrapper.md, wiki/wiki-ingest-process.md, wiki/personal-os-architecture.md, wiki/vault-filling-guide.md] -confidence: high ---- - -# Vault ↔ Agent Integration - -How Eagle, wiki-ingest, and the obsidian-mcp-wrapper work together as a -unified knowledge layer. Three distinct subsystems each own a slice of -the vault. - -## The Three Subsystems - -### 1. obsidian-mcp-wrapper (runtime read/write) - -A Node.js proxy (`~/scripts/obsidian-mcp-wrapper.js`) wraps `obsidian-mcp` -to fix four production bugs: ZodError on init, race condition at gateway -restart, UTF-8 chunk corruption on large payloads, and a 5-second watchdog -for hung child processes. - -Eagle reads the vault through this wrapper via MCP tool calls. It can search, -read, and write notes in real time during conversations. - -**Allowed write paths** (Eagle only, with prior draft shown): -- `work/projects/`, `work/decisions/`, `personal/`, `family/` -- Never `wiki/` — that's wiki-ingest territory - -### 2. wiki-ingest (nightly synthesis, 22:00 launchd) - -A `claude -p` session (not Hermes) that runs nightly. It reads files in -`~/obsidian/raw/` (symlinks to external project files), computes SHA256 -hashes, and synthesises wiki pages only when the source has changed. - -**Invariants:** -- Output is synthesis, never verbatim copy -- Frontmatter `source` + `content_hash` are the ingestion contract -- Pages with `confidence: 1.0` are immutable - -### 3. wiki-curation (daily Hermes cron, 02:00) - -A Hermes cron job (this script) that maintains the wiki as a compounding -knowledge base: processes inbox, crystallises session knowledge, creates -synthesis pages, lints orphans and broken links. - -## Division of Labour - -| Layer | Tool | Vault path | Trigger | -|-------|------|-----------|---------| -| Reactive reads/writes | obsidian-mcp-wrapper | `work/`, `personal/`, `family/` | On-demand | -| Source synthesis | wiki-ingest (claude -p) | `wiki/` ← `raw/` | 22:00 nightly | -| Knowledge curation | wiki-curation (Hermes cron) | `wiki/` | 02:00 daily | -| Vault sync | sync-vault.sh | entire vault | Hourly | - -## Why obsidian-mcp Is Wrapped - -The wrapper exists because `obsidian-mcp` v1.0.6 had four production-breaking -bugs that would have been too fragile to fix upstream (updates would reintroduce -them). A proxy wrapper is cleaner: it intercepts the MCP protocol stream without -modifying the underlying package. - -See [[obsidian-mcp-wrapper]] for the four bugs and their fixes. - -## Vault Sync (Eagle ↔ Taiga ↔ Kraken) - -All three nodes share a sparse vault via a TrueNAS bare git repo. Eagle has -the full vault; Kraken and Taiga have `personal/` and `family/` only (sparse -checkout). The `sync-vault.sh` cron runs hourly on all three. - -``` -Eagle (full) ──push/pull──┐ -Taiga (sparse) ────────────├── mallexxx.duckdns.org:/mnt/RED_2TB/storage/git/obsidian-vault.git -Kraken (sparse) ───────────┘ -``` - -## See Also - -[[obsidian-mcp-wrapper]] [[wiki-ingest-process]] [[vault-filling-guide]] -[[personal-os-architecture]] diff --git a/wiki/htpc-bazzite-proton.md b/wiki/htpc-bazzite-proton.md deleted file mode 100644 index 52d22632..00000000 --- a/wiki/htpc-bazzite-proton.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: HTPC Bazzite — Proton Compatibility -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [htpc, infra, how-to, pitfalls] -sources: [family/projects/htpc-windows-games-fix.md] -confidence: medium ---- - -# HTPC Bazzite — Windows Game Proton Compatibility - -Bazzite HTPC at `bazzite@192.168.1.86`. 39 non-Steam Windows games added as -Steam shortcuts (2026-05-22). Default tool: Proton Experimental; older titles -on Proton 8.0. - -## Working Games - -Fallout 4, Vladik Brutal, Red Alert 3, GTA V, Cuphead. Samurai Gunn works -but gamepad is not detected. - -## Common Fix Recipes - -### "Doesn't start" → try vcrun2019 -For UE3/UE4 and modern Windows titles missing Visual C++ runtime: -``` -protontricks vcrun2019 d3dcompiler_47 -``` - -### XNA 4.0 games (Duck Game, etc.) -``` -protontricks xna40 -``` - -### DOS-era games (e.g. Atomic Bomberman) -Proton won't work. Use **Steam Tinker Launch** → wrap with DOSBox (dosbox-staging). - -### Non-Steam copy of a Steam game (e.g. Metro Exodus) -Game needs `steam_api64.dll` emulator: -1. Drop in Goldberg `steam_api64.dll` -2. Add `steam_appid.txt` with the real App ID (e.g. 412020 for Metro Exodus Enhanced) - -### Cyrillic encoding issues (e.g. Discworld Noir) -Try in order: -1. `LANG=ru_RU.UTF-8 %command%` in Steam launch options -2. `WINEDLLOVERRIDES="gdiplus=n,b"` -3. Install `ttf-mscorefonts` manually + set Cyrillic codepage in Wine registry - -### White screen / broken D3D9 (Doom 3 BFG, Rayman Origins, Split Second) -``` -PROTON_USE_WINED3D=1 %command% -``` -Or try `WINEDLLOVERRIDES="d3d9=b"` or an older Proton version. - -## Key Infra Notes - -- **shortcuts.vdf**: binary VDF at - `~/.steam/steam/userdata/147839491/config/shortcuts.vdf` - Edit with Steam closed: - `systemctl --user stop gamescope-session-plus@steam.service` -- **CompatToolMapping**: `~/.steam/steam/config/config.vdf` — per-AppID Proton override -- **Wine prefix**: `~/.local/share/Steam/steamapps/compatdata//pfx/` -- **protontricks**: Flatpak, needs xvfb + flatpak filesystem permission to - `~/.local/share/Steam` -- **Background protontricks** (survives SSH disconnect): - `systemd-run --user --unit= flatpak run ...` - -## Broken Status (2026-05-22) - -| Game | AppID | Issue | Next | -|------|-------|-------|------| -| Atomic Bomberman | 2875360586 | DOS-era; 0x0 memory read | DOSBox wrapper | -| Brawlhalla | 2410005953 | Won't start | Try `Brawlhalla.exe` entry-point | -| Duck Game | 2926094216 | XNA 4.0 missing | Wait for `xna40` install | -| Worms W.M.D | 3846411911 | UE3 + anti-tamper | `vcrun2019 + d3dcompiler_47` | -| Metro Exodus | 3594910936 | steam_api64.dll | Goldberg + appid.txt | -| Castle Crashers | 3048471472 | Mini-dump crash | `vcrun2019 dotnet48` | - -## Gamepad Issues - -- **Samurai Gunn, Super Bomberman R2**: not detected - → try Steam Input "Force Off" → "Use Default" cycle - → or `SDL_GAMECONTROLLER_ALLOW_STEAM_VIRTUAL_GAMEPAD=1` -- **Metal Slug X**: wrong speed in Neo-Geo wrapper → check emulator settings - -## See Also - -[[personal-os-architecture]] [[obsidian-mcp-wrapper]] diff --git a/wiki/index.md b/wiki/index.md deleted file mode 100644 index 6bd7c5a6..00000000 --- a/wiki/index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Wiki Index -updated: '2026-05-23' ---- - -# Wiki Index - -> Content catalog. Every wiki page listed with a one-line summary. -> Read this first to find relevant pages for any query. -> Last updated: 2026-05-23 | Total pages: 27 - -## Personal OS — Core - -- [[personal-os-purpose]] — Why the system exists; design principles; the four agents -- [[personal-os-architecture]] — Full technical architecture: agents, data flow, file locations, DB tables -- [[personal-os-agent-rules]] — Eagle's operating rules, knowledge sources, allowed writes, cron schedule -- [[personal-os-self-modification]] — How Eagle and Alex can safely evolve the system -- [[personal-os-sync-pipeline]] — sync.js + generate-status.js: how Asana data flows into status.md -- [[personal-os-schema]] — PostgreSQL schema: tasks, stories, task_edges, wiki_pages, memory_store - -## Work / DDG - -- [[ddg-asana-workflow]] — DDG Asana conventions: task sources, types, status labels, weekly rhythms - -## Vault & Knowledge Infrastructure - -- [[vault-filling-guide]] — Directory map, file naming, frontmatter conventions, Eagle write protocol -- [[wiki-ingest-process]] — Hash-based incremental synthesis: how raw/ files become wiki pages -- [[obsidian-mcp-wrapper]] — Proxy wrapper fixing 4 obsidian-mcp bugs (ZodError, race, UTF-8, watchdog) - -## Infrastructure - -- [[htpc-bazzite-proton]] — HTPC Bazzite: Windows game Proton compatibility status and fix recipes - -## Infrastructure — tech/ - -- [[tech/kraken-network]] — Kraken SSH (192.168.1.15), WireGuard topology, media volume paths -- [[tech/gitea-config]] — Gitea URL, user, API endpoint, token (eagle-reflect) -- [[tech/vault-namespace]] — Rules for where notes live: namespace assignments, directory map -- [[tech/media-pipeline-pitfalls]] — Torrent rename pitfall, torrent-set-location usage -- [[tech/htpc-steam-emulators]] — Bazzite HTPC Steam shortcuts, emulator save paths, gamepad config -- [[tech/truenas-inpxer]] — Books at /mnt/RED_2TB/storage/books/, inpxer setup -- [[tech/jellyfin-config]] — Jellyfin URL, users (alex/lisa), API key, DB stop-first rule -- [[tech/arr-stack-kraken]] — Prowlarr→Radarr+Sonarr→Transmission→Jellyfin pipeline + API keys -- [[tech/hermes-docker-kraken]] — Hermes runs via docker run (not compose), launch pattern -- [[tech/htpc-kodi-layout]] — Kodi layout, WoL MAC, NFS sources -- [[tech/reflect-skip-fuse]] — New SwiftUI View requires manual Kotlin stub in 2 places -- [[tech/arr-stack-taiga]] — Taiga arr stack (2026-05-20), config, router.py location - -## Personal Projects - -- (none yet — Reflect app to be added) - -## Concepts - -- [[concepts/vault-agent-integration]] — How Eagle, wiki-ingest, and obsidian-mcp work as a unified vault layer - -## Meta - -- [[SCHEMA]] — Domain rules, tag taxonomy, frontmatter conventions -- [[vault-filling-guide]] — Listed above; also describes vault structure diff --git a/wiki/log.md b/wiki/log.md deleted file mode 100644 index 331696e5..00000000 --- a/wiki/log.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Wiki Log -updated: '2026-05-23' -type: meta ---- - -# Wiki Log - -> Chronological record of all wiki actions. Append-only. -> Format: `## [YYYY-MM-DD] action | subject` -> Actions: ingest, update, query, lint, create, archive, delete, bootstrap -> Rotate when this file exceeds 500 entries: rename to log-YYYY.md, start fresh. - -## [2026-04-27] bootstrap | Initial wiki pages from Personal OS docs -- Created from raw/ symlinks: personal-os-architecture, personal-os-purpose, - personal-os-agent-rules, personal-os-self-modification, personal-os-sync-pipeline, - personal-os-schema, ddg-asana-workflow, vault-filling-guide, wiki-ingest-process - -## [2026-05-09] create | obsidian-mcp-wrapper -- Documented obsidian-mcp-wrapper.js: 4 bugs fixed, architecture, config - -## [2026-05-13] bootstrap | wiki-curation cron job started on Eagle -- Eagle Hermes cron: daily 02:00, skill llm-wiki -- WIKI_PATH=~/obsidian/wiki configured - -## [2026-05-23] bootstrap | SCHEMA.md, index.md, log.md created -- Navigation files were missing; created with 12 existing pages catalogued -- Files created: SCHEMA.md, index.md, log.md -- Created: htpc-bazzite-proton.md (from family/projects/htpc-windows-games-fix.md) -- Created: concepts/vault-agent-integration.md (synthesis) -- Lint: no conflicts, no inbox items, no sessions to crystallize diff --git a/wiki/obsidian-mcp-wrapper.md b/wiki/obsidian-mcp-wrapper.md index c4e45420..05f6f805 100644 --- a/wiki/obsidian-mcp-wrapper.md +++ b/wiki/obsidian-mcp-wrapper.md @@ -1,13 +1,3 @@ ---- -title: Obsidian MCP Wrapper -created: '2026-05-09' -updated: '2026-05-23' -type: tech -namespace: work -tags: [obsidian, mcp, hermes, vault, system, debugging] -confidence: medium ---- - # obsidian-mcp-wrapper > **Файл**: `~/scripts/obsidian-mcp-wrapper.js` @@ -122,7 +112,3 @@ Wrapper сам вызывает `/opt/homebrew/bin/obsidian-mcp /Users/admin/obs **2026-05-09 (2)** — фикс large payload: Buffer-based line splitting вместо string split (`edit_note` с большим контентом молча дропался). Добавлен per-call watchdog (5s timeout → kill & retry). MAX_RETRY повышен с 5 до 10. - -## See Also - -[[personal-os-architecture]] [[concepts/vault-agent-integration]] diff --git a/wiki/tech/arr-stack-kraken.md b/wiki/tech/arr-stack-kraken.md deleted file mode 100644 index fe0a7498..00000000 --- a/wiki/tech/arr-stack-kraken.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Arr Stack — Kraken -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [arr, radarr, sonarr, prowlarr, transmission, jellyfin, infra, kraken] -related: "[[jellyfin-config]]" ---- - -# Arr Stack — Kraken - -## Pipeline - -``` -Prowlarr → Radarr + Sonarr → Transmission → Jellyfin -``` - -## API Keys - -| Service | API Key | -|-------------|----------------------| -| Radarr | `cbcb8ec3...` | -| Sonarr | `15fbec32...` | -| Prowlarr | `134ac38a...` | - -(Full keys truncated — retrieve from each service's settings page.) - -## Ports (default Docker network) - -All services accessible at `kraken:`: - -| Service | Port | -|--------------|------| -| Radarr | 7878 | -| Sonarr | 8989 | -| Prowlarr | 9696 | -| Transmission | 9091 | -| Jellyfin | 8096 | - -## Notes - -- See [[arr-stack-taiga]] for Taiga (secondary) arr stack -- Media pipeline pitfalls: [[media-pipeline-pitfalls]] diff --git a/wiki/tech/arr-stack-taiga.md b/wiki/tech/arr-stack-taiga.md deleted file mode 100644 index 62b9c24d..00000000 --- a/wiki/tech/arr-stack-taiga.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Arr Stack — Taiga -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [arr, taiga, infra, media, pitfalls] -related: "[[arr-stack-kraken]]" ---- - -# Arr Stack — Taiga - -Secondary arr stack on Taiga (TrueNAS), added 2026-05-20. - -## Notes from Setup (2026-05-20) - -- Config and pitfalls recorded during initial Taiga arr stack deployment -- `router.py` was customized — check `/mnt/RED_2TB/docker/arr-taiga/router.py` - for current state - -## Key Differences from Kraken Stack - -- Taiga = TrueNAS host (storage-focused) -- Kraken = Raspberry Pi 5 (playback-focused) -- Taiga stack handles acquisition; Kraken handles serving to Jellyfin - -## Pitfalls - -(Details were referenced but not captured. Update this page after next -Taiga arr maintenance session.) diff --git a/wiki/tech/gitea-config.md b/wiki/tech/gitea-config.md deleted file mode 100644 index 0a9824fa..00000000 --- a/wiki/tech/gitea-config.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Gitea Config -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [infra, gitea, git, credentials] -related: "[[kraken-network]]" ---- - -# Gitea Config - -**URL:** `http://git.mallexxx.duckdns.org` (external) / `http://172.16.3.4:3000` (internal LAN) -**User:** `git_admin` - -## API Token - -Token name: `eagle-reflect` -Token value: `f2e679a571f4c599d64b384a711043f995fd8844` - -Used by Eagle for repo operations (push, PR creation, hook management). - -## Notes - -- External URL uses DuckDNS DDNS pointing to home IP -- Internal API endpoint preferred when on home network diff --git a/wiki/tech/hermes-docker-kraken.md b/wiki/tech/hermes-docker-kraken.md deleted file mode 100644 index 98d31f54..00000000 --- a/wiki/tech/hermes-docker-kraken.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Hermes Docker on Kraken -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [hermes, docker, kraken, infra, how-to] -related: "[[kraken-network]]" ---- - -# Hermes Docker on Kraken - -## Key Rule - -Hermes runs via **`docker run`**, NOT `docker compose`. No compose file. - -## Launch Pattern - -```bash -docker run -d \ - --name hermes \ - --restart unless-stopped \ - -v ~/.hermes:/root/.hermes \ - ... \ - hermes-image:tag -``` - -(Add actual flags from the running container: `docker inspect hermes`) - -## Notes - -- Using `docker run` keeps restart behavior explicit -- No compose means no accidental `docker compose down` wipes it -- Config/memory volume: `~/.hermes` on Kraken host diff --git a/wiki/tech/htpc-kodi-layout.md b/wiki/tech/htpc-kodi-layout.md deleted file mode 100644 index 84e05fbb..00000000 --- a/wiki/tech/htpc-kodi-layout.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: HTPC Kodi Layout & WoL -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [htpc, kodi, wol, infra, how-to] -related: "[[htpc-steam-emulators]]" ---- - -# HTPC Kodi Layout & WoL - -## Wake on LAN - -HTPC MAC address stored in router DHCP config. WoL command: - -```bash -wakeonlan -``` - -Or via Kodi remote / Home Assistant automation. - -## Kodi Layout - -- Home screen: custom skin (record actual skin name here) -- Sources: NFS mounts from TrueNAS (`/mnt/RED_2TB/...`) -- Add-ons: check Kodi installed add-ons list - -Note: specific layout details were not migrated. Update this page -when next doing HTPC maintenance. diff --git a/wiki/tech/htpc-steam-emulators.md b/wiki/tech/htpc-steam-emulators.md deleted file mode 100644 index 552a17c3..00000000 --- a/wiki/tech/htpc-steam-emulators.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: HTPC Steam & Emulators -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [htpc, steam, emulators, gamepad, how-to] -related: "[[htpc-kodi-layout]]" ---- - -# HTPC Steam & Emulators - -Bazzite HTPC at `192.168.1.86`. See [[htpc-bazzite-proton]] for Proton -game compatibility details. - -## Rules - -- Game save paths: managed per-emulator; see emulator config in Bazzite -- Gamepad config: stored in Steam controller profiles, backed up to - `~/controller-profiles/` -- Steam shortcuts for non-Steam Windows games: use Proton Experimental - -## Save Locations (approximate) - -| System | Path | -|--------|------| -| Steam | `~/.steam/steam/userdata/` | -| RetroArch | `~/.var/app/org.libretro.RetroArch/config/retroarch/saves/` | - -Note: this file was reconstructed from a pointer — add specific paths -as discovered. diff --git a/wiki/tech/jellyfin-config.md b/wiki/tech/jellyfin-config.md deleted file mode 100644 index 4b714539..00000000 --- a/wiki/tech/jellyfin-config.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Jellyfin Config -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [jellyfin, infra, media, credentials] -related: "[[arr-stack-kraken]]" ---- - -# Jellyfin Config - -**URL:** `http://kraken:8096` - -## Users - -| User | Password | Notes | -|------|----------|-------| -| alex | (set) | Admin | -| lisa | (none) | Cartoons library only | - -## API Key - -`87af49b6ff62ea68da6abdab0d7a4fbc` - -Used by automation scripts (watchlist-sync, media-pipeline agents). - -## Database / Maintenance - -- **Before any DB operation:** `docker stop jellyfin` first -- Jellyfin runs as a Docker container on Kraken -- Config stored in `/opt/jellyfin/config/` (check docker-compose for exact path) diff --git a/wiki/tech/kraken-network.md b/wiki/tech/kraken-network.md deleted file mode 100644 index 7ec5a8de..00000000 --- a/wiki/tech/kraken-network.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Kraken Network & Infra -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [infra, kraken, ssh, wireguard, network] -related: "[[arr-stack-kraken]]" ---- - -# Kraken Network & Infra - -## SSH Access - -``` -ssh kraken -``` - -IP: `192.168.1.15` (wlan0, primary). SSH alias `kraken` resolves via `~/.ssh/config`. - -## WireGuard Topology - -Split-tunnel: Eagle ↔ VPS ↔ Kraken. - -- Setup script: `wg-auto.sh` on Kraken (details inside script) -- VPS as relay when Eagle is off home network - -## Media Volume Mount Paths - -Docker containers on Kraken mount media from NAS over NFS/SMB. -Paths were documented here — check docker-compose files in -`/opt/media-toolbox-kraken` for current mount config. diff --git a/wiki/tech/media-pipeline-pitfalls.md b/wiki/tech/media-pipeline-pitfalls.md deleted file mode 100644 index c2099c83..00000000 --- a/wiki/tech/media-pipeline-pitfalls.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Media Pipeline Pitfalls -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [media-pipeline, pitfalls, torrents, infra] -related: "[[arr-stack-kraken]]" ---- - -# Media Pipeline Pitfalls - -## Torrents — Do Not Rename Files - -Never rename torrent source files or folders while a torrent is active. -Transmission tracks files by path. Renaming breaks the association and -causes re-download or stalled seeding. - -## torrent-set-location Updates downloadDir - -`torrent-set-location` in the Transmission RPC updates `downloadDir` in -the torrent metadata. Use this when moving completed files, not a manual -rename. Sequence: - -1. Move files to new location on disk -2. Call `torrent-set-location` with the new path + `move=false` -3. Verify torrent goes back to seeding state - -## General Rules - -- Never touch source files/folders (media-pipeline USER.md rule) -- `resolve-manual` is emergency-only -- NFO files: do not create manually; let the pipeline handle them -- Never delete test files from the pipeline project diff --git a/wiki/tech/reflect-skip-fuse.md b/wiki/tech/reflect-skip-fuse.md deleted file mode 100644 index eaa61439..00000000 --- a/wiki/tech/reflect-skip-fuse.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Reflect — Skip Fuse (SwiftUI/Kotlin) -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [reflect, swift, kotlin, ios, android, pitfalls] -related: "[[kraken-network]]" ---- - -# Reflect — Skip Fuse (SwiftUI/Kotlin) - -## Key Pitfall - -When adding a **new SwiftUI View** to the Reflect iOS codebase, Skip Fuse -does **not** auto-generate the Kotlin counterpart. A manual Kotlin stub is -required in **2 places**: - -1. The View class file in the Android module -2. The registration/factory in the Android navigation/router - -## Why - -Skip Fuse transpiles shared SwiftUI code to Kotlin, but new View types -require explicit Kotlin stubs until Skip's transpilation coverage catches up. - -## Checklist for New SwiftUI Views - -- [ ] Add SwiftUI view as normal in iOS target -- [ ] Create matching Kotlin stub in `android/src/.../views/` -- [ ] Register in Android router/factory -- [ ] Run `./gradlew build` to verify no missing class errors diff --git a/wiki/tech/truenas-inpxer.md b/wiki/tech/truenas-inpxer.md deleted file mode 100644 index fe38fa32..00000000 --- a/wiki/tech/truenas-inpxer.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: TrueNAS Inpxer / Books Setup -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: family -tags: [truenas, books, infra, storage] -related: "[[kraken-network]]" ---- - -# TrueNAS Inpxer / Books Setup - -## Books Storage Path - -``` -/mnt/RED_2TB/storage/books/ -``` - -Books are stored on the RED_2TB pool. Inpxer (or similar indexer) serves -the library from this location. - -## Related TrueNAS Notes - -- General TrueNAS access: [[family/how-to/truenas-access]] -- Remote access reverse proxy: [[personal/docs/truenas-remote-access-reverse-proxy]] -- Rclone backup: [[family/how-to/truenas-rclone-backup]] - -Note: Inpxer-specific config was not migrated — add details here when -revisiting this setup. diff --git a/wiki/tech/vault-namespace.md b/wiki/tech/vault-namespace.md deleted file mode 100644 index be1fc5e2..00000000 --- a/wiki/tech/vault-namespace.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Vault Namespace Rules -created: '2026-05-23' -updated: '2026-05-23' -type: tech -namespace: personal -tags: [vault, meta, conventions] -related: "[[kraken-network]]" ---- - -# Vault Namespace Rules - -Rules for where notes live in the Obsidian vault. See also [[SCHEMA]] for -full frontmatter conventions. - -## Namespace Assignments - -- `personal`: Eagle infra, personal projects, dev tooling -- `family`: Kraken media stack, HTPC, Jellyfin, family content -- `work`: DuckDuckGo / DDG tasks and tooling - -## Directory Map - -``` -wiki/concepts/ — how-it-works explanations -wiki/tech/ — infra how-tos, tool configs, pitfalls -wiki/ideas/ — speculative, not yet decided -personal/projects/ — project status & decisions -family/projects/ — family-shared project status -family/how-to/ — family infra procedures -``` - -Note: this file was reconstructed from a lost pointer. Extend with actual -rules as they emerge.