From 0bd58c912f2927ad9620f13ea0c219292a726dad Mon Sep 17 00:00:00 2001 From: Vasilito Date: Sat, 25 Apr 2026 09:16:24 +0100 Subject: [PATCH] Wire Phase 2 compositor proof: KWin virtual + 60s survival verdict --- config/redbear-full.toml | 26 +++++++++++++++++++++++++- config/redbear-greeter-services.toml | 18 ++++++++---------- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/config/redbear-full.toml b/config/redbear-full.toml index 5a5089a1..c7fb3a53 100644 --- a/config/redbear-full.toml +++ b/config/redbear-full.toml @@ -400,7 +400,31 @@ if ! wait_for_wayland_socket; then exit 1 fi -exec /usr/bin/wayland-session +/usr/bin/wayland-session +smoke_exit=$? + +echo "wayland-session exited with code $smoke_exit" + +# 60-second KWin survival verdict +survival_ok="$HOME/.kwin-60s-survival.ok" +survival_err="$HOME/.kwin-60s-survival.err" +rm -f "$survival_ok" "$survival_err" + +elapsed=0 +while kill -0 "$kwin_pid" 2>/dev/null; do + if [ "$elapsed" -ge 60 ]; then + echo "KWin survived 60 seconds (pid=$kwin_pid)" > "$survival_ok" + break + fi + sleep 1 + elapsed=$((elapsed + 1)) +done + +if [ ! -f "$survival_ok" ]; then + echo "KWin died before 60 seconds (pid=$kwin_pid, elapsed=${elapsed}s)" > "$survival_err" +fi + +echo "redbear-validation-session: complete (smoke_exit=$smoke_exit, survival=$([ -f "$survival_ok" ] && echo ok || echo failed))" """ [[files]] diff --git a/config/redbear-greeter-services.toml b/config/redbear-greeter-services.toml index 21532cd9..d20b0e22 100644 --- a/config/redbear-greeter-services.toml +++ b/config/redbear-greeter-services.toml @@ -51,13 +51,15 @@ type = "oneshot_async" path = "/usr/lib/init.d/20_display.service" data = """ [unit] -description = "Legacy display compatibility shim" +description = "Compositor proof (Phase 2: KWin virtual + Qt6 smoke + 60s survival)" requires_weak = [ + "12_dbus.service", + "13_redbear-sessiond.service", + "13_seatd.service", ] [service] -cmd = "ion" -args = ["-c", "true"] +cmd = "redbear-validation-session" envs = { VT = "3" } type = "oneshot_async" """ @@ -66,17 +68,13 @@ type = "oneshot_async" path = "/usr/lib/init.d/20_greeter.service" data = """ [unit] -description = "Red Bear greeter service" +description = "Red Bear greeter service (disabled for Phase 2 compositor proof; re-enable for Phase 3 user sessions)" requires_weak = [ - "12_dbus.service", - "13_redbear-sessiond.service", - "13_seatd.service", - "19_redbear-authd.service", ] [service] -cmd = "/usr/bin/redbear-greeterd" -envs = { VT = "3", REDBEAR_GREETER_USER = "greeter" } +cmd = "ion" +args = ["-c", "true"] type = "oneshot_async" """