Session Handover — 2026-09-02

For the next agent

Long multi-thread homelab session on telep-mainframe. Most work is done and verified; the headline open items are: (1) the AI image-editor is designed & approved but NOT built, (2) you must add the bambuddy MCP endpoint to Aperture, and (3) the NVIDIA 610 driver fix needs time to prove it stopped the crashes. Pull deeper context via the historian; the per-topic vault notes are linked below.

Status: Between tasks. Box healthy on the new driver as of ~05:28.


What we accomplished

1. “Terrible internet” → root-caused to the 5G WAN (not DNS)

  • Cause: the NE200 5G FWA CPE (Telekom HU) radio is weak/volatile — RSRP ≈ −102 dBm, SS-SINR collapsing to 5–9.5 dB, downlink pinned at QPSK (≈4× throughput loss). DNS/LAN/router/bufferbloat all ruled out.
  • Built a SINR logger: ~/net-monitor/ne200_signal.py~/net-monitor/rflog.csv, cron */15. Pure stdlib + curl + openssl (no pip). Reads the NE200 web UI.
  • NE200 login envelope reverse-engineered (reusable): POST http://192.168.254.1/cgi_gdpr?9, HTTP/0.9 (curl --http0.9), user=user, AES-128-CBC + RSA-512 “nopadding” sign of key=&iv=&h=md5(user+pwd)&s=, login body {"data":{…},"operation":"cgi","oid":"/cgi/login"} (no trailing CRLF); queries use operation:"gl" with trailing CRLF + TokenID scraped from /.
  • Action items (not done): aim the antenna for SINR; check the Telekom plan for a data cap (the Aug 19–22 all-degraded blocks look like a throttle). See 2026-08-31-episodic-wan-degradation.

2. OpenChatCut (“chatcut”) — deployed

  • AI video editor, containerized behind sidecar node chatcut, https://chatcut.taild4189d.ts.net, MCP surfaced via Aperture (mcp__aperture__chatcut_*, working). Three Host/origin gotchas fixed (Vite allowedHosts, loopback-socket needs --network host, loopback-Host trust patched). See 2026-08-31-openchatcut-chatcut-deploy.

3. OrcaSlicer — deployed then DELETED

  • Stood up a KasmVNC OrcaSlicer sidecar, then tore it out entirely (container/image/~/orcaslicer/tailscaled-orcaslicer node/home-portal tile) in favor of bambuddy’s built-in Slicer API. The old note is marked retired.

4. camwall crash-loop — fixed

  • Killing the North camera left dead panes → camwall-watchdog re-roll loop. Removed the dead panes, then North came back online → restored the 4-pane layout (verified via screenshot: all 4 cams live). Gotcha: a partial (<4) layout exposes the shared uxplay/AirPlay window in the empty area — needs a black backing or fill-screen relayout if cameras are dropped again.

5. Bambuddy buildout — done (see 2026-09-01-bambuddy-slicer-api-pipelines-mcp)

  • Slicer API: bambu-studio-api sidecar (ghcr.io/maziggy/bambu-studio-api, docker compose in /home/levander/slicer-api/, bound 127.0.0.2:3001). Wired via API: use_slicer_api=true, bambu_studio_api_url=http://127.0.0.2:3001.
  • 4 pipelines (H2S, 0.4 mm): PLA / PETG / ABS / PC-FR (ids 1–4). Printer Bambu Lab H2S 0.4 nozzle, process 0.20mm Standard @BBL H2S, filaments Bambu {PLA Basic/PETG Basic/ABS/PC FR} @BBL H2S, bed Textured PEI Plate. Operational notes (chamber/glue/dry/brim) in each pipeline description.
  • Maintenance tracker: 6 H2S tasks assigned to printer id 1 (one due: Lubricate Linear Rails).
  • Telegram notifications: provider → “Telephely biztonsági riasztások” supergroup; test delivered.
  • Bambuddy MCP on the tailnet: bambuddy-mcp (stdio) wrapped by mcp-proxy in /home/levander/bambuddy-mcp/ (container bambuddy-mcp-bridge, --network host, bound 127.0.0.2:8091), exposed via tailscale serve path mount → https://bambuddy.taild4189d.ts.net/mcp (streamable-HTTP). Verified end-to-end.

6. FreeCAD connector — fixed

  • Was down (both connectors Connection refused): the freecad-mcp bridge’s link to freecad:9875 had gone stale after 44 h. Fixed by restarting the freecad + freecad-mcp containers. Now healthy (rpc_server: running).

