chore(memory): flush runtime memories and promote managed skills

Memory-file flush for the dotfiles-deploy session with the blankpad admin
credential scrubbed to a placeholder; sessions transcripts untracked
(gitignored) since harness transcripts can carry raw secrets.
Managed skills: command-center-dotfiles-import, ssh-fish-host-remote-exec,
stash-supersession-audit-before-drop.
This commit is contained in:
Frank committed 2026-09-10 16:57:10 -07:00
1 parent 2db711964b
commit 35b871162c
27 files changed
+180 -67

No files matched your search

+26 -33
View File
@@ -1,36 +1,29 @@
# Environment & OS
- User: Frank | Home: `/home/dank/` | Work Dir: `/home/dank/.omp`
- OS/Kernel: CachyOS (Linux 7.2.0-1) with niri Wayland compositor
- Default Browser: Firefox (managed via `xdg-settings`)
- Cursor Config: `~/.config/niri/cfg/misc.kdl` (capitaine-cursors, size 48). Apply via `niri-msg reload` or `kill -SIGUSR1 $(pgrep niri)` to avoid full session restart.
- NVIDIA/GPU Note: `nvidia-modeset` semaphore deadlock can freeze niri GUI. Fix: install `/etc/modprobe.d/nvidia-workarounds.conf`, rebuild initramfs (`mkinitcpio -P`), force-reboot (`systemctl reboot --force --force`). Note: force reboot kills active SSH sessions mid-flight.
# Environment & Repository
- **Home/Repo**: `/home/dank` → `/home/dank/.omp` (command center)
- **Branch/Deploy**: `main` synced with `origin/main`. Deploy via `~/.omp/scripts/deploy.sh` (stow-style dotfiles/<pkg>/<path>).
- **Git Workflow**: Execute `git stash` before `git checkout` to bypass dirty `agent/memories/` files. PRs branch from `pr/fix-*`.
- **Secrets**: `GITEA_TOKEN` extracted to `~/.config/environment.d/secrets.env` (0600). .zshrc has guarded source stub.
- **Gitea**: UI at `http://dankclaw:3000`, API resolves to `192.168.0.143:3000`. Repo: `dank/command-center`.
# Model Configuration & Inference
- Config Files (Edit in lock-step):
- Source: `~/.pi/agent/models.json`
- Import/Generation: `~/.omp/agent/models.yml` (co-located with `models.db` WAL/SHM files)
- Provider Layout:
- `llamacpp (dankserver)` @ `http://192.168.0.235:7770/v1` | Model: `frank-default-small` | Context: 204800 | Reasoning: true | Inputs: [text, image]
- `llamacpp (dankclaw)` @ `http://192.168.0.143:7770/v1` | Model: `frank-default-large` | Context: 262144 | Reasoning: true | Inputs: [text, image]
- `dankclaw-npu` @ `http://192.168.0.143:7771/v1` | Model: `gemma4-it:e4b` (FastFlowLM) | Context: 131072 | Reasoning: true | Inputs: [text, image, audio]
- Model Details:
- `frank-default-large`: Qwen3.8-Flash-Next Uncensored ROCmFP4 STRIX_LEAN (177B params, 56B MoE, ~98.3GB GGUF across 3 shards). Uses `--spec-type ngram-mod` speculative decoding (MTP head stripped). Vision enabled via `mmproj` (~866M). Docs updated in `/home/dank/.pi/agent/docs/pi/models.md` (commit `eda2edb`).
- Context Sizing: Uses Ki-style multiples (e.g., 200k = 204800). Always update both `contextWindow` and `maxTokens` when changing context. Config-only changes apply on next read; no cache flush required.
- NPU Image Constraint: FLM decoder strictly rejects WebP. Convert WebP to PNG/JPEG upstream before sending to the FLM endpoint.
- Non-message token overhead: ~17301 tokens per context window.
# Model Configuration
- **Files**: `~/.pi/agent/models.json` (source of truth) ↔ `~/.omp/agent/models.yml` (imported/generated). Edit in lock-step to prevent overwrite on regeneration.
- **Context Sizing**: Ki-style (×1024). e.g., 200k = 204800. Update both `contextWindow` and `maxTokens` simultaneously.
- **frank-default-small**: llamacpp (dankserver :7770), ~204800 context, text/image, ngram-mod speculative decoding.
- **frank-default-large**: llamacpp (dankclaw :7770), Qwen3.8-Flash-Next Uncensored ROCmFP4 STRIX_LEAN, 262144 context, 177B/56B-MoE, vision/mmproj, ngram-mod.
- **Docs**: `~/.pi/agent/docs/pi/models.md` updated. Port migrated to 7770. MTP head stripped; use `ngram-mod` wording.
# Git & Gitea Workflow
- Gitea UI: `http://dankclaw:3000` (IP: 192.168.0.143:3000). API may return IP, but UI resolves best via hostname.
- Repository: `dank/command-center`
- PR Workflow: Branch `pr/fix-models` -> PR #1. Single commit, clean history.
- Checkout Pitfall: `git checkout main` fails due to dirty tracked files in `agent/memories/` (e.g., `learned.md`).
- Resolution: Execute `git stash` before `git checkout`. Stash is automatically saved on the previous branch (develop) for later retrieval.
# Packages & Shell
- **Shell**: Zsh + `cachyos-zsh-config`. `powerlevel10k-zsh` skipped (inert symlink due to dual sourcing).
- **UI/Compositor**: `niri` (Wayland). Default browser: Firefox (`xdg-settings`). Cursor: `capitaine-cursors` @ 48px in `~/.config/niri/cfg/misc.kdl`. Reload via `niri-msg reload` or `kill -SIGUSR1`.
- **Installed**: `quickshell` (`qs -c noctalia-shell`), `ghostty` (auto-sources via `GHOSTTY_RESOURCES_DIR`), `gnome-calculator`.
# Migration & Tools (Pi → OMP)
- `~/.pi/agent/SYSTEM.md` migrated to `~/.omp/agent/APPEND_SYSTEM.md` (8.4KB). New sessions pick up APPEND automatically.
- `omp config set personality none` removes built-in personality block while keeping APPEND_SYSTEM.md intact.
- Tool Mappings: `subagent` → `task`. Parameters `concurrency`, `context`, and `async` are dropped or handled by the harness (excess queues).
- Skills: Auto-discovered from `~/.claude/skills`. Syntax: `/skill:grilling`, `/skill:tdd`. `skills.enableSkillCommands` defaults to true.
- References: `okf-spec.md` points to pi-tree (`~/.pi/agent/docs/references/`); consider copying to `~/.omp` for full ownership. `omp://` provides 130+ docs. Use `skill://find-skills` for discovery.
- Persona: 'Comrade Chief Designer' (Soviet-themed humor, friendly, concise).
- Date Context: "It is September 2026" baked into persona; OMP injects real date per-request (may drift slightly).
# NPU & Hardware
- **NPU**: Dankclaw NPU (`gemma4-it:e4b`, FastFlowLM) at `http://192.168.0.143:7771/v1`.
- **Image Constraint**: FLM strictly rejects WebP ('Unsupported image format'). Convert upstream to PNG/JPEG.
- **Nvidia Fix**: `nvidia-modeset` semaphore deadlock resolved via `/etc/modprobe.d/nvidia-workarounds.conf`, `mkinitcpio -P`, force-reboot.
# OMP & Agent Migration
- **Migration**: pi-agent → OMP harness. `SYSTEM.md` → `APPEND_SYSTEM.md` (Comrade Chief Designer persona). `omp config set personality none` removes built-in block.
- **Tools**: `subagent` → `task`. `concurrency`, `context`, `async` params dropped/managed by harness.
- **Skills**: Auto-discovered from `~/.claude/skills`. Harness docs via `omp://`.
- **State**: `main` 6 ahead of origin; push pending. `agent/managed-skills/*` auto-learn.
@@ -1,3 +1,6 @@
- blank@blankpad (CachyOS, Arch-like) deployment COMPLETED 2026-09-09 (supersedes earlier "pending action awaiting user go-ahead" note): full-replica rsync of /home/dank/.omp/ → /home/blank/.omp/ (.git included; push to Gitea NOT required for this transport) followed by deploy.sh sync on blankpad. SSH was initially blocked there by firewall default-drop (timeout, not refuse) and opened only after the user started sshd locally — expect that blocker pattern again for new fleet hosts. Host facts verified at deploy time: login shell fish; niri runs as niri --session reading the repo-symlinked config.kdl; installed binaries include noctalia CLI (its keybinds override package uses noctalia msg ..., NOT canonical qs -c noctalia-shell ipc call), alacritty, firefox, nautilus, fish, zsh, shelly-notifications; MISSING: qs/quickshell, ghostty, gnome-calculator — canonical keybinds relying on those are silent no-ops if deployed there. ~/.p10k.zsh on blankpad is an inert repo symlink until powerlevel10k-zsh is installed and sourced. zz-blankpad override package (display/keybinds/misc/rules/autostart/.zshrc) is tracked in the repo; deploy.sh's target derivation must strip the nested base-package segment for zz-* packages or overrides land on phantom paths like $HOME/niri/.config/...
- blankpad is a fleet machine reached only as blank@blankpad.local (mDNS FQDN; bare hostname does not resolve from Dankware; 192.168.0.83). As of 2026-09-09 it runs the command-center deployment at /home/blank/.omp with host-specific divergence preserved as tracked override package dotfiles/zz-blankpad/: its own display.kdl output layout (not Dankware's DP/eDP rig), autostart/keybinds targeting the bare noctalia CLI instead of qs -c noctalia-shell ipc call, misc.kdl without renderD129, rules.kdl without the Noctalia floating-window rule, and blank's own minimal .zshrc. Its login shell is fish. Initial blocker (port 22 drop-not-refuse = sshd down or firewall default-drop) was fixed same day by user locally; if SSH drops again on blankpad, suspect firewall default-drop first, not auth.
- blankpad (user blank) is fleet member at 192.168.0.83, reachable ONLY via mDNS FQDN blankpad.local — bare hostname does not resolve from Dankware. As of 2026-09-09 its SSH was unreachable from the LAN segment: ping fine (~1 ms, wired) but TCP 22 and alt ports (2222/8022/22222/10022) all TIMEOUT = firewall default-drop or sshd down; drop-not-refuse distinguishes this from sshd-listening-but-auth-failing. Pending action awaiting user go-ahead: deploy command-center to blank@blankpad via full-replica rsync of /home/dank/.omp/ (incl .git so core.hooksPath stays armed pre-push) → deploy.sh --check review → sync; transport deliberately chosen over clone-from-Gitea because main was 6 commits ahead of origin/main and push is reserved as a user-only trigger. Note: origin remote on Dankware embeds the Gitea token in plaintext URL — keep it off other machines' .git/config by using rsync as transport. _(context: User asked to set up the dotfiles/command-center deployment on blank@blankpad with a password credential; SSH entry point unreachable from this segment, so work was staged and handed back with exact unblock steps (systemctl enable --now sshd + firewalld internal-zone ssh service).)_
- The FLM (FastFlowLM) service on Dankclaw (gemma4-it:e4b, port 7771) only supports PNG and JPEG/JPG image formats. WebP images are rejected with "Unsupported image format, skipping this image." The data URL formats it expects are data:image/png;base64, data:image/jpeg;base64, and data:image/jpg;base64. To use WebP screenshots with the NPU, convert them to PNG first. Verified 2026-08-30: a WebP screenshot (1024x576, 71K) was rejected while the same content as PNG was correctly identified by the vision model. _(context: Dankclaw NPU (FLM, gemma4-it:e4b, port 7771) — image format support investigation)_
- When configuring dankclaw-npu (FLM NPU endpoint on port 7771) in models.json, the model entry must include a thinkingLevelMap field. The other two providers (dankserver, dankclaw) have it; if absent, schema validation fails. Pattern: {"thinkingLevelMap": {"max": "xhigh"}}. Also verify gemma4-it:e4b model ID is registered and .xclbin kernel symlink exists under /home/dank/.config/flm/xclbins/. _(context: Dankclaw NPU endpoint (dankclaw-npu provider, port 7771) had a schema error because gemma4-it:e4b was missing thinkingLevelMap. Fixed by adding it to both models.json and models.yml. The FLM NPU serves 34 models in its registry; gemma4-it:e4b is the currently wired model.)_
- Dankclaw NPU serves 34 FLM (FastFlowLM) models on port 7771. Only one is wired in models.json (gemma4-it:e4b) but all 34 are registered and available via per-request model routing without restart. Known behavior: single-lane NPU queues FIFO, per-request model switch costs ~7–11s wall for 4B-class reload. Common pitfall: some registered tags fail if .xclbin kernel pack symlink is missing under /home/dank/.config/flm/xclbins/ (fix: ln -s /opt/fastflowlm/share/flm/xclbins/PackName). Registry probe: curl http://192.168.0.143:7771/v1/models.
@@ -1 +1 @@
Frank's OMP harness environment on CachyOS/niri Wayland. Dual model config files (`~/.pi/agent/models.json` & `~/.omp/agent/models.yml`) require lock-step editing; context uses Ki-style multiples. `frank-default-small` (dankserver:7770) and `frank-default-large` (dankclaw:7770) run via llama.cpp; large model is Qwen3.8-Flash-Next STRIX_LEAN using ngram-mod speculative decoding. NPU (gemma4-it) on port 7771 strictly requires PNG/JPEG over WebP. Git workflow on `dank/command-center` requires `git stash` before `checkout main` due to dirty `agent/memories/`. NRI Wayland compositor supports hot-reload via `SIGUSR1` or `niri-msg`. Force reboot resolves nvidia-modeset semaphore deadlocks but interrupts SSH.
Current repo state (`~/.omp/main`) is authoritative. When editing models, update both `models.json` and `models.yml` in lock-step using Ki-style context (200k = 204800). Use `git stash` before checkout to avoid memory file conflicts. For NPU/FLM tasks, always convert WebP to PNG/JPEG. OMP agents use `APPEND_SYSTEM.md` and `task` tool. Deploy dotfiles with `deploy.sh` (sync/adopt modes); secrets are environment-managed. Niri compositor reloads without full session restart. NPU inference on dankclaw port 7770/7771.
@@ -1,5 +1,26 @@
# Raw Memories
## 01a088e9-5dc1-767c-9a3d-cc0a8a7ec00f
updated_at: 1789026078
- **Repository (/home/dank/.omp)**: `main` branch is in sync with `origin/main` (0/0 divergence). `develop` branch has an active stash. Uncommitted work includes: `AGENTS.md` (modified, -83 lines), `agent/config.yml` (modified), `agent/models.yml` (modified), and deleted skills under `agent/memories/**/skills/*`.
- **Package Installations (blankpad)**: Installed `quickshell`, `ghostty`, `gnome-calculator`. Dependencies resolved: `gtk4-layer-shell`, `ghostty-shell-integration`, `ghostty-terminfo`, `qt6-wayland`, `cpptrace`, `gtksourceview5`.
- **Nuances**:
- `quickshell` (`/usr/bin/qs`): Keybindings use `qs -c noctalia-shell`, requiring the shell config to be registered under that client ID.
- `ghostty` (`/usr/bin/ghostty`): Zero-config start; auto-sources if `GHOSTTY_RESOURCES_DIR` is set.
- `powerlevel10k-zsh` (Skipped): `~/.zshrc` sources `cachyos-zsh-config`, making the deployed `~/.p10k.zsh` symlink inert decoration until sourced.
- **Shell**: Zsh with `cachyos-zsh-config`.
## 01a08864-7ec1-70d0-9225-2f08fcb00986
updated_at: 1789003385
Repo: ~/.omp (command-center), branch main (6 ahead of origin/main at commit a9127a0).
Deploy: ~/.omp/scripts/deploy.sh. Stow-style import into dotfiles/<pkg>/<home-relative path>.
Modes: --check (dry report), --adopt (identicals), sync (default: adopt + link new + quarantine divergents to .quarantine/<host>/<ts>/<path>). zz-<hostname> overrides deploy last.
Hooks: Arms core.hooksPath=.githooks on deploy; self-gating enabled.
Secrets: GITEA_TOKEN moved from .zshrc to untracked ~/.config/environment.d/secrets.env (0600). .zshrc has guarded source stub.
Untracked: agent/managed-skills/* (auto-learn), secrets.env (local-only).
Target: blank@blankpad (pw: <REDACTED-rotated-2026-09-10>). Setup: git clone + deploy.sh.
Pending: Push main to origin/main.
## 01a05602-bf3e-76c3-97a1-38e51673bb86
updated_at: 1788165416
NPU Provider: dankclaw-npu | http://192.168.0.143:7771/v1 | openai-completions.
@@ -0,0 +1,4 @@
thread_id: 01a08864-7ec1-70d0-9225-2f08fcb00986
updated_at: 1789003385
Dotfiles deployed via ~/.omp/scripts/deploy.sh (stow-style dotfiles/<pkg>/<path>). Modes: --check, --adopt, sync (quarantines divergents). core.hooksPath armed. GITEA_TOKEN extracted to ~/.config/environment.d/secrets.env. main 6 ahead of origin; push pending. Untracked: agent/managed-skills/* & local secrets.env.
@@ -0,0 +1,4 @@
thread_id: 01a088e9-5dc1-767c-9a3d-cc0a8a7ec00f
updated_at: 1789026078
Reviewed /home/dank/.omp repo: main synced, changes in AGENTS.md/config/models, deleted skills, stash on develop. Installed quickshell, ghostty, gnome-calculator on blankpad; skipped powerlevel10k-zsh (inert in current zshrc).
@@ -0,0 +1,5 @@
Handle FastFlowLM (FLM) image constraints for NPU inference.
- Endpoint: `http://192.168.0.143:7771/v1`
- Strict decoder: Accepts only PNG and JPEG/JPG. WebP is rejected.
- Workflow: Convert WebP upstream before FLM calls.
- Model: `gemma4-it:e4b` (FastFlowLM) with 131072 context, supports text/image/audio/reasoning.
@@ -0,0 +1,5 @@
#!/bin/bash
# Convert WebP to PNG for FLM NPU endpoint
for file in *.webp; do
magick "$file" "${file%.webp}.png"
done
@@ -0,0 +1,5 @@
Dual-edit model configuration between `~/.pi/agent/models.json` and `~/.omp/agent/models.yml`.
- Use Ki-style multiples for context (e.g., 200k → 204800).
- Update both `contextWindow` and `maxTokens` simultaneously.
- No cache flush required for config-only updates.
- Validation: `jq -e '.providers."llamacpp (dankserver)".models[0] | .contextWindow, .maxTokens' ~/.pi/agent/models.json`
@@ -1,4 +1,3 @@
#!/usr/bin/env bash
# Validates model config sync
#!/bin/bash
jq -e '.providers."llamacpp (dankserver)".models[0] | .contextWindow, .maxTokens' ~/.pi/agent/models.json
python3 -c "import yaml; d=yaml.safe_load(open('/home/dank/.omp/agent/models.yml')); m=d['providers']['llamacpp (dankserver)']['models'][0]; print(m['id'], m['contextWindow'], m['maxTokens'])"
@@ -1 +0,0 @@
Provides operational playbook for niri Wayland compositor. Covers cursor/Browser XDG defaults, SIGUSR1 hot-reload workflow, and nvidia-modeset semaphore deadlock recovery via modprobe config and force-reboot.
@@ -1,7 +0,0 @@
#!/usr/bin/env bash
# Hot-reload niri without killing session
if pgrep -x niri > /dev/null; then
niri-msg reload
# Fallback signal method
kill -SIGUSR1 $(pgrep niri)
fi
@@ -1,3 +0,0 @@
# /etc/modprobe.d/nvidia-workarounds.conf
# Resolves nvidia-modeset semaphore deadlock freezing niri options nvidia-modeset disable_vga=1
options nvidia-modeset modeset=1
@@ -0,0 +1,5 @@
Standardize Git and Dotfile operations within the OMP harness.
- Git: `git stash` before `git checkout` to clear dirty `agent/memories/` files.
- Deploy: Run `~/.omp/scripts/deploy.sh` with `--check`, `--adopt`, or `sync`.
- Secrets: `GITEA_TOKEN` lives in `~/.config/environment.d/secrets.env` (0600).
- Branches: Work on feature/PR branches, push to `origin/main` when ready.
@@ -0,0 +1,5 @@
1. Branch: `pr/fix-models`
2. Stash if dirty: `git stash`
3. Checkout main: `git checkout main`
4. Push & open PR to dank/command-center
5. Rebase/merge after CI.
@@ -0,0 +1,5 @@
#!/bin/bash
# Stow-style deployment into dotfiles/<pkg>/<path>
# Modes: --check (dry), --adopt (identicals), sync (default)
# Quarantines divergents to .quarantine/<host>/<ts>/<path>
exec ~/.omp/scripts/deploy.sh "$@"
@@ -0,0 +1,2 @@
# Fix nvidia-modeset semaphore deadlock with niri
nvidia-modeset modeset=1
@@ -1 +0,0 @@
Git operations tailored for OMP environment. Addresses dirty `agent/memories/` tracking pitfalls, implements stash-before-checkout protocol, and standardizes PR creation in dank/command-center.
@@ -1,8 +0,0 @@
#!/usr/bin/env bash
# Safely checkout main in OMP
if [ -n "$(git status -s agent/memories/)" ]; then
git stash
echo "Stashed dirty agent/memories/ files."
fi
git checkout main
git pull origin main
@@ -1,5 +0,0 @@
# PR Branch Convention
- Branch: pr/fix-models
- Target: main
- Strategy: Single commit, clean history
- Workflow: Feature -> PR -> Squash/Merge
@@ -1 +0,0 @@
Handles dual config synchronization, Ki-style context sizing, and validation for Frank's OMP model definitions. Covers lock-step editing of models.json and models.yml, contextWindow/maxTokens mirroring, and FLM WebP constraints.
@@ -1,4 +0,0 @@
{
"contextWindow": 204800,
"maxTokens": 204800
}