# NEXT — perf-opt closeout COMPLETE (2026-08-31); #610 open-terminal fleet DONE ## 2026-09-05 morning — 24x7 RTMP desktop stream, client side DONE (#798) - Built + UAT PASS against the LIVE desktop (logs/19-rtmp-uat.out): h264+aac 1920w ~30fps, 187% of the 2-core ukrrs-rt.slice fence, self-heal (kill ffmpeg -> respawn -> stream back) proven. Frames captured + luma-verified. Loopback receiver ukrrs-ultix-rtmp-rx UP (mediamtx 1.20.1, 127.0.0.1:1935 only). - HUMAN OWES (one command, installs the systemd service + creds file): `cd ~/projects/ultix && ./18-rtmp-stream.sh` then watch locally: `ffplay rtmp://127.0.0.1:1935/live/desktop` - Cloudron cutover when ready: paste ingest URL+key into ~/.creds/rtmp-stream.env, `systemctl restart ukrrs-rtmp-stream`. - Limits + tuning record: STREAMING.md (2560w veryfast does NOT fit the 2-core fence until #601; x11grab GetImage caps ~20 delivered fps). ## 2026-09-05 early AM — post-update-reboot RDP outage FIXED (#611) - Two reboot-triggered killers: waitforx RandR race/empty-argv (shim at /usr/lib/x86_64-linux-gnu/xrdp/waitforx, pristine = waitforx.real) and 90xbrlapi foreground hang (hook disabled). Re-apply after xrdp/brltty package upgrades: sudo ./17-fix-rdp-postupdate.sh - new_cursors=false live (cursor black box; pairs with #631 core cursors). - LESSON: never bounce the xrdp front-end while a session lives — sesman orphans the record and the next login spawns a SECOND KDE session on the shared user bus (dual-plasma conflict). Recovery = kill all session processes, verify zero plasma, reconnect once. - Human UAT: desktop confirmed working post-fix; cursor-box verdict pending. ## Tonight (2026-08-31 late, crush had the con) - Agent-stack relaunchers REMOVED (6-): no screen/crush sessions auto-start on reboot, any account. Backups: removed-agent-stacks/. - Open Terminal fleet LIVE (#610): 9 accounts, tailscale-only 100.101.187.119:30000-30008, systemd open-terminal@, keys in /etc/ukrrs/open-terminal/ + ~/.creds/open-terminal.env. Ops note: OPEN-TERMINAL.md. UAT PASSED (9-uat-openwebui.out). - 22:00 night flip verified live (see TRACKING decisions). - HUMAN OWED: wire production OpenWebUI per OPEN-TERMINAL.md. The openwebui CONTAINER on this box (v0.3.10, :3000) is too old — upgrade to 0.11.x first. Cloudron prod (0.11.1) is fine. - Multiqueue bounce DONE + VERIFIED (2026-09-01 morning audit): ens18 Combined 4/4, ens19 2/2; 4-host-netcheck.sh sweep clean (qm config live, pending empty, bounce 22:51->22:53). Full stack healthy post-boot. - 2026-09-01: night window now 22:00-07:00 (day-flip timer moved to 07:00). ## Final state — nothing owed (perf pass) - All guest tuning live and verified (see 16:04-16:15 pass below). - Host flags live: ssd=1/discard (ROTA=0), iothread, onboot=1, startup order=10, cpuunits 9000/50, ide2 gone. - Net multiqueue: DONE + verified 2026-09-01 (bounce 22:51->22:53; ens18 4/4, ens19 2/2). 5-activate-multiqueue.sh is historical record. - 2026-09-01: microvm tooling LIVE (#615: microvm CLI, qemu-microvm engine, per-user tap pools + NAT; firecracker blocked by nested-KVM caps until #601 hardware) + REBUILD.md/docs/state capture landed. - Gateway boot-race + live-restore endpoint loss: permanently fixed by ukrrs-gateway-ensure unit (enabled, both lanes). - Root cause of the 15:59 no-op: the script copy executed then predates the queues= fix (silent same-value rewrite); current config verified correct. ## Verified live after the 16:01 bounce (all read-only from the guest) - Disks: ROTA=0, discard 4K/1G on sda+sdb+sdc → ssd=1/discard=on ACTIVE ✅ - Kernel: bbr+fq, 16M socket buffers, dirty_bytes 1G/256M, min_free 384M, aio 1M, inotify 512/1M, port range 10240-65535, slow_start_after_idle=0, tcp_tw_reuse=1, THP=madvise, DefaultLimitNOFILE 65536 ✅ - Mounts /,/data1,/data2 = noatime; swap sda5 prio -2 unused ✅ - Units: all ukrrs slices + day/night + psi + builder-prune + thp units installed and enabled; PSI textfile writing (16:06) ✅ - Docker: daemon.json fully live (live-restore, log caps 20m×3, 172.16/12 pools, metrics :9323); 21 containers up ✅ - Desktop: sddm autologin worked (Relogin=true), session alive on seat0/tty2, greeter burn GONE ✅ - Gateway prod was DOWN at boot (bind race + live-restore endpoint loss) → recovered via compose --force-recreate; /status = mode normal, serving ✅ ## Nothing owed. Optional sanity check any time (crush can ssh now): ~/projects/ultix/4-host-netcheck.sh ## Noted, no action taken - mopac-demo/mcli fake containers: restart=no, exited at the first bounce, left down (test stubs; your call). - Prometheus/harness daemons not deployed here yet (that is OPT-9's wiring). ## HARDWARE SLIPPED TO ~OCT 2026 (ruling 2026-08-31) - PRESUME 8 vCPU / 48G on this VM until the #601 window: interim fences (accounts 3G/4.5G) and the daynight interim values ARE the operating config; the commented post-upgrade block stays dormant. - Gateway cpuset hard reservation (16-17) waits for the window → the compose cgroup_parent wiring is THE starvation fix meanwhile (ticketed). - q35 / 20 vCPU / 128G / GPUs / USB3 reseat / NFS-outage-for--02 all move to the same October window (#601 → version october-2026-window, due 10-31; #606). - Fri 2026-09-04 = #609: troubleshooting-only outage (USB SDR reseat + zero-cost socket/PSU/BIOS checks). Host down ⇒ this VM down, auto-starts via onboot=1; gateway auto-recovers (validated 2026-08-31).