diff --git a/Cargo.toml b/Cargo.toml index c4ba407..be1204d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "moonset" -version = "0.8.0" +version = "0.8.1" edition = "2024" description = "Wayland session power menu with GTK4 and Layer Shell" license = "MIT" @@ -22,5 +22,10 @@ systemd-journal-logger = "2.2" [dev-dependencies] tempfile = "3" +[profile.release] +lto = "thin" +codegen-units = 1 +strip = true + [build-dependencies] glib-build-tools = "0.22" diff --git a/DECISIONS.md b/DECISIONS.md index d243630..5a6f762 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -2,6 +2,13 @@ Architectural and design decisions for Moonset, in reverse chronological order. +## 2026-03-31 – Fourth audit: release profile, GResource compression, lock stderr, sync markers + +- **Who**: Ragnar, Dom +- **Why**: Fourth triple audit found missing release profile (LTO/strip), uncompressed GResource assets, moonlock stderr suppressed (errors invisible), and duplicated code without sync markers. +- **Tradeoffs**: moonlock stderr now inherited instead of null — errors appear in moonset's journal context. Acceptable for debugging, no security leak since moonlock logs to its own journal identifier. +- **How**: (1) `[profile.release]` with LTO, codegen-units=1, strip. (2) `compressed="true"` on GResource entries. (3) `Stdio::inherit()` for moonlock stderr in lock(). (4) SYNC comments on duplicated blur/background functions. + ## 2026-03-28 – Remove wallpaper from GResource bundle - **Who**: Ragnar, Dom diff --git a/resources/resources.gresource.xml b/resources/resources.gresource.xml index 89b362c..5562d3b 100644 --- a/resources/resources.gresource.xml +++ b/resources/resources.gresource.xml @@ -1,7 +1,7 @@ - style.css - default-avatar.svg + style.css + default-avatar.svg diff --git a/src/panel.rs b/src/panel.rs index 0f108c2..e8956d4 100644 --- a/src/panel.rs +++ b/src/panel.rs @@ -103,6 +103,10 @@ pub fn load_background_texture(bg_path: Option<&Path>) -> Option { // -- GPU blur via GskBlurNode ------------------------------------------------- +// SYNC: MAX_BLUR_DIMENSION, render_blurred_texture, and create_background_picture +// are duplicated in moonlock/src/lockscreen.rs and moongreet/src/greeter.rs. +// Changes here must be mirrored to the other two projects. + /// Maximum texture dimension before downscaling for blur. /// Keeps GPU work reasonable on 4K+ displays. const MAX_BLUR_DIMENSION: f32 = 1920.0; diff --git a/src/power.rs b/src/power.rs index fc24116..06732bb 100644 --- a/src/power.rs +++ b/src/power.rs @@ -107,7 +107,7 @@ pub fn lock() -> Result<(), PowerError> { Command::new("/usr/bin/moonlock") .stdin(Stdio::null()) .stdout(Stdio::null()) - .stderr(Stdio::null()) + .stderr(Stdio::inherit()) .spawn() .map_err(|e| PowerError::CommandFailed { action: "lock",