summaryrefslogtreecommitdiffhomepage
path: root/.gitignore
AgeCommit message (Collapse)Author
2026-06-14spike(kernel): RML compositing live + interactive on the real DRM seatAdam Malczewski
Iterated the Phase-0 spike from "self-verified headless" to "works on the CF-AX3": a live, 3D-tilted client window you can type into, with a visible cursor and pointer/touch routed through the transform. Real-seat confirmed. Safety / escape (a black-screen lockout had forced reboots): - session escape hatch on --run (mirrors src/input.cpp): Esc + Ctrl+Alt+Backspace quit, Ctrl+Alt+F1..F12 VT-switch, SIGINT/SIGTERM clean-terminate. - 15s DEAD-MAN auto-exit, reset by pressing P (also a keyboard-liveness probe); UNBOX_SPIKE_TIMEOUT overrides. Guarantees the spike can never lock the machine. - persistent crash-survivable log at $HOME/rml-spike.log (UNBOX_SPIKE_LOG), fflush+fsync per line (was on tmpfs /tmp -> lost on reboot); loud diagnostics for backend/modeset/client-connect/map/import. Black screen / no window fixes: - present path works on real DRM+gles2 (blue bg + marker confirmed on panel); dark-blue clear + marker rect make "empty vs not-presenting" diagnosable. - xdg wired from new_toplevel/new_popup (was new_surface -> no role -> no configure -> client never mapped); foot now maps as a live surface element. - WAYLAND_DISPLAY exported so spawned clients connect. Interactivity: - keyboard focus enter + key forward to the focused client (was never sent without a pre-existing keyboard device); typing reaches foot. - visible wlr-plane cursor (xcursor theme load + set; never drawn into RmlUi). - pointer + touch hit-tested via RmlUi pick through the 3D transform, mapped to surface-local, forwarded via wl_seat (criterion-3 pointer confirmed at edges). Live update loop (was frozen on frame #1): - send wlr_surface_send_frame_done to all mapped surfaces+subsurfaces each frame (client lives as an imported texture, not a wlr_scene node). - re-import the surface's CURRENT buffer per commit, gated on the surface commit SEQUENCE not the buffer pointer (foot recycles a buffer pool -> same pointer, new contents); double-buffered wlr_buffer lock/release so the client is never starved. reimports now track commits ~1:1 (was capped 3:1). --verify ALL PASS (criteria 1-7), kernel suite green, build + build-asan clean. Spike target stays build_by_default:false, out of the shipped binary.
2026-06-14packaging: remote-build helpers (distcc offload + remote pkg build)Adam Malczewski
Transparent distributed compilation: setup-distcc.sh configures ccache (prefix_command=distcc) + ~/.distcc/hosts locally and a locked-down distccd on a remote builder, so a plain ninja/meson test offloads compiles automatically and falls back to local when the remote is down. build-remote.sh (renamed from the machine-specific build-remote.sh) builds + installs the pacman package on the fast box. start-unbox now takes its wallpaper from $HOME/.config/unbox/wallpaper (or $UNBOX_WALLPAPER) instead of a hardcoded filename. Machine/network specifics (hosts, private IPs) are NOT committed: the helpers read packaging/remote.local (gitignored); packaging/remote.local.example is the committed template with setup instructions for a new network.
2026-06-12Set up the agent harnessAdam Malczewski
Constitution (AGENTS.md), orchestrator workflow with the header-contract read rule and harness-growth duties (ORCHESTRATOR.md), wlroots-seeded glossary, 4 safety reflexes, owner-agent briefs, 3 skills, and the living plan (notes/plan.md) with hardware-verified facts, settled decisions, and the slice 1-9 roadmap (tasks.md). Slice 0 done; next: toolchain bootstrap.