kb: retire pi-installation association (OMP is the primary harness)

Purge live-state claims that ~/.pi is our harness; keep general
pi documentation in omp-docs/ and dated historical records.

- README.md: single config source; Legacy Notes reworded
- AGENTS.md: drop 'like ~/.pi did' framing
- APPEND_SYSTEM.md: okf-spec -> omp-docs/references/okf-spec.md
- dotfiles/zsh/.zshrc: systemprompt alias -> APPEND_SYSTEM.md
- managed skill llm-fleet-model-swap + model_config_sync skill:
  single-source models.yml; validation script YAML-only
- memories (MEMORY.md, memory_summary.md, learned.md): single source
- omp-docs: .okf root -> ~/.omp/omp-docs; de-live pi-era claims in
  pi/index.md, pi-web-access.md, engineering/agents-files.md
This commit is contained in:
Frank committed 2026-09-17 19:24:02 -07:00
1 parent eebcfbf5ac
commit c3f30bdbd0
23 files changed
+81 -76

No files matched your search

@@ -1,34 +1,26 @@
## System & Hardware Topology
- **dankserver**: Dual AMD R9700 GPUs.
- *Issue*: RCCL fails on chipset-attached PCIe (PCIEX16_2) because lanes lack required atomic-op routing.
- *Fix*: Use a $30 M.2→PCIe x4 riser to move card #2 to CPU-attached M.2_2 slot.
- **dankclaw**: RTX 3090 (PCIe 4.0 x4 dock) + AMD Strix Halo (gfx1151, Vulkan).
- *Kernel*: Ubuntu 24.04, `amd_iommu=off`.
## System Topology & Hardware
- **dankclaw**: AMD Strix Halo APU (gfx1151) + RTX 3090 in M.2 dock (PCIe x4, ~29 GB/s sequential). Combined GPU budget ~88 GiB. OS: Ubuntu 24.04.
- **dankserver**: ASUS TUF GAMING B650-E WIFI. Dual AMD R9700 GPUs.
- **RCCL Constraint**: Chipset-attached PCIe lanes fail RCCL atomics (broadcast/all-reduce/send-recv). Fix: Move card #2 to CPU-attached M.2_2 slot via PCIe x4 riser to restore atomic-op routing.
## LLM & Software Stack
- **vLLM / ROCm**: Version 0.27.1 / torch 2.11.0 / ROCm 7.14.
- *Constraint*: HIP runtime reads bare `TEMP` and `HOST` env vars; naming these explicitly can cause collisions.
- *Constraint*: `GGML_CUDA_FA_ALL_QUANTS` required for flash-attention with quantized KV.
- **llama.cpp (ik_llama.cpp)**:
- *Model*: Qwen3.8-Flash-Next-Uncensored-i1-GGUF (i1-Q4_K_M).
- *Performance*: ~3.8-4.0 t/s decode (bottlenecked by PCIe x4 sync/graph splits), ~192 t/s prefill.
- *Note*: 30 t/s decode is unreachable via current PCIe x4/split-mode setup; requires mainline PR #28901 for capture-safe graphs.
## LLM Model Portfolio
- **frank-large (halogen)**: Qwen3.8-27B-ROCmFPX-Q8_0. Runs on Strix Halo (gfx1151).
- *KV Pool*: 524288 positions (~14.4 GiB). Admission is pool-bound, not slot-bound (caps at 3 simultaneous full-length requests).
- *Behavior*: Defaults to greedy. Stalls (full-CPU, no disk activity, no output) under co-tenancy with pinned trunk are documented behavior, not crashes.
- *Constraints*: maxTokens <= 65536. First request after restart may be silent ~45-60s while first-touching KV pool.
- **frank-small**: Qwen3.8-27B GSQ-RCO IQ3_S. Runs on RTX 3090 (M.2 dock). Defaults to sampling (temp 1.0, top_k 20, top_p 0.95).
- **ik_llamacpp**: mradermacher/Qwen3.8-Flash-Next-Uncensored-i1-GGUF (i1-Q4_K_M).
- *Backend*: CUDA (3090) + Vulkan (Strix Halo) split.
- *Performance*: ~3.8-4.0 t/s decode, ~192 t/s prefill.
- *Bottleneck*: PCIe x4 launch/sync overhead; CUDA graphs currently abort on hc ops (ggml_repeat_4d).
## Service Management (Quadlet & Podman)
- **Persistence**: `restart: unless-stopped` survives crashes, not explicit stops. Every container must have a Quadlet `.container` file for boot-persistence.
- **frank-large (HALOGEN)**: Rootless Quadlet. Weights pinned (~68 GiB). KV pool: 524288 positions (~14.4 GiB).
- *Stall Behavior*: Multi-minute full-CPU stalls (no disk/output) are documented behavior under co-tenancy with `HALOGEN_FLASH_PIN_TRUNK=1`. Do not restart.
- *First-touch*: 45-60s silence after restart as engine first-touches fresh KV pool.
- *Constraints*: `maxTokens` <= 65536. Prompt + max_tokens must fit KV pool.
- **frank-small**: Defaults to sampling (temp 1.0, top_k 20, top_p 0.95).
## Software Infrastructure
- **Podman**: Rootless deployment using Quadlet units for boot persistence. Note: `restart: unless-stopped` survives crashes, but not explicit stops (kernel power-off).
- **Authentik**: Anubis guard chain. Marreta app connected via ProxyProvider (fixed null flow crash).
- **AGENTS.md**: Structured as (1) Active-topology table, (2) Runbook pointers, (3) Key Lessons Learned.
## Networking & Auth
- **Marreta Auth Chain**: Caddy TLS → Anubis (:8923) → Authentik Outpost → Marreta (:8017).
- *Fix*: Populated `invalidation_flow`, `authentication_flow`, and `authorization_flow` to prevent Rust outpost serde crashes.
- *Probing*: Host-to-listener returns HTTP 000 (Caddy netns); probe inside netns or grep config for internal status.
## Operational Lessons
- **Memory**: `free` command lies about available memory (doesn't account for pinned/reserved weights).
- **Skills Discovery**: `omp` scans `~/.omp/agent/skills/`.
- **Root-Cause**: PCIe x4 dock provides ~29 GB/s, not 130 GB/s.
- **Logs**: Use `podman logs` or `journalctl --user -u` for rootless Quadlets.
## Durable Lessons
- **ROCm**: Use layer-split-not-tensor; mmap/PLE constraints apply; HIP env collisions (`TEMP`/`HOST`).
- **Memory**: `free` command lies about available memory (doesn't account for pinned/reserved weights).
- **PCIe**: M.2 x4 dock is ~29 GB/s; do not assume x16 bandwidth.
- **Skill Discovery**: `omp` scans `~/.omp/agent/skills/` only. New skills surface on the next session.