[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
This commit is contained in:
@@ -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.
|
||||||
-124
@@ -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/<filename>
|
|
||||||
content_hash: <sha256>
|
|
||||||
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
|
|
||||||
```
|
|
||||||
@@ -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]]
|
|
||||||
@@ -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 <AppID> vcrun2019 d3dcompiler_47
|
|
||||||
```
|
|
||||||
|
|
||||||
### XNA 4.0 games (Duck Game, etc.)
|
|
||||||
```
|
|
||||||
protontricks <AppID> 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/<AppID>/pfx/`
|
|
||||||
- **protontricks**: Flatpak, needs xvfb + flatpak filesystem permission to
|
|
||||||
`~/.local/share/Steam`
|
|
||||||
- **Background protontricks** (survives SSH disconnect):
|
|
||||||
`systemd-run --user --unit=<name> 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]]
|
|
||||||
@@ -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
|
|
||||||
-31
@@ -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
|
|
||||||
@@ -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
|
# obsidian-mcp-wrapper
|
||||||
|
|
||||||
> **Файл**: `~/scripts/obsidian-mcp-wrapper.js`
|
> **Файл**: `~/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
|
**2026-05-09 (2)** — фикс large payload: Buffer-based line splitting вместо string split
|
||||||
(`edit_note` с большим контентом молча дропался). Добавлен per-call watchdog (5s timeout → kill & retry).
|
(`edit_note` с большим контентом молча дропался). Добавлен per-call watchdog (5s timeout → kill & retry).
|
||||||
MAX_RETRY повышен с 5 до 10.
|
MAX_RETRY повышен с 5 до 10.
|
||||||
|
|
||||||
## See Also
|
|
||||||
|
|
||||||
[[personal-os-architecture]] [[concepts/vault-agent-integration]]
|
|
||||||
|
|||||||
@@ -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:<port>`:
|
|
||||||
|
|
||||||
| 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]]
|
|
||||||
@@ -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.)
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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 <HTPC-MAC>
|
|
||||||
```
|
|
||||||
|
|
||||||
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.
|
|
||||||
@@ -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.
|
|
||||||
@@ -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)
|
|
||||||
@@ -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.
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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.
|
|
||||||
@@ -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.
|
|
||||||
Reference in New Issue
Block a user