diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md new file mode 100644 index 00000000..4e162dfa --- /dev/null +++ b/personal/projects/personal-os/wiki-curation-runs/2026-05-25.md @@ -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) diff --git a/wiki/SCHEMA.md b/wiki/SCHEMA.md index 87de5b87..e5788d9b 100644 --- a/wiki/SCHEMA.md +++ b/wiki/SCHEMA.md @@ -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` diff --git a/wiki/concepts/multi-agent-design-patterns.md b/wiki/concepts/multi-agent-design-patterns.md new file mode 100644 index 00000000..91b23ecc --- /dev/null +++ b/wiki/concepts/multi-agent-design-patterns.md @@ -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) diff --git a/wiki/entities/psychologist-app.md b/wiki/entities/psychologist-app.md new file mode 100644 index 00000000..9f0e19cc --- /dev/null +++ b/wiki/entities/psychologist-app.md @@ -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 diff --git a/wiki/index.md b/wiki/index.md index f8d61762..4c02343a 100644 --- a/wiki/index.md +++ b/wiki/index.md @@ -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 diff --git a/wiki/log.md b/wiki/log.md index 9d5f84ab..4b17a0d3 100644 --- a/wiki/log.md +++ b/wiki/log.md @@ -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 ✅ diff --git a/wiki/tech/arr-stack-kraken.md b/wiki/tech/arr-stack-kraken.md index fe0a7498..52e91068 100644 --- a/wiki/tech/arr-stack-kraken.md +++ b/wiki/tech/arr-stack-kraken.md @@ -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 diff --git a/wiki/tech/arr-stack-taiga.md b/wiki/tech/arr-stack-taiga.md index 62b9c24d..8064641a 100644 --- a/wiki/tech/arr-stack-taiga.md +++ b/wiki/tech/arr-stack-taiga.md @@ -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 diff --git a/wiki/tech/vps-qentra.md b/wiki/tech/vps-qentra.md index 6df0bc22..e6a3ee39 100644 --- a/wiki/tech/vps-qentra.md +++ b/wiki/tech/vps-qentra.md @@ -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 diff --git a/wiki/tech/xgimi-play6-setup.md b/wiki/tech/xgimi-play6-setup.md new file mode 100644 index 00000000..38e29827 --- /dev/null +++ b/wiki/tech/xgimi-play6-setup.md @@ -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)