7. NVIDIA driver update 550.163.01 → 610.57.04 (the crash fix)

  • The box’s chronic crashes (51 total, incl. a Sep 2 04:57 hard-hang) are the nvidia_drm nv_drm_revoke_modeset_permission bug (driver 550.163.01) — 3,738 warnings in the dead boot, comm="Xorg". Zero MCE, zero OOM — it is NOT CPU load and NOT bambuddy (the slicer sidecar has no GPU access; verified Devices=[], no /dev/dri).
  • Updated to nvidia-open 610.57.04 from the NVIDIA CUDA repo (debian13). 595.91.07 was infeasible (hard apt dependency conflict) — 610 was the only clean resolution and is newer/better for the fix.
  • Gotcha: the Debian→NVIDIA-repo package switch dropped the nouveau blacklist → first reboot came up with no GPU (nouveau grabbed the card). Fixed: /etc/modprobe.d/blacklist-nouveau.conf + update-initramfs -u + reboot.
  • Verified after reboot: nvidia-smi = 610.57.04, GPU bound to nvidia, nouveau gone, 0 modeset warnings, camwall (4 panes on GPU) + Frigate (GPU detector:onnx + ffmpeg decode, healthy) + FreeCAD all back.
  • Rollback: the exact 550 package set is saved at /tmp/nvidia-550-rollback.txt (one apt install + reboot).

Where we paused / open items

Not done yet

  1. AI image editor — DESIGNED & APPROVED, NOT BUILT. Decision: Claude edits (not generates) images via an image-editing MCP + a hand-editable canvas (miniPaint-style), self-hosted behind a chatcut-style node. Toolset = deterministic (ImageMagick / Pillow / OpenCV) + non-generative ML transforms (rembg background removal, Real-ESRGAN upscale, SAM segmentation, GFPGAN/CodeFormer, SwinIR). Approach “A” (one service, shared versioned project store so Claude + human edits compose) approved. Node name not chosen; nothing built. This is the main resumable build.
  2. Add the bambuddy MCP to Aperture — point Aperture at https://bambuddy.taild4189d.ts.net/mcp so it surfaces as mcp__aperture__bambuddy_* (like chatcut). Aperture (ai node) is not self-hosted → it can only consume a network MCP endpoint (why we bridged the stdio server).
  3. NVIDIA 610 — prove the fix. Box crashed 51× on 550; watch uptime / dmesg | grep -c nv_drm_revoke_modeset_permission over the coming days. If it holds, the chronic crash is solved.
  4. 5G WAN — aim the NE200 antenna; check Telekom for a data cap.
  5. Flip the crash-cause record — update [[project_telep_mainframe_load_limit]] (auto-memory) + vault to “mitigation applied: nvidia-open 610.57.04 + nouveau blacklist.” (I was wrong all session citing “MCE under all-core load” — the evidence is nvidia_drm; correct the record.)
  6. Minor: vault commit de23601 swept unrelated facekom FKITDEV-8279 WIP into a bambuddy commit — may want to split. And the chatcut/bambuddy /mcp endpoints have no auth of their own (tag:telep ACL is the only gate) — tighten the ACL if owner-only is desired.

Key endpoints, paths & gotchas

Endpoints (tailnet-only): chatcut.taild4189d.ts.net (+/api/external-mcp/mcp) · bambuddy.taild4189d.ts.net (UI) + /mcp · orcaslicer.* removed. Paths on telep-mainframe: ~/net-monitor/{ne200_signal.py,rflog.csv,netlog.csv} · ~/slicer-api/ · ~/bambuddy-mcp/ · /etc/modprobe.d/blacklist-nouveau.conf · /tmp/nvidia-550-rollback.txt. Reusable gotchas: mcp==1.29.1 pin (2.x breaks mcp-proxy + bambuddy-mcp) · NVIDIA-repo install drops the nouveau blacklist · nvidia-open 595 infeasible here → 610 · dev-servers behind tailscale serve hit 3 Host/origin traps (Vite allowedHosts, loopback-socket → --network host, loopback-Host trust) · partial camwall layout exposes the uxplay window.

Related notes: telep-mainframe-handover · 2026-08-31-episodic-wan-degradation · 2026-08-31-openchatcut-chatcut-deploy · 2026-09-01-bambuddy-slicer-api-pipelines-mcp · 2026-09-01-orcaslicer-tailnet-deploy (retired) · tailnet-service-exposure-convention


Continuation prompt (copy-paste to resume)

Pick up the 2026-09-02 homelab session (read projects/homelab/2026-09-02-session-handover.md, and use the historian for deeper context). Priorities: (1) build the approved AI image-editor — Claude edits (not generates) images via an image-editing MCP + hand-editable canvas, deterministic ImageMagick/Pillow/OpenCV + non-generative ML (rembg/Real-ESRGAN/SAM), one service with a shared versioned project store, behind a new chatcut-style sidecar node (need a node name); (2) confirm the bambuddy MCP got wired into Aperture (https://bambuddy.taild4189d.ts.net/mcp); (3) check whether NVIDIA 610.57.04 stopped the crashes (dmesg | grep -c nv_drm_revoke_modeset_permission, uptime). Everything else (bambuddy slicer-api/pipelines/maintenance/Telegram, chatcut, FreeCAD, camwall, driver update) is done & verified.