chore(memory): snapshot auto-learned memory and renamed workstation skills
--home-blank-.omp--: MEMORY.md +140 / learned.md / memory_summary.md / raw_memories.md +1002 rewritten by auto-learn after the model rename, frank-medium split-balance and bottleneck studies. Skills renamed to single-topic buckets: dotfile-git-workflow -> ghostty-text-aa + niri-display-rotation + noctalia-theme, handy-service-mgmt -> handy-flm-inference, inference-runtime -> llama-cpp-parallelism. --home-blank-Projects-serverAppConfig--: 38 new rollout summaries, raw_memories.md/MEMORY.md refreshed, skills re-bucketed (bench-protocol, llm-fleet-model-swap, rootless-quadlet-log-retrieval, orchestration-quadlet). Per-worktree bucket (wt-20261006-122204) is now gitignored, not committed.
This commit is contained in:
1 parent
a34322aeb0
commit
5b08896e4e
72 files changed
+1461
-175
No files matched your search
@@ -1 +0,0 @@
|
||||
Standardized workflow for dotfile configuration management, Git state verification, LFS-aware pushing, and application reloading.
|
||||
-1
@@ -1 +0,0 @@
|
||||
Updated niri layouts to match noctalia palette and IPC commands.
|
||||
-1
@@ -1 +0,0 @@
|
||||
git add $1 && git commit -m "$2" && git push
|
||||
-1
@@ -1 +0,0 @@
|
||||
pgrep ghostty | while read pid; do /usr/bin/kill -USR1 "$pid"; done
|
||||
-1
@@ -1 +0,0 @@
|
||||
freetype-load-flags = hinting,light
|
||||
-1
@@ -1 +0,0 @@
|
||||
:root { --accent: #b267e4; }
|
||||
@@ -0,0 +1,13 @@
|
||||
# Ghostty Text AA Fix
|
||||
|
||||
Ghostty font AA is controlled by `freetype-load-flags`, NOT `font-hinting`.
|
||||
|
||||
## Fix
|
||||
- Replace `font-hinting = hinting` with `freetype-load-flags = hinting,light` in `~/.config/ghostty/config`.
|
||||
|
||||
## Reload
|
||||
- Send USR1 to all ghostty processes: `pgrep ghostty | while read pid; do kill -USR1 "$pid"; done`
|
||||
|
||||
## Related
|
||||
- Alacritty text AA: `font.antialias=false` in its config.
|
||||
- Noctalia crispness: niri compositor AA only affects corner rounding (`niri_rounding_alpha()`); text AA is client-side. No nearest-neighbor resample knob in this build.
|
||||
@@ -0,0 +1,17 @@
|
||||
# Handy + FLM NPU Inference
|
||||
|
||||
## Handy app
|
||||
- Binary: `/usr/bin/handy`
|
||||
- Start: `hub op=start` with `application=/usr/bin/handy`, `pty=true`, `persist=true`, `ready={log:'.*', timeout:10}`
|
||||
- Result: persistent daemon, 69 catalog models seeded
|
||||
- Restart: `pkill -f handy`, then re-run hub op=start
|
||||
|
||||
## FLM NPU (Dankclaw)
|
||||
- gemma4-it:e4b on port 7771
|
||||
- Accepts PNG/JPEG; rejects WebP (convert first with ImageMagick `convert`)
|
||||
- Requires `thinkingLevelMap` in models.json
|
||||
- FIFO queue; ~7-11s model switch
|
||||
- Pitfall: missing `.xclbin` symlinks under `~/.config/flm/xclbins/` cause failures
|
||||
|
||||
## Related
|
||||
- Dotfile repo: `~/.omp` (Gitea `dank/command-center`, 192.168.0.143:3000)
|
||||
@@ -1 +0,0 @@
|
||||
Lifecycle and dependency management for the handy daemon, covering hub deployment, model seeding, and /dev/input permission fixes.
|
||||
-1
@@ -1 +0,0 @@
|
||||
Resolved 'permission denied opening device node(s)' by adding user to 'input' group (660 perms). Sudo requires PTY.
|
||||
-1
@@ -1 +0,0 @@
|
||||
sudo usermod -aG input blank
|
||||
-1
@@ -1 +0,0 @@
|
||||
pkill -f handy; hub op=start, application=/usr/bin/handy, pty=true, persist=true, ready={log:'.*', timeout:10}
|
||||
-1
@@ -1 +0,0 @@
|
||||
application: /usr/bin/handy\npty: true\npersist: true\nready: {log: '.*', timeout: 10}
|
||||
@@ -1 +0,0 @@
|
||||
Manages frank-large/small inference routing, FLM NPU constraints, and Halogen runtime kwargs for thinking block preservation.
|
||||
-1
@@ -1 +0,0 @@
|
||||
Pinned sampler: temp=1.0, top_p=0.95, top_k=20. Live config read on next cycle.
|
||||
-1
@@ -1 +0,0 @@
|
||||
ls -l ~/.config/flm/xclbins/ | grep -E '\.xclbin' || echo 'Missing symlinks'
|
||||
-1
@@ -1 +0,0 @@
|
||||
curl -s localhost:7771/status | jq .queue
|
||||
-1
@@ -1 +0,0 @@
|
||||
enable_thinking: true\npreserve_thinking: true\nreasoning_effort: medium
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"thinkingLevelMap": true, "gemma4-it": "e4b"}
|
||||
@@ -0,0 +1,23 @@
|
||||
# llama.cpp Multi-GPU Parallelism
|
||||
|
||||
## Split modes (--split-mode / -sm)
|
||||
- **layer** (default): Pipeline parallelism. Each GPU holds a contiguous layer slice. Token flows sequentially through GPUs. Minimizes inter-GPU data movement; tolerates slow interconnects (PCIe fine). Best for prefill and fitting large models. Weakness: needs many tokens to keep pipeline full, poor low-batch latency.
|
||||
- **tensor** (experimental): True tensor parallelism. Splits each layer's weights AND KV cache across all GPUs via 'meta device', doing cross-GPU all-reduce per layer (NCCL). Minimizes latency, parallelizes any workload size. Heavily bottlenecked by interconnect speed (wants NVLink + NCCL). Best for fast token generation.
|
||||
- **row** (deprecated): Row-split dense weights only. Predecessor to tensor; comparatively poor performance.
|
||||
- **none**: Single GPU, selected via --main-gpu.
|
||||
|
||||
## Key constraints on tensor mode
|
||||
- Requires flash attention ON (-fa on)
|
||||
- KV cache must be non-quantized: f32/f16/bf16 only
|
||||
- NOT implemented for: MoE/hybrid, Mamba/SSM, and several other architectures (hard-fails with SPLIT_MODE_TENSOR not implemented)
|
||||
- --fit is disabled; must size --ctx-size / --parallel manually
|
||||
|
||||
## Separate axis (NOT model parallelism)
|
||||
- **--parallel / -np**: Number of concurrent server slots (each with own KV cache). Serving-level concurrency/batch parallelism. On single GPU this is the main throughput knob.
|
||||
- **CPU+GPU offload** (--n-gpu-layers, --n-cpu-moe): Hybrid inference when model exceeds VRAM. Device-distribution strategy, not 'parallelism' in the strict sense.
|
||||
|
||||
## What does NOT exist in llama.cpp
|
||||
- No first-class context/sequence parallelism mode (unlike vLLM/TensorRT-LLM). If that term is applied to llama.cpp, it's loose third-party language.
|
||||
|
||||
## Hardware context (this environment)
|
||||
- Single RTX 4070 Max-Q (~12 GB VRAM). Multi-GPU split modes do not apply. Relevant knobs: --parallel for concurrency, CPU+GPU offloading for models >12 GB.
|
||||
@@ -0,0 +1,26 @@
|
||||
# Niri Display Rotation Workflow
|
||||
|
||||
Used to rotate/flip external monitors in portrait mode.
|
||||
|
||||
## Workflow
|
||||
1. `niri msg outputs` — capture current transform, logical size, scale, position.
|
||||
2. Read `~/.config/niri/cfg/display.kdl`.
|
||||
3. Edit `transform` values.
|
||||
4. `niri validate -c ~/.config/niri/cfg/display.kdl` — dry-run validation.
|
||||
5. `niri msg action load-config-file` — hot-reload (no restart).
|
||||
6. `niri msg outputs | grep -E '^Output|Transform|Logical|Scale'` — verify.
|
||||
7. `git add && git commit && git push` in dotfiles repo (`~/.omp`).
|
||||
|
||||
## Critical pitfall
|
||||
- In portrait, "flip 180°" = swap `90° counter-clockwise` ↔ `270° counter-clockwise`.
|
||||
- Setting `transform "180"` on a portrait monitor kicks it to landscape-upside-down.
|
||||
- Niri transform values are absolute, NOT modular arithmetic.
|
||||
|
||||
## Verified layout (blankpad, 83c9c92)
|
||||
- DP-2: x=0, portrait 1200x1920, transform 90° CCW, scale 1
|
||||
- HDMI-A-1: x=1200, portrait 1200x1920, transform 270° CCW, scale 1
|
||||
- eDP-1: x=2400, 1536x864, scale 1.25
|
||||
|
||||
## Config split
|
||||
- `~/.config/niri/cfg/*.kdl` (Noctalia-style includes).
|
||||
- Display config lives in `~/.config/niri/cfg/display.kdl`.
|
||||
@@ -0,0 +1,21 @@
|
||||
# Noctalia Theme Editing
|
||||
|
||||
Noctalia is a Niri-based DE (`/usr/bin/noctalia`).
|
||||
|
||||
## Config locations
|
||||
- Main config: `~/.config/noctalia/config.toml`
|
||||
- Niri config: `~/.config/niri/cfg/noctalia.kdl`
|
||||
- IPC: `noctalia msg <command>` (direct, not qs wrapper). Key cmds: panel-toggle, session, lock, launcher.
|
||||
- App templates: `/usr/share/noctalia/assets/templates/` (gtk, ghostty, alacritty, wezterm, helix, btop, starship, qt, cava, scroll, mango, umbriel, foot, emacs, kitty, etc.)
|
||||
- Palette generation: `noctalia theme [image]`
|
||||
- GTK accent default: #b267e4
|
||||
|
||||
## Changing an accent (e.g. yellow → red)
|
||||
1. Locate and edit the generated Noctalia palette/theme source BEFORE hardcoding per-app colors.
|
||||
2. If Ghostty is set to `theme = noctalia`, direct terminal color overrides are less durable than updating the theme itself.
|
||||
3. Terminal text color must match the chosen accent in BOTH the Noctalia palette and any terminal-specific override.
|
||||
4. Hot-reload: `noctalia msg action load-config-file` (or equivalent config load action).
|
||||
|
||||
## Related
|
||||
- Niri display config: `~/.config/niri/cfg/display.kdl`.
|
||||
- Dotfile git workflow: `git add && git commit && git push` in `~/.omp`.
|
||||
Reference in new issue
Block a user