🧭 NeXuS Compass — Gen6 graphics · apk-world hygiene · node-guards · Chromium¶
Stamped 2026-07-20 · Anon shutting down — pick up here
Big session. Fixed the E6520's video/graphics end-to-end (VA-API hardware decode, GL threading, hardware cursors, Chromium GPU-raster garbage), cleaned a partially-broken apk world without a single
--forceor destructive cascade, hardened the apk-sink to tolerate a dirty world, and distilled the whole thing into two universal node tools. Principles: Sane · Simple · Secure · Stealthy · Sustainable · Beautiful (6 now; Sustainable inserted before Beautiful — confirmed by Anon this session).
✅ DONE this session¶
Gen6 graphics — VERIFIED working end-to-end¶
Hardware: Dell E6520, Intel Sandy Bridge / HD Graphics 3000 (SNB GT2, Gen6), crocus, OpenGL 3.3 / Mesa 26.1.1. No Vulkan (ANV needs Gen7+). Single Intel GPU, no NVIDIA.
- VA-API HW video decode now live: installed libva-intel-driver + libva-utils (Gen6 uses the legacy i965 driver — NOT intel-media-driver, which is Gen8+ and silently won't load). vainfo confirms H.264 (baseline/main/high) + MPEG-2 decode (+H.264 encode).
- ~/.config/mpv/mpv.conf: hwdec=no → hwdec=vaapi, vo=gpu. Tested: an h264 940x1280 clip played clean, no garbage, LOW CPU (= real GPU offload). This build has no dmabuf-wl vo — use gpu/gpu-next on Wayland, drm on bare TTY.
- ~/.config/fish/conf.d/nexus-graphics.fish (NEW): exports LIBVA_DRIVER_NAME=i965, MESA_GLTHREAD=true, and CHROMIUM_USER_FLAGS.
- nexus-wayland-launcher.sh: WLR_NO_HARDWARE_CURSORS is now NVIDIA-only → Intel gets hardware cursors. Also added foot --server startup (see below).
- RAM = nothing to do: nexus-dmi-mem.py read it safely → 4 GB ChannelA + 8 GB ChannelB @ 1333 MT/s = dual-channel FLEX (8 GB interleaved full-bandwidth + 4 GB single). 1333 is the SNB max. Fully-symmetric would need 2×8 GB (marginal iGPU gain — not worth $).
Chromium garbage — FIXED (Firefox was always fine)¶
chrome://gpu dump (~/Downloads/about-gpu-2026-07-20*.txt) showed Chromium on ANGLE→OpenGL ES 3.0 on crocus with Rasterization: Hardware accelerated — HW raster on SNB paints garbage. Fix persisted in nexus-graphics.fish:
set -gx CHROMIUM_USER_FLAGS "--disable-gpu-rasterization" (Alpine chromium wrapper appends CHROMIUM_USER_FLAGS — no root). Keeps HW compositing + HW video decode; only raster → CPU. Anon confirmed clean. (Launcher/fuzzel-spawned chromium needs next Wayland session to inherit the env; terminal-launched picks it up now.)
apk world hygiene — 4 errors → 3 benign, NO force, NO cascade damage¶
Root cause of "all sink installs failing": a dirty apk world made apk exit non-zero on every op; the sink misread that as per-package conflict.
- Removed apk-snap (btrfs commit-hook) — root is ext4-on-LVM, so it errored every apk run + spammed subvolume is not a btrfs. Cascaded out snapper + btrfs-progs-libs (dead weight); btrfs-progs tools kept (no btrfs mounts anywhere; sdb1 3.6T unformatted).
- incus flavor collision FIXED: had both incus-openrc (LTS) and incus-feature-openrc installed → both own /etc/init.d/incusd. Removed the mismatched incus-feature-openrc (init for a incus-feature daemon that isn't installed); incus-openrc now owns incusd, matching the installed LTS incus.
- 3 benign collisions LEFT baselined (removing cascades badly): 3proxy-doc⨯libproxy-doc, outils-doc⨯uutils-coreutils-doc, and freeradius-client⨯ppp-radius — the RADIUS one is STUCK because removing freeradius-client cascades to 58 packages (nagios-plugins-all → all nagios plugins + net-snmp). Deliberately not touched.
- Discipline throughout: apk del -s simulate before every delete, never --force (Anon's hard rule: force/override "cripples a system for life").
nexus-apk-sink.sh — HARDENED for a dirty world (backup .bak-20260719_183534)¶
(1) baseline pre-existing apk error-lines via apk add --simulate busybox; (2) flag a pkg as conflict only if it emits MORE errors than baseline (not on exit code); (3) judge install success by apk info -e STATE not exit code. Result: netscanner sink then walked all 33 pkgs, 0 conflict / 0 dropped.
New tools + manifests¶
~/scripts/nexus-py.sh(+.help.md) — uv-powered, narrated Python-env wrapper (run/env/add/info/shell/list/doctor). Kills the venv+activate ritual (fish-safe).uv 0.11.23already installed.~/scripts/nexus-node-guards.sh(+.help.md) — universal "probe-don't-assume" self-correct: guardssnapshots(apk-snap only on btrfs),gpu(install only the mesa-vulkan/VA-API driver the GPU can use; Gen6=no-Vulkan),flavors(warn two-impls-per-slot). Modesreport/apply. Encodes 6 invariants. Fixed a pipe-subshell scoping bug.~/scripts/nexus-dmi-mem.py— SMBIOS Type-17 reader from/sys/firmware/dmi/tables/DMIONLY. Safe replacement fordmidecode -t 17, which HARD-HANGS the E6520 in uninterruptible D-state via/dev/mem(eventimeoutcan't kill it — nearly wedged the box).~/scripts/nexus_netscanner_sink.pkgs(54 pkgs, curated) — installed via the hardened sink.
Also done earlier this session¶
- foot server mode wired into
nexus-wayland-launcher.sh(foot --server) + all terminal keybinds across labwc/sway/wayfire switchedfoot → footclient(incl. sway$term, thegravetdrop dropdown). Cheatsheet updated + corrected (Super+/opens it, notSuper+Space). - nexus-cheatsheet.py rewritten to page through
less -R -F -X(arrows/PgUp scroll,qquits) — old raw key-loop closed on any ESC-prefixed key and couldn't scroll. - NeXuS CLI Arsenal web app brought online:
~/Projects/nexus-arsenal(FastAPI, inventories installed apps + apk enrichment). Ran on127.0.0.1:8080, then0.0.0.0:8080for LAN view. - Principle tagline in
~/claude/char-gen-cli/docs/NEXUS_DARK_STACK_BUILD_GUIDE.md→ canonical 6 (backup.bak-20260720_074350). - Memory:
nexus_doctrine_vocab.md(NEW) — Flame·Wick·PERMITTL·Ghost Gate·Janus·DivaChain·NeXiuM·Narcplonk·Proof-of-Witness·Run-Like-Hell + the 4-phase flow. From the NotebookLM infographics in~/screenshots.
⏳ PENDING doas ops (Anon runs — I never go root)¶
- Optional
i915kernel flags (marginal): addi915.enable_fbc=1 i915.fastboot=1to/boot/extlinux.confAPPEND line + reboot. (I can't edit/boot.) - Nothing else blocking — the apk world is clean-enough (3 benign baselined errors); video is done.
▶️ NEXT / PICK UP HERE¶
- Wire
nexus-node-guards.shinto the golden-ticket installernxs-update-install.sh(0-to-hero) — call it near the end so a fresh node auto-arms the right GPU/VA-API driver, gates apk-snap by FS, and warns on flavor collisions. This is the natural home for the GPU-probe + Gen6 defaults. - Canonical tagline sweep: scripts still use the old 4-word
Sane · Simple · Secure · Sustainable; sweep to the 6Sane · Simple · Secure · Stealthy · Sustainable · Beautiful(Anon confirmed order). Was about to when we stopped — Anon said "condense first" (see Open Decisions). - Condense the Dark Stack Build Guide (1259 lines) — Anon's "lets condense first" was aimed here (or at tagline sweep / my verbosity — CONFIRM which).
- Optional apk polish: drop to 1 benign error by removing the 2 safe doc-collisions —
doas apk del -s 3proxy-doc outils-doc(both pure docs, zero dependents; simulate to confirm no cascade). The RADIUS/nagios one stays baselined. - Arsenal: currently DOWN (died on reboot). Relaunch when wanted:
cd ~/Projects/nexus-arsenal && ./.venv/bin/python app_inventory_web.py --no-prescan(addNEXUS_ARSENAL_HOST=0.0.0.0for LAN — exposes it, no auth). - fish quality-of-life:
abbr -a py 'sh ~/scripts/nexus-py.sh'(offered, not added). - Deferred from 2026-07-17 compass (untouched): first Fossil repo
~/scripts → ~/museum/nexus-scripts.fossil; char-gen copy→commit pilot; optionalnexus-forge.shwrapper; TUI sink install (~/scripts/nexus_tui_sink.pkgs, 125 would-install).
📌 OPEN DECISIONS¶
- What "condense" meant — the build guide, the tagline sweep, or my reply length? (Anon paused here.)
- The 3 benign apk collisions — leave baselined forever (sink handles them) vs trim the 2 safe docs vs (RADIUS) live with it. Leaning: trim the 2 docs, leave RADIUS.
- Central vs project-local venvs —
nexus-pystandardized on project-local<dir>/.venv; the old central~/.venv/{dank,caelestia,nexus-hydra}still exist. Converge later? - RAM — leave 4+8 flex (fine) vs buy a 2nd 8 GB for symmetric (marginal). Recommend leave.
🧹 CLEANUP / STATE¶
- Everything backed up with
.bak-<timestamp>(mpv, launcher ×2, sink, cheatsheet ×3, 3 compositor configs, the build guide). No deletions. No secrets touched. Nothing committed/pushed. apk fix -swill show 3 benign errors going forward — EXPECTED (the doc/RADIUS collisions), harmless, baselined by the sink. btrfs snap spam is gone.- Reports filed (all per-task): sink-hardening, apk-hygiene, gen6-graphics (+verified), guards+dmi, chromium-fix, principle-tagline, plus earlier cheatsheet/nexus-py/arsenal/netscanner-sink.
~/scriptsaction report ~48 entries. dmidecode -t 17/ anything reading/dev/memHARD-HANGS this box — usenexus-dmi-mem.pyinstead. Don't retry dmidecode.pkill -f <pattern>matching its own cmdline trips a sandbox exit 144 (self-kill) — usepgrep/targeted PIDs; don't chain pkill with other output.- Bare-TTY note: currently in a Wayland session (post-reboot). Earlier bare-TTY audio fix (
XDG_RUNTIME_DIR) is inconf.d/nexus-xdg-runtime.fish.