Commit Graph

  • 8c58afa2ac feat(headless): boot-appliance systemd units (KDE session + host, no login) enricobuehler 2026-06-11 21:16:12 +00:00
  • 2557ce1ee5 docs(roadmap): §11 1 Gbps+ data plane — foundation landed, batched send next enricobuehler 2026-06-11 20:47:36 +00:00
  • b8a33e21a2 feat(1gbps): raise bitrate/probe clamps + socket buffers, count send-buffer drops enricobuehler 2026-06-11 20:45:49 +00:00
  • 902cc162f7 docs(bazzite): join the input group via ujust add-user-to-input-group enricobuehler 2026-06-11 20:32:55 +00:00
  • d39ad478bb docs(roadmap): §9 speed test + bitrate — host/protocol/ABI done, client UI left enricobuehler 2026-06-11 18:52:07 +00:00
  • 7cac1eb663 feat(host): log virtual DualSense pad creation (match the X-Box path) enricobuehler 2026-06-11 18:51:23 +00:00
  • 74819b1be8 feat(punktfunk/1): negotiable encoder bitrate + bandwidth speed-test probe enricobuehler 2026-06-11 18:44:47 +00:00
  • dcb2850c7c fix(apple): drive macOS keyboard from NSEvent (GCKeyboard unreliable) enricobuehler 2026-06-11 18:10:13 +00:00
  • 6425f9995f docs(roadmap): §10 HDR parked (upstream compositor blocker) + Bazzite dynamic-resolution landed enricobuehler 2026-06-11 17:52:57 +00:00
  • c894c6f897 feat(host): host-managed gamescope session at the client's mode (dynamic res + refresh) enricobuehler 2026-06-11 16:14:10 +00:00
  • 76d5e41dc5 chore(web): check in the inlang project_id enricobuehler 2026-06-11 16:28:33 +02:00
  • 1d605fb781 feat(gamepad): controller discovery + client-negotiated pad type + rich DualSense end to end enricobuehler 2026-06-11 16:28:33 +02:00
  • d86896da16 chore(appliance): sysctl drop-in for larger UDP buffers (4K/5K host send headroom) enricobuehler 2026-06-11 13:28:55 +00:00
  • 0f333460ec fix(core): grow UDP socket buffers — fixes 4K/5K video freezing on one frame enricobuehler 2026-06-11 13:28:02 +00:00
  • 634d87ba6c Merge origin/main (tvOS client work) with host EIS/attach + macOS-input fixes enricobuehler 2026-06-11 13:05:02 +00:00
  • 9128bc3836 feat(host): attach to a running gamescope session (Bazzite headless Steam) enricobuehler 2026-06-11 12:55:12 +00:00
  • b6f4164454 fix(core): drop video packets on a full UDP send buffer, don't fail the session enricobuehler 2026-06-11 12:55:12 +00:00
  • a17997bb01 fix(apple): pairing copy points at the web console for the PIN enricobuehler 2026-06-11 14:31:24 +02:00
  • e414ec0895 fix(apple): drive macOS mouse motion/buttons from NSEvent; fix iPad pointer lock enricobuehler 2026-06-11 12:30:19 +00:00
  • ea42fcf15a fix(apple/tvOS): spring-driven slide transition enricobuehler 2026-06-11 14:28:08 +02:00
  • 7655c36f34 fix(apple/tvOS): hand-rolled selection screens — kills the black-text flash in pickers enricobuehler 2026-06-11 14:19:54 +02:00
  • 92933ef46b fix(apple/tvOS): system-style slide for in-stack pushes (swiftui-navigation-transitions) enricobuehler 2026-06-11 14:12:04 +02:00
  • f01b07a973 fix(apple/tvOS): pushed routes instead of modal covers — the Settings-app navigation feel enricobuehler 2026-06-11 14:03:10 +02:00
  • 6e1097da4f fix(inject): self-heal a stale/hung EIS connection + per-kind injection diagnostics enricobuehler 2026-06-11 11:57:09 +00:00
  • 06a2d5e0ca fix(apple/tvOS): system fullscreen keyboard for all text entry — no inline fields enricobuehler 2026-06-11 13:56:39 +02:00
  • f292b3fe3a fix(apple/tvOS): focus-native home grid, separated actions, Form-free dialogs enricobuehler 2026-06-11 13:47:27 +02:00
  • 9e57a5a1ff fix(apple/tvOS): native form controls — pushed pickers, single-pill fields, centered values enricobuehler 2026-06-11 13:38:37 +02:00
  • f7ed87e97f fix(apple/tvOS): opaque material backdrop behind the full-screen covers enricobuehler 2026-06-11 13:26:48 +02:00
  • 7dd479f9e4 fix(apple/tvOS): television-idiomatic chrome — grid action tiles + full-screen covers enricobuehler 2026-06-11 13:22:18 +02:00
  • 75396c20c2 feat(apple/tvOS): parallax app icon + top shelf images from the brand layers enricobuehler 2026-06-11 13:19:06 +02:00
  • 4781933507 docs(roadmap): §9 client→host network speed test (bitrate prerequisite) enricobuehler 2026-06-11 11:14:06 +00:00
  • 609136cd2d fix(inject): make the gamescope EIS injector reconnect robustly across sessions enricobuehler 2026-06-11 11:12:13 +00:00
  • 25b4d4783f docs(apple): README — tvOS target, tier-3 slice build instructions enricobuehler 2026-06-11 13:11:10 +02:00
  • bfd8c7be93 feat(apple): tvOS client — third app target, first-lit in the Apple TV simulator enricobuehler 2026-06-11 13:10:40 +02:00
  • ee12e535ee feat(apple): styling pass — dark-mode accent, recent-host state, glass HUD, security-sheet polish enricobuehler 2026-06-11 12:59:55 +02:00
  • b7a6670b4a feat(apple): brand accent color (#6656F2) via the asset catalog enricobuehler 2026-06-11 12:56:20 +02:00
  • 0b735ac632 fix(apple/iOS): larger host cards — touch-first sizing enricobuehler 2026-06-11 12:52:45 +02:00
  • bce820ec67 fix(apple): title the app "Punktfunkempfänger" — navigation title + window title enricobuehler 2026-06-11 12:49:17 +02:00
  • 154da2dc58 fix(apple/iOS): immersive streaming — edge-to-edge, no status bar, hidden cursor, native default mode enricobuehler 2026-06-11 12:44:29 +02:00
  • 57f7e32c24 docs(roadmap): §8a done (mandatory pairing); split §8b into host+web / peer layers enricobuehler 2026-06-11 10:28:39 +00:00
  • 9a6058cd20 feat(host): §8a — require native pairing by default (serve --open to disable) enricobuehler 2026-06-11 10:23:03 +00:00
  • dbd5c0c105 chore(apple): rebuild app icon from artboard-rect-free layer SVGs enricobuehler 2026-06-11 12:21:20 +02:00
  • f8c2ecf85f feat(web): "Pair a device" card — native pairing from the console enricobuehler 2026-06-11 10:02:33 +00:00
  • 3faec8415a fix(apple/iOS): stock header + edge-aligned host grid — drop the custom title mode enricobuehler 2026-06-11 11:58:54 +02:00
  • 12cf2e4e16 docs: refresh README/CLAUDE status; roadmap pairing-hardening + SudoVDA Windows enricobuehler 2026-06-11 09:54:55 +00:00
  • 19666ba57e feat(host): unified host + native pairing over the management API enricobuehler 2026-06-11 09:50:33 +00:00
  • 5ca860533e refactor(native-pairing): extract shared on-demand arming state enricobuehler 2026-06-11 09:40:33 +00:00
  • fa553b1e2a fix(apple/iOS): action buttons back into one shared glass pill enricobuehler 2026-06-11 11:55:26 +02:00
  • 1d35df201c fix(apple/iOS): inline-large header — title and action circles share the bar row enricobuehler 2026-06-11 11:53:56 +02:00
  • 7c24832ad0 fix(apple/iOS): touch-first control sizing — toolbar circles + large sheet buttons enricobuehler 2026-06-11 11:47:30 +02:00
  • e1af4d57c6 feat(apple): iOS/iPadOS client — touch, pointer lock, shared SwiftUI shell enricobuehler 2026-06-11 11:18:18 +02:00
  • 136390514d build: support FFmpeg 7.x and 8.x; fix RPM spec GPU link deps enricobuehler 2026-06-11 09:12:59 +00:00
  • 12b047b0ae docs(packaging): add end-to-end Bazzite setup guide enricobuehler 2026-06-11 08:40:16 +00:00
  • 59edeedf07 feat(dualsense): Phase C/D/E — virtual DualSense routing + 0xCC/0xCD planes + C ABI enricobuehler 2026-06-11 08:36:12 +00:00
  • e5b15353c7 docs: scope advanced (audio-driven) DualSense haptics — NO-GO for now enricobuehler 2026-06-11 07:52:29 +00:00
  • b26f138699 feat(apple): session audio — host playback + mic uplink, device pickers in Settings enricobuehler 2026-06-11 09:39:08 +02:00
  • 2372b02620 feat(host): virtual DualSense via UHID (hid-playstation) — device + report mapping enricobuehler 2026-06-11 07:27:19 +00:00
  • 3a51551f97 feat(apple): mic uplink + touch events in PunktfunkKit enricobuehler 2026-06-11 09:08:04 +02:00
  • 6575dddac7 fix: keep the workspace green on macOS after the mic/touch/rich-input batch enricobuehler 2026-06-11 09:07:48 +02:00
  • 5f6d2cb88b feat(proto): variable-length rich-input (0xCC) + HID-output (0xCD) datagrams enricobuehler 2026-06-11 06:55:04 +00:00
  • dc375668ee feat: touch input — TouchDown/Move/Up + host libei ei_touchscreen injection enricobuehler 2026-06-10 22:38:44 +00:00
  • e07e359b6d docs: scope Windows-as-host (deferred) + update roadmap status enricobuehler 2026-06-10 22:29:01 +00:00
  • 23bb814bac feat(packaging): Fedora/Bazzite packaging — COPR RPM, bootc image, gamescope-default config enricobuehler 2026-06-10 22:29:01 +00:00
  • 0755c823a5 feat: mic passthrough — client microphone → host virtual PipeWire source enricobuehler 2026-06-10 22:15:07 +00:00
  • f3ff5f648a fix(headless-kde): complete the bare session — export DISPLAY, polkit agent, supervise plasmashell enricobuehler 2026-06-10 21:44:33 +00:00
  • a03aae891e fix(m3): persistent host-lifetime input injector — end the RemoteDesktop portal churn enricobuehler 2026-06-10 21:30:52 +00:00
  • a730ca8557 fix(apple): scroll from trackpads/Magic Mouse — forward NSEvent scrollWheel, drop GC scroll enricobuehler 2026-06-10 23:17:23 +02:00
  • a9d1c16067 feat(apple): client-selectable compositor in the macOS client enricobuehler 2026-06-10 22:51:42 +02:00
  • 6fdf7d1511 feat: client-selectable compositor (protocol → host → client → C ABI → mgmt → web) enricobuehler 2026-06-10 20:37:15 +00:00
  • 75eb8fa0d6 feat(host): KDE-reliability phase 2 — pipeline retry, graceful capture teardown, refresh reconcile enricobuehler 2026-06-10 20:03:11 +00:00
  • a4eacabecd feat(apple): explicit input-capture state machine — no more cursor grabs on window chrome enricobuehler 2026-06-10 22:42:44 +02:00
  • acf44eed5f fix(apple): stop the macOS beep on every keystroke while streaming enricobuehler 2026-06-10 22:03:56 +02:00
  • 0494e0200a feat(apple): adapt the macOS client to ABI v2 — client identity + SPAKE2 PIN pairing enricobuehler 2026-06-10 21:49:36 +02:00
  • 49d31b9cad fix(headless-kde): --no-block the portal restart so bring-up isn't blocked ~30s enricobuehler 2026-06-10 19:33:54 +00:00
  • 9fdc3c3246 feat(headless-kde): reliable bring-up — readiness probe, fix portal ordering/env (roadmap #1 phase 1) enricobuehler 2026-06-10 19:25:52 +00:00
  • aa5cee57bd docs: next-goals roadmap (KDE reliability → options → mic → Bazzite → touch → UHID DualSense) enricobuehler 2026-06-10 19:22:03 +00:00
  • c9ad74a620 fix(web): harden BFF auth — adversarial-review fixes enricobuehler 2026-06-10 18:55:41 +00:00
  • 9856c04b75 feat(web): login-gated BFF auth — sealed session cookie + server-side token injection enricobuehler 2026-06-10 18:43:14 +00:00
  • 7e4ae05944 refactor(web): switch to Bun + Nitro v2 (bun preset) — proper TanStack Start deploy enricobuehler 2026-06-10 17:46:47 +00:00
  • 381b059852 fix(web): add @vitejs/plugin-react — dev mode needs the React Refresh runtime enricobuehler 2026-06-10 17:08:43 +00:00
  • e0b166ad60 feat(web): management console — TanStack Start + orval + shadcn + Paraglide enricobuehler 2026-06-10 17:00:12 +00:00
  • ff4fe197be fix(punktfunk/1): adversarial-review fixes — SPAKE2 pairing, renegotiation hardening, +more enricobuehler 2026-06-10 16:26:48 +00:00
  • 429bd1e6ac Merge branch 'worktree-agent-a6fe98c40d55fd284' into m1-lumen-core enricobuehler 2026-06-10 15:42:48 +00:00
  • 4d26ac5c85 feat: punktfunk/1 — mid-stream mode renegotiation + PIN pairing ceremony enricobuehler 2026-06-10 15:42:29 +00:00
  • 3cc3c02b42 feat(gamestream): AV1 negotiation + 5.1/7.1 surround audio enricobuehler 2026-06-10 15:41:15 +00:00
  • 7381ba8218 feat(vdisplay): wlroots/Sway backend — swaymsg headless output + xdpw chooser enricobuehler 2026-06-10 15:23:28 +00:00
  • 977c792b4b fix: keep the stream view's identity stable across the trust prompt enricobuehler 2026-06-10 16:44:25 +02:00
  • 187c173e01 fix(headless-kde): restart xdg-desktop-portal after kwin comes up enricobuehler 2026-06-10 14:29:01 +00:00
  • 5e77731da0 feat: hosts grid + trust-on-first-use UX + settings pane enricobuehler 2026-06-10 16:15:37 +02:00
  • dc42d6a375 feat: app icon (Icon Composer) + Xcode project settings for it enricobuehler 2026-06-10 16:15:15 +02:00
  • b21fffc3d1 feat: Xcode app project for the macOS client (Punktfunk.app) enricobuehler 2026-06-10 15:50:50 +02:00
  • 9aa2d71f49 fix: hide + freeze the local cursor while streaming enricobuehler 2026-06-10 15:38:03 +02:00
  • bfd64ce871 rename: lumen → punktfunk, everywhere enricobuehler 2026-06-10 13:11:59 +00:00
  • b8b23c8fb2 docs: box setup complete — Mutter + system gamescope + gamepads all live-validated enricobuehler 2026-06-10 12:53:38 +00:00
  • bf8a974e8b feat: M4 stage 1 — the SwiftUI client is real: compiles, tested, first light on glass enricobuehler 2026-06-10 14:38:01 +02:00
  • 520d7342dd feat: M3 — full lumen/1 session planes: audio, gamepads+rumble, pinned trust, persistent listener enricobuehler 2026-06-10 12:26:18 +00:00
  • 3ea096ace9 feat: M4 groundwork — lumen/1 client connector in the C ABI + SwiftUI client scaffold enricobuehler 2026-06-10 07:28:41 +00:00
  • 2b4ffc3518 docs: bring CLAUDE.md up to date (M2 working, M3 validated, what's-left roadmap) enricobuehler 2026-06-10 07:10:59 +00:00
  • 68f2b19cca Merge main (management REST API) into m1-lumen-core enricobuehler 2026-06-10 07:03:41 +00:00
  • 5b0d84acd0 feat: M3 — lumen/1 native streaming: real video at client mode + input over QUIC datagrams enricobuehler 2026-06-10 06:56:47 +00:00