Files
Kaloyan DanchevandClaude Opus 4.6 ba4a5d2346
CI / Identify a merged version PR (push) Canceled after 0s
CI / Rust checks, rendering, and native package (push) Canceled after 0s
CI / Publish release and Homebrew feed (push) Canceled after 0s
Release PR / Maintain Version Packages PR (push) Canceled after 0s
Add WS-based pairing flow, replacing config.json with token file
Replace the static config.json with a dynamic pairing flow: the TV
shows a 6-digit PIN, the user enters it on the HA pairing web page,
and the TV polls for the provisioned token. On success the token is
persisted and the WS connection fetches entity config via luma/get_config.

New modules:
- ha_token: atomic read/write/remove of HA credentials file
- ha_pairing: background HTTP poll service with getrandom PIN generation

Key changes:
- Settings UI: new HA section with URL entry, connect/disconnect, PIN display
- ha_client: WS config fetch (luma/get_config), Option<u64> pending tracking
- main.rs: token-based startup, pairing effects consolidated into effects()
- renderer: cached GL uniform locations (u_aa, u_texture, u_clip_rounded,
  u_clip_radius, u_edge_fade) — no more per-batch GetUniformLocation calls
- view.rs: extracted card_glow() helper, slider_card_target() method
- Pairing thread detached (no join in Drop) to avoid blocking the render loop

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-25 14:38:10 +02:00

44 lines
1.2 KiB
TOML

[package]
name = "luma"
version = "2.3.1"
edition = "2024"
rust-version = "1.88"
publish = false
default-run = "luma"
license = "MIT"
description = "A remote-first native launcher for rooted LG webOS TVs"
[workspace]
members = ["vector-geometry", "tools/vector-assets"]
resolver = "3"
[features]
default = []
webos = ["dep:libc"]
[dependencies]
getrandom = "0.2"
gl = "0.14"
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp"] }
libc = { version = "0.2", optional = true }
luma-vector-geometry = { path = "vector-geometry" }
owned_ttf_parser = "0.25"
sdl2 = { version = "0.38", features = ["use-pkgconfig"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
time = { version = "0.3", features = ["local-offset", "formatting", "parsing"] }
tungstenite = { version = "0.24", default-features = false, features = ["handshake", "rustls-tls-native-roots"] }
ureq = { version = "3.4", default-features = false, features = ["rustls"] }
[profile.release]
lto = "thin"
strip = true
codegen-units = 1
# Keep on-demand glyph geometry responsive in desktop debug previews.
[profile.dev.package.lyon_tessellation]
opt-level = 3
[profile.dev.package.ttf-parser]
opt-level = 3