diff --git a/CLAUDE.md b/CLAUDE.md index 8021910..b693b5d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,7 +1,5 @@ # Moongreet -**Name**: Selene (Mondgöttin — passend zu Moon-greet) - ## Projekt Moongreet ist ein greetd-Greeter für Wayland, gebaut mit Rust + gtk4-rs + gtk4-layer-shell. diff --git a/DECISIONS.md b/DECISIONS.md index 5137a9f..3c1b27d 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -51,7 +51,7 @@ ## 2026-03-28 – Remove embedded wallpaper from binary -- **Who**: Selene, Dom +- **Who**: ClaudeCode, Dom - **Why**: Wallpaper is installed by moonarch to /usr/share/moonarch/wallpaper.jpg. Embedding a 374K JPEG in the binary is redundant. GTK background color (Catppuccin Mocha base) is a clean fallback. - **Tradeoffs**: Without moonarch installed AND without config, greeter shows plain dark background instead of wallpaper. Acceptable — that's the expected minimal state. - **How**: Remove wallpaper.jpg from GResources, return None from resolve_background_path when no file found, skip wallpaper window creation and background picture when no path available. @@ -65,13 +65,13 @@ ## 2026-03-28 – Optional background blur via `image` crate (superseded) -- **Who**: Selene, Dom +- **Who**: ClaudeCode, Dom - **Why**: Blurred wallpaper as greeter background is a common UX pattern for login screens - **Tradeoffs**: Adds `image` crate dependency (~15 transitive crates); CPU-side Gaussian blur at load time adds startup latency proportional to image size and sigma. Acceptable because blur runs once and the texture is shared across monitors. - **How**: `load_background_texture(bg_path, blur_radius)` loads texture, optionally applies `imageops::blur()`, returns blurred `gdk::Texture`. Config option `background-blur: Option` in `[appearance]` TOML section. ## 2026-03-28 – Audit fixes for shared wallpaper texture (v0.4.1) -- **Who**: Selene, Dominik +- **Who**: ClaudeCode, Dominik - **Why**: Quality, performance, and security audits flagged issues in `load_background_texture()`, debug logging, and greetd error handling - **Tradeoffs**: GResource path now requires UTF-8 (returns `None` for non-UTF-8 instead of aborting); 50 MB wallpaper limit is generous but prevents OOM; debug logging off by default trades observability for security - **How**: GResource branch via `resources_lookup_data()` + `from_bytes()` (no abort), file size limit, error details only at debug level, `MOONGREET_DEBUG` env var for log level, greetd retry path truncation matching `show_greetd_error()`