Skip to content

Releases: DRHATL95/kite

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 20:14
92bc22e

Stable release v1.0.0 — changes since v0.5.0

What's changed

  • chore(release): bump version to 1.0.0 (#54) (2f20987)
  • feat(connection): connect watchdog + splash Cancel so connects can't hang (#53) (80876e6)
  • chore(rebrand): retire legacy token path + rename signing-key doc (#52) (86037c0)
  • chore(rebrand): finish Kite rename with a one-time settings migration (#51) (fbf794b)
  • chore(repo): rename default branch master -> main; pin Dependabot to dev (#39) (99c100b)
  • ci: add PR test workflow (frontend check+vitest, cargo test) (7c3fc62)
  • chore(repo): add MIT LICENSE + branded social-preview image (b1add34)
  • docs(readme): add Download section, fix rebrand + broken links, add disclaimer (7682db8)
  • feat(about): show release notes / version history from GitHub releases (2a91281)
  • feat(theme): default to Midnight (cyan/blue) to match the Kite brand (60af426)
  • ci(release): disable Linux AppImage build for the 1.0 Windows-first phase (708112c)
  • feat(hud): gate the diagnostics HUD behind a setting (on nightly / off stable) (e194fba)
  • fix(input): unmap backtick from Guide so it does not fire on HUD toggle (f0e768b)
  • fix(hud): stop each_key_duplicate crash that blocked the HUD from opening (6ad1670)
  • refactor(hud): drop the redundant top-right "` HUD" hint, keep the button (f1e2ccb)
  • fix(hud): open the panel reliably — internal $state, not unbound $bindable (9e4da91)
  • feat(settings): mount SettingsView from ConsoleList, drop SettingsModal (6b3cd78)
  • feat(settings): full-window SettingsView shell (nav + content pane) (af6e072)
  • feat(settings): per-category settings components (a61362b)
  • feat(settings): pure category model for the settings view (bf66df8)
  • fix(splash): make the audio-only "video" step legible (opacity 0.35 -> 0.55) (61b8db7)
  • fix(window): allow window.destroy so close quits when tray setting is off (f740799)
  • chore(gitignore): ignore local dev-workflow docs (specs/plans) (df3f8d8)
  • feat(tray): always-on system tray with Show/Quit + restore-on-click (4ec2658)
  • feat(window): wire close-to-tray + settings toggle + hide capability (15c56a2)
  • feat(window): pure close-to-tray decision + window glue (6806131)
  • feat(settings): add minimize-to-tray preference (default off) (84b7bfc)
  • fix(splash): gray out the video step in audio-only mode (99bc285)
  • fix(hud): theme-adaptive HUD toggle pill background (light-theme contrast) (b7b9d97)
  • fix(stream): hide Fix Video / Clip / Immersive in audio-only mode (a67e627)
  • fix(rebrand): remaining "Xbox Remote" product strings -> Kite (#28) (84b0d30)
  • ci(release): consolidate to single public repo (drop cross-repo publish) (#27) (9979dbb)
  • rebrand: Xbox Remote -> Kite (name, icon, identifier, crate) (#26) (e73b5b8)
  • feat(stream): audio-only mode (decline video for real savings) (#25) (eda8a8d)
  • feat(input): wire keyboard-as-gamepad into the live input path (#24) (b534092)
  • docs(rtc): handoff — Phase 6 merged, PR #20 viewport fix, PAUSED present-gap (#21) (6ca1953)
  • ci(release): build nightly from dev; master becomes release-only (#23) (702e0d1)
  • chore(deps): bump rustls-webpki from 0.103.8 to 0.103.13 (#2) (906a2c3)
  • chore(deps): bump openssl from 0.10.75 to 0.10.81 (#1) (118ba47)
  • fix(auth): surface sign-in failures instead of silently hanging (#22) (70acbb6)
  • fix(rtc): set GL viewport each render so native video isn't black until resize (#20) (1756a28)
  • feat(rtc): Phase 6 live-validation hardening — reparent, perf, volume (6aa5626)
  • fix(rtc): harden Phase 6 native renderer per PR review (bc68446)
  • fix(rtc): wire body.native-render + transparent native stage backgrounds (Phase 6 final-review) (b7df9fb)
  • feat(rtc): Stream.svelte native branch + window-close engine teardown (6c.10) (178ad9d)
  • feat(rtc): rtc_connect lifecycle + RtcEvent forwarding to the webview (6c.9) (9170682)
  • feat(rtc): native clip path via rtc_save_clip (6c.8) (c9a8a66)
  • fix(rtc): init() falls back to browser path if the native probe throws (6c.7 fix) (e57729f)
  • feat(rtc): deterministic native/browser backend selection (6c.7) (491cdfa)
  • feat(rtc): NativeConnection adapter (event mapping + input + clip) — TDD (6c.6) (747313f)
  • test(rtc): cover the InputEmit→bytes dispatch via encodeInputEmit (6c.5 fix) (1b66ed2)
  • refactor(rtc): GamepadPoller emits tagged input intent (browser byte-identical) — TDD (6c.5) (2c707e8)
  • feat(rtc): native stats mapping (mapStats + completeSnapshot) — TDD (6c.4) (df616f3)
  • refactor(rtc): extract ConnectionBackend interface; ConnectionManager implements it (6c.3) (2458261)
  • feat(rtc): typed rtc_* ipc wrappers + rtc_event subscription (6c.2) (bb9cfa8)
  • feat(rtc): rtc_* command surface + AppState handle field (6c.1) (d736ac9)
  • docs(rtc): Phase 6c detailed plan (IPC + frontend, 10 tasks) (286fcc1)
  • spike(rtc): render-mount on the Tauri window (GtkOverlay+GLArea, transparent) — Linux-validate (6b.B2/B3) (617c10c)
  • feat(rtc): extract reusable GtkGlRenderer from render_live (6b.B1) (87a6218)
  • feat(rtc): thread play_path through spawn + signaling.create_session (6a.6) (ac4a919)
  • feat(rtc): Disconnected is terminal-only; transient drops emit Reconnecting (6a.5) (0b8a3ae)
  • feat(rtc): RequestKeyframe command + RtcHandle::request_keyframe (6a.4) (0d98584)
  • feat(rtc): send client-metadata when the input channel opens (6a.3) (556e294)
  • refactor(rtc): RtcHandle::take_events splits the event stream from the handle (6a.2) (c7816d1)
  • build(rtc): feature-gate GTK/render deps as optional linux deps (Phase 6 6a.1) (b506646)
  • docs(rtc): Phase 6 implementation plan (6a detailed, 6b spike, 6c interfaces) (00b8ce8)
  • docs(rtc): Phase 6 design (rev.2) — Tauri integration, post-critique re-sequencing (6854e1e)
  • test(rtc): assert nonzero-bitrate stats + a muxable clip in live E2E (999f3fb)
  • test(clip): cover non-keyframe-first guard for mux_opus; mkdir before mux (e9d16fb)
  • feat(clip): Opus-direct MP4 mux + save_assembled_clip (TDD) (43af4fa)
  • feat(rtc): feed clip ring from live AUs + Clip command/handle (ca83fdc)
  • feat(rtc): log idle-warning pulse + keepalive-stop via tracing (c07e105)
  • fix(rtc): answer idle warning with stick micro-pulse, not a reconnect (2535580)
  • feat(rtc): API keepalive timer + pure stop-condition helper (TDD) (405276f)
  • feat(rtc): drive real stats + media watchdog from the engine loop (fe713a3)
  • feat(rtc): pure MediaWatchdog (keyframe-nudge → reconnect) — TDD (4697ba2)
  • feat(rtc): pure StatsAccumulator (bitrate/fps/freeze) — TDD (f4b63e3)
  • docs(rtc): Phase 5 implementation plan (stats, keepalive, idle pulse, clip) (3818c02)
  • docs(rtc): Phase 4 ✅ complete + live-validated (native GL render of the live game) (47bfac5)
  • feat(rtc): render_live — GL I420→YUV→RGB render of the live Xbox dashboard under a HUD (8c336e7)
  • feat(rtc): engine publishes decoded frames to an optional SharedFrame (c7eb08f)
  • feat(rtc): SharedFrame cross-thread render seam (TDD); retire placeholder VideoRenderer (7d56a6d)
  • docs(rtc): Phase 4 implementation plan (Linux GL render of decoded frames) (14d6f60)
  • spike(rtc): Phase 4 render de-risk — GTK GLArea video under transparent HUD, flicker-free (07ce379)
  • test(rtc): add XBOX_E2E_HOLD_SECS hold knob; Phase 3 audio confirmed by ear on real box (425c06f)
  • feat(ui): auto-hide stream controls during active streaming (#17) (48a5d03)
  • docs(rtc): note the WaitingForServerToRegister live-run console gotcha (d1730ca)
  • chore(rtc): add wsl_login helper; mark Phase 3 live-validated on WSL (de5542a)
  • docs(rtc): Phase 3 code-complete (live run pending); handoff notes for cross-OS continuation (0dbf79c)
  • test(rtc): live decode+audio E2E (decoded frames + cpal playback) (115da02)
  • feat(rtc): wire FfmpegDecoder + OpusDecoder + cpal sink into the engine (15c037a)
  • feat(rtc): audio sink — pure AudioRing (TDD) + cpal playback stream (12e2496)
  • feat(rtc): OpusDecoder — Opus → 48k stereo PCM (round-trip TDD) (d84afb9)
  • feat(rtc): FfmpegDecoder — software H.264 → I420 CPU frames (fixture TDD) (8afdbb5)
  • docs(rtc): Phase 3 implementation plan (decode pipeline + audio) (172e07e)
  • docs(rtc): mark Phase 2 complete (live-validated); next is Phase 3 (fa09d60)
  • refactor(rtc): address final review — encapsulate RtcHandle events, wire Reconnecting attempt, note gsToken refresh gap (a54dfa2)
  • test(rtc): live XBOX_E2E engine integration test (connect→handshake→receive) (0b2d255)
  • feat(rtc): str0m engine — sans-IO loop on the seams, handshake, reconnect, input send (6ae9610)
  • feat(rtc): pure connection state machine + 3/6/9s reconnect backoff (TDD) (69f7d53)
  • docs(rtc): Phase 2 plan — rename ChannelLabel::from_str → from_label (e9ba70d)
  • feat(rtc): pure data-channel handshake sequencer (TDD) (72d623d)
  • feat(rtc): XHomeSignaling adapter + pure SessionInfo/ICE mappers (TDD) (5b4f2bb)
  • refactor(rtc): make Transport seam async (tokio UdpTransport) for the sans-IO loop (943fe84)
  • docs(rtc): Phase 2 implementation plan (str0m engine + signaling) (865d526)
  • chore(rtc): phase 0 live de-risk — DTLS-SRTP confirmed; str0m receive→decode spike (c15b93b)
  • refactor: split crate into lib + thin bin so examples/tests can reuse modules (978d1da)
  • docs(rtc): plan status block — Phase 1 complete, next steps on Linux (09770ee)
  • docs(rtc): fix module header to match un-gated default-build compilation (c7cb752)
  • test(rtc): strengthen clip_tap alignment/eviction tests + audio-only case (1294888)
  • feat(rtc): native clip ring + keyframe-aligned assemble (TDD) (2a6f037)
  • feat(rtc): data-channel protocol messages + parser (TDD) (24a7f09)
  • docs(rtc): clarify Y-axis fields are negated by encoder, not the caller (15a1e3a)
  • feat(rtc): byte-exact 38-byte input packet encoder (TDD) (a6e384b)
  • refactor(rtc): compile pure protocol modules without native-webrtc feature (4fc173d)
  • style: apply cargo fmt to previously-unformatted modules (d599069)
  • fix(auth): switch to authorization-code (+PKCE) flow; use owned client ID (121dda3)
  • fix(auth): open sign-in via sanitized backend launcher (AppImage) (0ef9b79)
  • feat(rtc): phase ...
Read more

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 20:13

Stable release v1.0.0 — changes since v0.5.0

What's changed

  • chore(release): bump version to 1.0.0 (#54) (2f20987)
  • feat(connection): connect watchdog + splash Cancel so connects can't hang (#53) (80876e6)
  • chore(rebrand): retire legacy token path + rename signing-key doc (#52) (86037c0)
  • chore(rebrand): finish Kite rename with a one-time settings migration (#51) (fbf794b)
  • chore(repo): rename default branch master -> main; pin Dependabot to dev (#39) (99c100b)
  • ci: add PR test workflow (frontend check+vitest, cargo test) (7c3fc62)
  • chore(repo): add MIT LICENSE + branded social-preview image (b1add34)
  • docs(readme): add Download section, fix rebrand + broken links, add disclaimer (7682db8)
  • feat(about): show release notes / version history from GitHub releases (2a91281)
  • feat(theme): default to Midnight (cyan/blue) to match the Kite brand (60af426)
  • ci(release): disable Linux AppImage build for the 1.0 Windows-first phase (708112c)
  • feat(hud): gate the diagnostics HUD behind a setting (on nightly / off stable) (e194fba)
  • fix(input): unmap backtick from Guide so it does not fire on HUD toggle (f0e768b)
  • fix(hud): stop each_key_duplicate crash that blocked the HUD from opening (6ad1670)
  • refactor(hud): drop the redundant top-right "` HUD" hint, keep the button (f1e2ccb)
  • fix(hud): open the panel reliably — internal $state, not unbound $bindable (9e4da91)
  • feat(settings): mount SettingsView from ConsoleList, drop SettingsModal (6b3cd78)
  • feat(settings): full-window SettingsView shell (nav + content pane) (af6e072)
  • feat(settings): per-category settings components (a61362b)
  • feat(settings): pure category model for the settings view (bf66df8)
  • fix(splash): make the audio-only "video" step legible (opacity 0.35 -> 0.55) (61b8db7)
  • fix(window): allow window.destroy so close quits when tray setting is off (f740799)
  • chore(gitignore): ignore local dev-workflow docs (specs/plans) (df3f8d8)
  • feat(tray): always-on system tray with Show/Quit + restore-on-click (4ec2658)
  • feat(window): wire close-to-tray + settings toggle + hide capability (15c56a2)
  • feat(window): pure close-to-tray decision + window glue (6806131)
  • feat(settings): add minimize-to-tray preference (default off) (84b7bfc)
  • fix(splash): gray out the video step in audio-only mode (99bc285)
  • fix(hud): theme-adaptive HUD toggle pill background (light-theme contrast) (b7b9d97)
  • fix(stream): hide Fix Video / Clip / Immersive in audio-only mode (a67e627)
  • fix(rebrand): remaining "Xbox Remote" product strings -> Kite (#28) (84b0d30)
  • ci(release): consolidate to single public repo (drop cross-repo publish) (#27) (9979dbb)
  • rebrand: Xbox Remote -> Kite (name, icon, identifier, crate) (#26) (e73b5b8)
  • feat(stream): audio-only mode (decline video for real savings) (#25) (eda8a8d)
  • feat(input): wire keyboard-as-gamepad into the live input path (#24) (b534092)
  • docs(rtc): handoff — Phase 6 merged, PR #20 viewport fix, PAUSED present-gap (#21) (6ca1953)
  • ci(release): build nightly from dev; master becomes release-only (#23) (702e0d1)
  • chore(deps): bump rustls-webpki from 0.103.8 to 0.103.13 (#2) (906a2c3)
  • chore(deps): bump openssl from 0.10.75 to 0.10.81 (#1) (118ba47)
  • fix(auth): surface sign-in failures instead of silently hanging (#22) (70acbb6)
  • fix(rtc): set GL viewport each render so native video isn't black until resize (#20) (1756a28)
  • feat(rtc): Phase 6 live-validation hardening — reparent, perf, volume (6aa5626)
  • fix(rtc): harden Phase 6 native renderer per PR review (bc68446)
  • fix(rtc): wire body.native-render + transparent native stage backgrounds (Phase 6 final-review) (b7df9fb)
  • feat(rtc): Stream.svelte native branch + window-close engine teardown (6c.10) (178ad9d)
  • feat(rtc): rtc_connect lifecycle + RtcEvent forwarding to the webview (6c.9) (9170682)
  • feat(rtc): native clip path via rtc_save_clip (6c.8) (c9a8a66)
  • fix(rtc): init() falls back to browser path if the native probe throws (6c.7 fix) (e57729f)
  • feat(rtc): deterministic native/browser backend selection (6c.7) (491cdfa)
  • feat(rtc): NativeConnection adapter (event mapping + input + clip) — TDD (6c.6) (747313f)
  • test(rtc): cover the InputEmit→bytes dispatch via encodeInputEmit (6c.5 fix) (1b66ed2)
  • refactor(rtc): GamepadPoller emits tagged input intent (browser byte-identical) — TDD (6c.5) (2c707e8)
  • feat(rtc): native stats mapping (mapStats + completeSnapshot) — TDD (6c.4) (df616f3)
  • refactor(rtc): extract ConnectionBackend interface; ConnectionManager implements it (6c.3) (2458261)
  • feat(rtc): typed rtc_* ipc wrappers + rtc_event subscription (6c.2) (bb9cfa8)
  • feat(rtc): rtc_* command surface + AppState handle field (6c.1) (d736ac9)
  • docs(rtc): Phase 6c detailed plan (IPC + frontend, 10 tasks) (286fcc1)
  • spike(rtc): render-mount on the Tauri window (GtkOverlay+GLArea, transparent) — Linux-validate (6b.B2/B3) (617c10c)
  • feat(rtc): extract reusable GtkGlRenderer from render_live (6b.B1) (87a6218)
  • feat(rtc): thread play_path through spawn + signaling.create_session (6a.6) (ac4a919)
  • feat(rtc): Disconnected is terminal-only; transient drops emit Reconnecting (6a.5) (0b8a3ae)
  • feat(rtc): RequestKeyframe command + RtcHandle::request_keyframe (6a.4) (0d98584)
  • feat(rtc): send client-metadata when the input channel opens (6a.3) (556e294)
  • refactor(rtc): RtcHandle::take_events splits the event stream from the handle (6a.2) (c7816d1)
  • build(rtc): feature-gate GTK/render deps as optional linux deps (Phase 6 6a.1) (b506646)
  • docs(rtc): Phase 6 implementation plan (6a detailed, 6b spike, 6c interfaces) (00b8ce8)
  • docs(rtc): Phase 6 design (rev.2) — Tauri integration, post-critique re-sequencing (6854e1e)
  • test(rtc): assert nonzero-bitrate stats + a muxable clip in live E2E (999f3fb)
  • test(clip): cover non-keyframe-first guard for mux_opus; mkdir before mux (e9d16fb)
  • feat(clip): Opus-direct MP4 mux + save_assembled_clip (TDD) (43af4fa)
  • feat(rtc): feed clip ring from live AUs + Clip command/handle (ca83fdc)
  • feat(rtc): log idle-warning pulse + keepalive-stop via tracing (c07e105)
  • fix(rtc): answer idle warning with stick micro-pulse, not a reconnect (2535580)
  • feat(rtc): API keepalive timer + pure stop-condition helper (TDD) (405276f)
  • feat(rtc): drive real stats + media watchdog from the engine loop (fe713a3)
  • feat(rtc): pure MediaWatchdog (keyframe-nudge → reconnect) — TDD (4697ba2)
  • feat(rtc): pure StatsAccumulator (bitrate/fps/freeze) — TDD (f4b63e3)
  • docs(rtc): Phase 5 implementation plan (stats, keepalive, idle pulse, clip) (3818c02)
  • docs(rtc): Phase 4 ✅ complete + live-validated (native GL render of the live game) (47bfac5)
  • feat(rtc): render_live — GL I420→YUV→RGB render of the live Xbox dashboard under a HUD (8c336e7)
  • feat(rtc): engine publishes decoded frames to an optional SharedFrame (c7eb08f)
  • feat(rtc): SharedFrame cross-thread render seam (TDD); retire placeholder VideoRenderer (7d56a6d)
  • docs(rtc): Phase 4 implementation plan (Linux GL render of decoded frames) (14d6f60)
  • spike(rtc): Phase 4 render de-risk — GTK GLArea video under transparent HUD, flicker-free (07ce379)
  • test(rtc): add XBOX_E2E_HOLD_SECS hold knob; Phase 3 audio confirmed by ear on real box (425c06f)
  • feat(ui): auto-hide stream controls during active streaming (#17) (48a5d03)
  • docs(rtc): note the WaitingForServerToRegister live-run console gotcha (d1730ca)
  • chore(rtc): add wsl_login helper; mark Phase 3 live-validated on WSL (de5542a)
  • docs(rtc): Phase 3 code-complete (live run pending); handoff notes for cross-OS continuation (0dbf79c)
  • test(rtc): live decode+audio E2E (decoded frames + cpal playback) (115da02)
  • feat(rtc): wire FfmpegDecoder + OpusDecoder + cpal sink into the engine (15c037a)
  • feat(rtc): audio sink — pure AudioRing (TDD) + cpal playback stream (12e2496)
  • feat(rtc): OpusDecoder — Opus → 48k stereo PCM (round-trip TDD) (d84afb9)
  • feat(rtc): FfmpegDecoder — software H.264 → I420 CPU frames (fixture TDD) (8afdbb5)
  • docs(rtc): Phase 3 implementation plan (decode pipeline + audio) (172e07e)
  • docs(rtc): mark Phase 2 complete (live-validated); next is Phase 3 (fa09d60)
  • refactor(rtc): address final review — encapsulate RtcHandle events, wire Reconnecting attempt, note gsToken refresh gap (a54dfa2)
  • test(rtc): live XBOX_E2E engine integration test (connect→handshake→receive) (0b2d255)
  • feat(rtc): str0m engine — sans-IO loop on the seams, handshake, reconnect, input send (6ae9610)
  • feat(rtc): pure connection state machine + 3/6/9s reconnect backoff (TDD) (69f7d53)
  • docs(rtc): Phase 2 plan — rename ChannelLabel::from_str → from_label (e9ba70d)
  • feat(rtc): pure data-channel handshake sequencer (TDD) (72d623d)
  • feat(rtc): XHomeSignaling adapter + pure SessionInfo/ICE mappers (TDD) (5b4f2bb)
  • refactor(rtc): make Transport seam async (tokio UdpTransport) for the sans-IO loop (943fe84)
  • docs(rtc): Phase 2 implementation plan (str0m engine + signaling) (865d526)
  • chore(rtc): phase 0 live de-risk — DTLS-SRTP confirmed; str0m receive→decode spike (c15b93b)
  • refactor: split crate into lib + thin bin so examples/tests can reuse modules (978d1da)
  • docs(rtc): plan status block — Phase 1 complete, next steps on Linux (09770ee)
  • docs(rtc): fix module header to match un-gated default-build compilation (c7cb752)
  • test(rtc): strengthen clip_tap alignment/eviction tests + audio-only case (1294888)
  • feat(rtc): native clip ring + keyframe-aligned assemble (TDD) (2a6f037)
  • feat(rtc): data-channel protocol messages + parser (TDD) (24a7f09)
  • docs(rtc): clarify Y-axis fields are negated by encoder, not the caller (15a1e3a)
  • feat(rtc): byte-exact 38-byte input packet encoder (TDD) (a6e384b)
  • refactor(rtc): compile pure protocol modules without native-webrtc feature (4fc173d)
  • style: apply cargo fmt to previously-unformatted modules (d599069)
  • fix(auth): switch to authorization-code (+PKCE) flow; use owned client ID (121dda3)
  • fix(auth): open sign-in via sanitized backend launcher (AppImage) (0ef9b79)
  • feat(rtc): phase ...
Read more

Nightly 1.0.1-nightly.54

Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Jul 01:51

Rolling nightly built from dev — 1.0.1-nightly.54

What's changed

  • refactor(connmgr): extract ReconnectController (3b0f813)
  • refactor(connmgr): extract stateless signaling (ICE/SDP) (169a45e)
  • refactor(connmgr): extract KeepaliveController (c104282)
  • refactor(connmgr): extract pure buildManagerStats (53d054e)
  • test(connmgr): characterization harness + move callbacks type to backend (acc44a6)