[2026-05-25] wiki curation, multi-agent patterns, psychologist app, xgimi setup, arr-stack updates

This commit is contained in:
Alexey Martemyanov
2026-05-25 03:01:57 +06:00
parent 66997d45c5
commit e12d46483c
10 changed files with 443 additions and 10 deletions
@@ -0,0 +1,74 @@
---
date: 2026-05-25
status: complete
---
# Wiki Curation — 2026-05-25
## Done
- **Conflict scan:** No git conflict markers found in ~/obsidian/ ✅
- **Previous run (2026-05-24):** Status = complete, no Unfinished section ✅
- **Orientation:** SCHEMA.md (updated to add vps/media-pipeline/arr tags), index.md (43 pages), log.md (48 lines)
- **Vault changes since 2026-05-24 02:00:** psychologist-app/* (6 planning files updated), xgimi-play6-setup.md (new), vps-qentra.md (new wiki page, missing from index), media-pipeline-file-routing.md (planning doc — too operational to crystallize), app-ideas-enriched/* (4 enriched idea files — speculative, not crystallizable)
- **Inbox:** ~/obsidian/wiki/raw/inbox/ empty ✅
- **Sessions:** No Hermes sessions for 2026-05-25 ✅
### Crystallization
- **tech/xgimi-play6-setup.md** (new) — XGIMI Play 6 GMUI 6 complete setup guide; ADB-over-network, launcher swap, keyboard, rollback. Source: family/how-to/xgimi-play6-setup.md
- **entities/psychologist-app.md** (new) — AI Psychologist App (Nolvu): dual-agent architecture (Analyst+Narrator), session flow, state persistence, privacy-first analytics (PostHog, GDPR split identity), resonance questionnaire onboarding. Sources: 3 planning files.
- **media-pipeline-file-routing.md** — skipped (status: planning, implementation not complete; no finalized facts to preserve)
### Synthesis (MANDATORY)
- **concepts/multi-agent-design-patterns.md** (new) — Co-occurrence: executor-orchestrator + autonomous-agent-safety + agent-memory-architecture (3 pages). Synthesizes 5 reusable patterns: orchestrator/worker split, scope boundary + auto-approve table, memory layer separation, role specialization, deterministic algorithm for predictable steps. Novel: connects psychologist-app dual-agent design to existing personal-os patterns.
### Frontmatter fixes
- **tech/vps-qentra.md** — type:infra→tech, tags [vps,nginx,cloudflare,python]→[infra,vps], related: inline string→YAML list, added created/updated/namespace/confidence
- **tech/arr-stack-kraken.md** — related: inline wikilink string → YAML list (2 items)
- **tech/arr-stack-taiga.md** — related: inline wikilink string → YAML list
### SCHEMA.md update
Added `vps`, `media-pipeline`, `arr` to Infrastructure taxonomy (all were in active use but missing from taxonomy)
### Index update
Added 4 pages to index.md (vps-qentra, xgimi-play6-setup, psychologist-app, multi-agent-design-patterns); count updated 43→47
### Personal-OS Architecture check
personal-os-architecture.md has `confidence: 1.0` — immutable per SCHEMA rules. Current state (Eagle Mac M4, Taiga TrueNAS, Kraken RPi5, all with Hermes) is consistent with what's described. No agent update possible; Alex must update if changes needed.
### Lint
- 0 git conflicts
- 0 broken wikilinks in new pages (all wikilinks verified against index)
- Inline `related:` string fixed in 3 pages (arr-stack-kraken, arr-stack-taiga, vps-qentra)
- SCHEMA taxonomy now covers all tags in active use
- log.md: 65 lines — far below 500 rotation limit
## Validation fixes
- tech/xgimi-play6-setup.md — confidence: high → medium (agent-synthesized pages should not be confidence:high)
## Unresolved conflicts
(none)
## Unfinished
(none)
## Stats
- Conflicts resolved: 0
- Inbox processed: 0 (empty)
- Sessions crystallized: 0 / 0 checked
- Vault changes crystallized: 2 (xgimi-play6-setup, psychologist-app)
- Synthesis pages created: 1 (concepts/multi-agent-design-patterns)
- Pages created: 3 (xgimi-play6-setup, psychologist-app, multi-agent-design-patterns)
- Pages updated: 6 (vps-qentra, arr-stack-kraken, arr-stack-taiga, SCHEMA, index, log)
- Lint issues fixed: 3 (inline related: fields)
- Validation issues fixed: 1 (xgimi confidence: high → medium)
+3 -2
View File
@@ -1,7 +1,7 @@
---
title: Wiki Schema
created: '2026-05-13'
updated: '2026-05-23'
updated: '2026-05-25'
type: meta
---
@@ -75,8 +75,9 @@ Work / DDG:
- `asana` `ddg` `workflow` `task-management`
Infrastructure:
- `infra` `kraken` `taiga` `htpc` `docker` `nas` `raspberry-pi`
- `infra` `kraken` `taiga` `htpc` `docker` `nas` `raspberry-pi` `vps`
- `obsidian` `vault` `wiki` `ingest`
- `media-pipeline` `arr`
Projects:
- `reflect-app` `psychology` `ios` `android` `skip-tools`
@@ -0,0 +1,107 @@
---
title: Multi-Agent Design Patterns
created: '2026-05-25'
updated: '2026-05-25'
type: concept
namespace: work
tags: [agent, architecture, system]
confidence: medium
sources:
- wiki/concepts/executor-orchestrator.md
- wiki/concepts/autonomous-agent-safety.md
- wiki/concepts/agent-memory-architecture.md
related:
- "[[concepts/executor-orchestrator]]"
- "[[concepts/autonomous-agent-safety]]"
- "[[concepts/agent-memory-architecture]]"
---
# Multi-Agent Design Patterns
Synthesis of recurring patterns across the personal-os multi-agent system
and related agent architectures. Distilled from [[concepts/executor-orchestrator]],
[[concepts/autonomous-agent-safety]], and [[concepts/agent-memory-architecture]].
## Pattern 1 — Orchestrator / Worker Split
**What:** One agent owns conversation state and decision authority
(orchestrator); spawns separate worker agents for discrete tasks.
**Why:** Tight coupling between conversational layer and execution layer
causes mid-task interruptions and breaks user flow. Separate concerns.
**In personal-os:** Eagle (orchestrator) → Executor (worker) via Zulip.
**In psychologist app:** Narrator (orchestrator/mediator) ← Analyst (worker).
**Key constraint:** Worker communicates only through structured messages;
orchestrator has the only escalation path to the human.
## Pattern 2 — Scope Boundary + Auto-Approve Table
**What:** Predefine which actions a worker may take autonomously and which
require escalation. Publish the table explicitly.
**Why:** Autonomous agents fail catastrophically when they expand scope
unexpectedly (see [[concepts/executor-security-incident]]). Explicit tables
make failure modes visible.
**Implementation:** Message-type-based approval table. Unknown message types
default to escalation, never to silent proceed.
| Risk Level | Agent Action |
|---|---|
| Low (read, build, test) | Auto-approve |
| Medium (write external, open PR) | Auto-approve with logging |
| High (comment on others, merge) | Always escalate |
| Unknown | Always escalate |
## Pattern 3 — Memory Layer Separation
**What:** Separate in-session state (working memory) from cross-session
knowledge (semantic memory) from immutable facts (procedural/episodic).
**Why:** Agents that blur these layers either hallucinate stable facts or
fail to retain important session-to-session knowledge.
**In personal-os:** status.md (working) / wiki pages (semantic) /
SCHEMA.md + vault-filling-guide (procedural). See [[concepts/agent-memory-architecture]].
**Pattern rule:** Never update semantic memory from within an active session.
Crystallize post-session. Never trust working memory as a source of truth
for facts (always re-derive from semantic layer at session start).
## Pattern 4 — Role Specialization over Generalization
**What:** Instead of one agent with a long system prompt covering all roles,
split into agents with narrow, non-overlapping responsibilities.
**Why:** LLMs produce better outputs when role context is tight. Conflated
roles lead to persona drift ("is it being analytical or empathetic right now?").
**In psychologist app:** Analyst stays in 3rd-person analytical mode;
Narrator stays in 1st-person user-facing mode. Neither crosses the boundary.
**Trade-off:** Coordination overhead (structured message passing between
agents). Worthwhile when roles genuinely conflict (analysis vs. empathy).
## Pattern 5 — Deterministic Algorithm for Predictable Steps
**What:** Identify steps that look like LLM tasks but are actually
deterministic (sequencing, routing, counting) and implement them as code,
not as LLM calls.
**Why:** LLMs are expensive and non-deterministic. Steps like "show next
question in list" do not benefit from LLM reasoning and introduce failure modes.
**Examples:**
- Question delivery in psychologist app: batch generated by Analyst,
sequenced by UI algorithm — not an LLM call per question
- Approval table in Executor: code switch on message type, not LLM judgment
- Vault namespace routing: rules in tech/vault-namespace, not agent inference
## See Also
- [[concepts/executor-orchestrator]] — concrete orchestrator/worker implementation
- [[concepts/autonomous-agent-safety]] — safety checklist derived from incidents
- [[concepts/agent-memory-architecture]] — memory taxonomy for LLM agents
- [[entities/psychologist-app]] — dual-agent architecture (patterns 1 and 4)
+96
View File
@@ -0,0 +1,96 @@
---
title: AI Psychologist App (Nolvu)
created: '2026-05-25'
updated: '2026-05-25'
type: entity
namespace: personal
tags: [project, psychology, reflect-app, ios, startup]
sources:
- personal/projects/psychologist-app/session-design.md
- personal/projects/psychologist-app/analytics.md
- personal/projects/psychologist-app/onboarding-archetypes.md
confidence: medium
related:
- "[[personal-os-architecture]]"
- "[[concepts/executor-orchestrator]]"
---
# AI Psychologist App (Nolvu)
Mobile app providing AI-powered therapy sessions. Also referred to as
"reflect app" or "nolvu" in vault. Status: active development (May 2026).
## Architecture — Dual-Agent Session Design
Two-bot system handling a single user session:
```
Bot 1: Analyst ("Психолог")
→ analyzes user in 3rd person ("user avoids...")
→ generates 1-2 questions per batch
Bot 2: Narrator ("Посредник" / Mediator)
→ translates to 1st person ("you avoid?")
→ produces structured question JSON for UI
UI (deterministic algorithm)
→ serves questions one at a time
→ collects answers → passes numbered summary back to Analyst
```
**Key principle:** question delivery is a deterministic algorithm, not an LLM
call. Agent generates a batch once; UI manages sequencing.
## Session Flow
```
OPEN: character animation → intro (1-2 sentences + max 2 history hooks)
→ topic selection
DIALOGUE: Analyst generates questions (3rd person)
→ Narrator translates (1st person JSON)
→ UI queues → user answers → numbered summary → next batch
INSIGHT: Analyst crystallizes observation → Narrator reformulates for user
CLOSE: [backend] Analyst writes session summary + updates profile.md
Narrator: warm closing phrase + next session date
"One last thing" (optional open input) → close or reschedule flow
```
## State Persistence
Session state saved at every step (not only on close):
```json
{
"session_id": "2026-05-19",
"phase": "dialogue",
"current_question_idx": 2,
"answered": [...],
"last_activity_ts": 1747612800
}
```
Abandoned sessions (last_activity_ts > 20h, not closed): backend cron forces
partial close → Analyst writes partial summary → profile.md updated.
## Analytics — Privacy-First (GDPR)
- **No Google Analytics.** PostHog (self-hosted or EU Cloud, free tier).
- **Split identity:** `user_id``analytics_session_id` — no cross-table join.
- Demographics stored as buckets (age: 25-34, country: ISO code) — not PII.
- Never log: message text, questionnaire answers, full IP, timestamp+user_id pair.
Key funnel metric: **Session 1 completion rate** (target > 50%).
## Onboarding
"Resonance questionnaire" — cards with real audience voice phrases
(e.g. "Устала быть сильной") that encode 5 variables in 4 words.
User picks up to 2. Classification maps to archetype for session personalization.
## See Also
- [[concepts/executor-orchestrator]] — related multi-agent orchestration pattern
- [[personal-os-architecture]] — system context in which this is developed
+6 -2
View File
@@ -1,13 +1,13 @@
---
title: Wiki Index
updated: '2026-05-24'
updated: '2026-05-25'
---
# 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-24 | Total pages: 43
> Last updated: 2026-05-25 | Total pages: 47
## Personal OS — Core
@@ -52,11 +52,14 @@ updated: '2026-05-24'
- [[tech/hermes-eagle-mac]] — Hermes on Eagle Mac M4; claude-proxy, Zulip setup, known pitfalls
- [[tech/jellyfin-transcode-rpi5]] — Jellyfin RPi5 transcoding pitfalls; PGS/subtitle handling
- [[tech/vault-git-sync]] — Vault git sync via Taiga bare repo; setup, pull hooks, pitfalls
- [[tech/vps-qentra]] — VPS qentra.top: IP, nginx+Cloudflare stack, subdomain setup
- [[tech/xgimi-play6-setup]] — XGIMI Play 6 (GMUI 6): ADB-over-network setup, launcher, keyboard
## Entities
- [[user-profile]] — Alex's profile; roles, working style, preferences
- [[entities/library-app]] — Personal book library web UI on TrueNAS; replacement for inpxer (May 2026)
- [[entities/psychologist-app]] — AI Psychologist App (Nolvu): dual-agent session design, privacy analytics
## Comparisons
@@ -69,6 +72,7 @@ updated: '2026-05-24'
- [[concepts/executor-security-incident]] — Post-mortem: autonomous Asana boundary crossing (May 2026); root causes
- [[concepts/agent-memory-architecture]] — LLM agent memory taxonomy (arXiv 2603.07670) applied to personal-os
- [[concepts/knowledge-lifecycle]] — How knowledge flows from session to permanent wiki memory
- [[concepts/multi-agent-design-patterns]] — Five reusable patterns: orchestrator/worker, scope tables, memory layers, role specialization
## Concepts — Vault & Wiki
+17 -1
View File
@@ -1,6 +1,6 @@
---
title: Wiki Log
updated: '2026-05-24'
updated: '2026-05-25'
type: meta
---
@@ -46,3 +46,19 @@ type: meta
- Updated: research-queue.md — 2 queue items marked completed, updated date
- Lint: 0 orphans (all pages have ≥1 inbound link); 0 broken frontmatter; tag drift noted (systemic — SCHEMA taxonomy predates actual page growth; no action this run)
- Validation: autonomous-agent-safety.md frontmatter valid, 3 outbound wikilinks ✅
## [2026-05-25] update | Crystallization + synthesis + frontmatter fixes
- Conflicts: 0 found (scan: all ~/obsidian/**/*.md)
- Inbox: empty
- Sessions: 0 sessions for 2026-05-25
- Vault changes since 2026-05-24 02:00: psychologist-app/* (6 files), media-pipeline-file-routing.md, xgimi-play6-setup.md, vps-qentra.md (new wiki page), app-ideas-enriched/* (4 files)
- Crystallized: tech/xgimi-play6-setup.md (from family/how-to/xgimi-play6-setup.md)
- Crystallized: entities/psychologist-app.md (from personal/projects/psychologist-app/{session-design,analytics,onboarding-archetypes}.md)
- Synthesis: concepts/multi-agent-design-patterns.md — 5 patterns synthesized from executor-orchestrator + autonomous-agent-safety + agent-memory-architecture
- Fixed: tech/vps-qentra.md — frontmatter (type: infra→tech, tags taxonomy, related: inline→list, added dates)
- Fixed: tech/arr-stack-kraken.md — related: inline wikilink → YAML list
- Fixed: tech/arr-stack-taiga.md — related: inline wikilink → YAML list
- Updated: SCHEMA.md — added vps, media-pipeline, arr to Infrastructure taxonomy
- Updated: index.md — 4 pages added (vps-qentra, xgimi-play6-setup, psychologist-app, multi-agent-design-patterns); count 43→47
- Lint: personal-os-architecture.md has confidence:1.0 (immutable) — skipped update check per SCHEMA rules
- Validation: all 7 modified/created files passed pre-commit checks ✅
+3 -1
View File
@@ -5,7 +5,9 @@ updated: '2026-05-23'
type: tech
namespace: family
tags: [arr, radarr, sonarr, prowlarr, transmission, jellyfin, infra, kraken]
related: "[[jellyfin-config]]"
related:
- "[[tech/jellyfin-config]]"
- "[[tech/arr-stack-taiga]]"
---
# Arr Stack — Kraken
+2 -1
View File
@@ -5,7 +5,8 @@ updated: '2026-05-23'
type: tech
namespace: family
tags: [arr, taiga, infra, media, pitfalls]
related: "[[arr-stack-kraken]]"
related:
- "[[tech/arr-stack-kraken]]"
---
# Arr Stack — Taiga
+14 -3
View File
@@ -1,8 +1,14 @@
---
title: VPS qentra.top
type: infra
tags: [vps, nginx, cloudflare, python]
related: "[[kraken-network]]"
created: '2026-05-24'
updated: '2026-05-25'
type: tech
namespace: personal
tags: [infra, vps]
confidence: medium
related:
- "[[tech/kraken-network]]"
- "[[tech/wireguard-vpn]]"
---
# VPS qentra.top
@@ -15,3 +21,8 @@ related: "[[kraken-network]]"
1. Add Cloudflare A-record → 91.207.28.205
2. Add nginx vhost in `/etc/nginx/sites-enabled/`
## See Also
- [[tech/kraken-network]] — Kraken home network topology
- [[tech/wireguard-vpn]] — WireGuard tunnel used for Eagle↔VPS traffic
+121
View File
@@ -0,0 +1,121 @@
---
title: XGIMI Play 6 — Setup Guide
created: '2026-05-25'
updated: '2026-05-25'
type: tech
namespace: family
tags: [infra, htpc, how-to]
sources:
- family/how-to/xgimi-play6-setup.md
confidence: medium
related:
- "[[tech/htpc-kodi-layout]]"
- "[[tech/htpc-steam-emulators]]"
---
# XGIMI Play 6 — Setup Guide
Chinese GMUI 6 version. ADB over network only (USB ADB non-functional).
IP on home network: `192.168.1.58`.
## Key Constraints
- **Architecture:** arm64-v8a (MT9639 chip) — verify all APKs
- **OS:** GMUI 6.0 (Android 11) — Wireless ADB not available (needs Android 12+)
- **ADB:** Network-only via port 5555
## Bootstrap Sequence
### 1. Install via USB flash (before ADB is up)
APKs must be renamed: `file.apk``file.apk.1` (flash drive workaround).
Flash must be FAT32. Install via built-in file manager.
Install in this order:
1. SystemUI Tuner (github.com/zacharee/Tweaker) — enables ADB
2. Projectivy Launcher — replaces stock XGIMI launcher
### 2. Enable ADB
Settings → find ADB → enable. Connect from Mac:
```bash
brew install android-platform-tools
adb connect 192.168.1.58:5555
adb devices
```
### 3. Install remaining apps via ADB
```bash
adb -s 192.168.1.58:5555 install /path/to/file.apk
```
Recommended apps: LeanKey Keyboard, VLC, Total Commander,
YouTube ReVanced, Кинопоиск TV (4pda.to, regular .apk not .apks).
### 4. Replace launcher
```bash
# Disable stock launcher
adb -s 192.168.1.58:5555 shell pm disable-user --user 0 com.xgimi.home
# Set Projectivy as default
adb -s 192.168.1.58:5555 shell cmd package set-home-activity \
com.spocky.projengmenu/.ui.main.MainActivity
```
### 5. Keyboard
```bash
# Disable Sogou Chinese IME
adb -s 192.168.1.58:5555 shell pm disable-user --user 0 \
com.sohu.inputmethod.sogou.tv
# Enable LeanKey
adb -s 192.168.1.58:5555 shell ime enable \
org.liskovsoft.androidtv.rukeyboard/com.liskovsoft.leankeyboard.ime.LeanbackImeService
adb -s 192.168.1.58:5555 shell ime set \
org.liskovsoft.androidtv.rukeyboard/com.liskovsoft.leankeyboard.ime.LeanbackImeService
```
Language switch: long-press **Space** or **Menu** on remote.
### 6. Russian system language
```bash
adb -s 192.168.1.58:5555 shell setprop persist.sys.locale ru-RU && \
adb -s 192.168.1.58:5555 reboot
```
## Useful Commands
```bash
# Check connectivity
nc -zv 192.168.1.58 5555
# List all packages
adb -s 192.168.1.58:5555 shell pm list packages
# Launch app
adb -s 192.168.1.58:5555 shell monkey -p com.package.name 1
# Re-enable a disabled package
adb -s 192.168.1.58:5555 shell pm enable com.package.name
# Find correct launcher activity name
adb -s 192.168.1.58:5555 shell cmd package resolve-activity \
--brief -c android.intent.category.HOME com.package.name
```
## Rollback
```bash
# Restore stock launcher
adb -s 192.168.1.58:5555 shell pm enable com.xgimi.home
# Restore Chinese keyboard
adb -s 192.168.1.58:5555 shell pm enable com.sohu.inputmethod.sogou.tv
```
## See Also
- [[tech/htpc-kodi-layout]] — HTPC Kodi layout (related home theater setup)
- [[tech/htpc-steam-emulators]] — Bazzite HTPC (different device, same home AV context)