fix(sync): avoid unnecessary uvc helper restarts

This commit is contained in:
Brad Stein 2026-04-27 16:12:51 -03:00
parent 909b9c51fe
commit c8cf0fd254
6 changed files with 17 additions and 8 deletions

6
Cargo.lock generated
View File

@ -1642,7 +1642,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
[[package]]
name = "lesavka_client"
version = "0.14.23"
version = "0.14.24"
dependencies = [
"anyhow",
"async-stream",
@ -1676,7 +1676,7 @@ dependencies = [
[[package]]
name = "lesavka_common"
version = "0.14.23"
version = "0.14.24"
dependencies = [
"anyhow",
"base64",
@ -1688,7 +1688,7 @@ dependencies = [
[[package]]
name = "lesavka_server"
version = "0.14.23"
version = "0.14.24"
dependencies = [
"anyhow",
"base64",

View File

@ -4,7 +4,7 @@ path = "src/main.rs"
[package]
name = "lesavka_client"
version = "0.14.23"
version = "0.14.24"
edition = "2024"
[dependencies]

View File

@ -1,6 +1,6 @@
[package]
name = "lesavka_common"
version = "0.14.23"
version = "0.14.24"
edition = "2024"
build = "build.rs"

View File

@ -669,7 +669,6 @@ cat <<'UNIT' | sudo tee /etc/systemd/system/lesavka-uvc.service >/dev/null
Description=lesavka UVC control helper
After=lesavka-core.service
Requires=lesavka-core.service
RefuseManualStop=yes
[Service]
ExecStart=/usr/local/bin/lesavka-uvc.sh
@ -700,9 +699,11 @@ sudo rm -f /etc/systemd/system/lesavka-watchdog.timer \
sudo systemctl daemon-reload
if systemctl is-active --quiet lesavka-uvc; then
if [[ "$UVC_ENV_CHANGED" == "1" ]] && systemctl is-active --quiet lesavka-uvc; then
sudo systemctl restart lesavka-uvc
echo "✅ lesavka-uvc restarted with the refreshed UVC runtime settings."
elif systemctl is-active --quiet lesavka-uvc; then
echo "✅ lesavka-uvc already active; runtime settings unchanged."
else
echo "⚠️ lesavka-uvc is not active; start via lesavka-core dependency path."
fi

View File

@ -10,7 +10,7 @@ bench = false
[package]
name = "lesavka_server"
version = "0.14.23"
version = "0.14.24"
edition = "2024"
autobins = false

View File

@ -69,6 +69,14 @@ fn server_install_pins_hdmi_camera_and_display_defaults() {
SERVER_INSTALL.contains("video-output node did not appear after rebuild"),
"install script should explain why it refuses a half-applied UVC install"
);
assert!(
!SERVER_INSTALL.contains("RefuseManualStop=yes"),
"install script should not generate a UVC unit that blocks legitimate refreshes"
);
assert!(
SERVER_INSTALL.contains("lesavka-uvc already active; runtime settings unchanged."),
"install script should avoid unnecessary UVC restarts when nothing changed"
);
}
#[test]