e586961e0b
ci / rust (push) Has been cancelled
Per the new docs workflow (docs-site = KB layer; repo docs/ keeps design notes): - Add a canonical Status & Progress tracker (status.md): milestones, per-box live state, and a dated progress log — the go-forward place to track progress. - Add setup guides: GNOME/Mutter host (gnome-box — Secure Boot MOK enroll, the libnvidia-gl EGL fix, autologin, screen-lock disable, appliance unit), headless KDE box, and Bazzite host (ujust input group, gamescope session, gotchas). - Roadmap is now canonical in docs-site (synced the skew-handshake section 12 update); removed the repo docs/roadmap.md copy and repointed README to docs-site. - Nav (meta.json) + landing cards updated; site builds (bun run build). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.1 KiB
3.1 KiB
title, description
| title | description |
|---|---|
| Status & Progress | Where the work stands, what's live on each box, and a running progress log. |
The living progress tracker. Milestone-level status lives in CLAUDE.md
and the design in the Implementation Plan; this page is the
current state + a dated log of what landed, kept up to date as work happens. Newest first.
Milestones at a glance
| Milestone | State |
|---|---|
M1 — punktfunk-core + C ABI (protocol · FEC · crypto) |
✅ complete & hardened |
| M2 — GameStream host (Moonlight-compatible) | ✅ working end-to-end; HDR/surround-audio polish open |
M3 — punktfunk/1 native protocol (QUIC control + UDP data) |
✅ full session planes, validated live |
| M4 — native client decode + present (Apple first) | 🟡 stage 1 done (first light); stage-2 presenter next |
Live on the boxes
| Box | Role | Compositor | Notes |
|---|---|---|---|
| home-worker-2 (dev) | KDE/KWin appliance | kwin (headless Plasma) | QEMU VM, passthrough RTX 5070 Ti; serve --native user unit |
| home-worker-3 (GNOME) | GNOME/Mutter appliance | mutter (RecordVirtual) | RTX 4090; autologin GNOME Wayland; serve --native user unit. See GNOME Box Setup |
| home-bazzite-1 | SteamOS-like host | gamescope | host-managed Steam session at client mode. See Bazzite Setup |
All three appliances advertise over mDNS (_punktfunk._udp) and require PIN pairing by default.
Progress log
2026-06-12
- Wall-clock skew handshake (
ClockProbe/ClockEcho, 8 NTP rounds afterStart) — makes the client's capture→reassembled latency valid cross-machine. Validated GNOME box → dev box: offset −1.57 ms removed, p50 1.30 ms skew-corrected. (05bc9ab) - Native LAN auto-discovery — host advertises
_punktfunk._udp(TXT: fingerprint, pairing, proto);punktfunk-client-rs --discoverlists hosts. Validated cross-LAN. (4fff464) - Third test box stood up — home-worker-3 (Ubuntu 26.04, RTX 4090, GNOME 50): first GNOME/Mutter
zero-copy streaming on a real desktop; 1 Gbps probe clean (625 MB/5 s,
send_dropped=0). Two physical-NVIDIA gotchas documented in GNOME Box Setup. - Encode|send thread split validated on real NIC (
send_dropped=0at 720p60 / 1080p120). (b295a5b)
Earlier (see roadmap + git log)
- 1 Gbps data plane: batched
sendmmsg/recvmmsg+ microburst-cap paced send thread. - Boot appliance: headless KDE session + host systemd units (no login).
- Speed test + settable bitrate: negotiation + bandwidth probe (host side).
- DualSense UHID + haptics; gamepads live; mic uplink; AV1 + surround (unit/live-capture tested).
In flight / next
See the Roadmap for the ordered list. Near-term:
- True glass-to-glass: Apple client present-stamp (decode→present) + host render→capture term.
- Apple stage-2 presenter (
VTDecompressionSession→CAMetalLayer). - Mandatory PIN pairing + delegated pairing approval; concurrent sessions.
- bazzite kept up to date (currently offline; one rebuild behind).