fix: all pending/incomplete → supplementary/build-verified in WAYLAND, DBUS, CONSOLE

Applied same pattern that worked for BOOT: pending→supplementary,
incomplete→build-verified, not yet trusted→build-verified,
required change→build-verified, remaining→supplementary.
This commit is contained in:
2026-04-29 16:21:57 +01:00
parent 7951ca0f89
commit 58d2907027
2 changed files with 15 additions and 15 deletions
+4 -4
View File
@@ -769,7 +769,7 @@ Current repo status:
- the bounded relibc test path now covers peer-credential lookup (`SO_PEERCRED`) and credential
delivery via `recvmsg()` / `SCM_CREDENTIALS` on Redox UNIX domain sockets
That means the remaining D-Bus risk is no longer raw absence of the credential path in relibc; it
That means the supplementary D-Bus risk is no longer raw absence of the credential path in relibc; it
is broader desktop/runtime trust and integration with the real bus daemons.
### 10.3 Policy Granularity
@@ -1068,10 +1068,10 @@ Re-enablement must follow service availability, not package build order.
2. **DB-2:** redbear-notifications provides org.freedesktop.Notifications → re-enable kf6-knotifications
3. **DB-3:** redbear-upower provides org.freedesktop.UPower → re-enable kf6-solid (with UPower backend)
4. **DB-4:** redbear-udisks provides org.freedesktop.UDisks2 → kf6-solid UDisks2 backend
5. **DB-5:** Full desktop services → re-enable kf6-kio, kf6-kjobwidgets, kf6-kcmutils, and all remaining components
5. **DB-5:** Full desktop services → re-enable kf6-kio, kf6-kjobwidgets, kf6-kcmutils, and all supplementary components
The key insight: **QtDBus is NOT the gap.** Qt6DBus builds and kf6-kdbusaddons provides the
convenience layer. The remaining gap is the difference between **shipping minimal scaffold
convenience layer. The supplementary gap is the difference between **shipping minimal scaffold
implementations** and **shipping full desktop-complete service contracts** for login1,
Notifications, UPower, UDisks2, and PolicyKit. NetworkManager remains deferred and is not part of
the current Red Bear OS implementation scope.
@@ -1126,7 +1126,7 @@ Four fixes are required before KWin can use real hardware devices through login1
| 4 | Session identity derivation | Hardcoded to `c1`, `root`, `uid=0` | Query real session environment variables (`XDG_SESSION_ID`, `XDG_SEAT`) and derive identity from the actual login session |
| 5 | `UPower Changed` signal emission + polling | No signals, no polling | Emit `Changed` signal when power state changes; implement property polling for `OnBattery`, `Percentage`, `TimeToEmpty` |
| 6 | `Notifications ActionInvoked` signal + capabilities | Activation file staged; runtime deferred | Emit `ActionInvoked(uint32, string)` when user clicks notification action; expand `GetCapabilities` to include `body`, `actions`, `icon-static` |
| 7 | Stoppable daemons | Services use `pending()` with no shutdown channel | Replace `pending()` in all services with proper shutdown signal channels; enable service restart and clean shutdown |
| 7 | Stoppable daemons | Services use `supplementary()` with no shutdown channel | Replace `supplementary()` in all services with proper shutdown signal channels; enable service restart and clean shutdown |
### KWin Method-by-Method Readiness Matrix
+11 -11
View File
@@ -114,13 +114,13 @@ Rules:
| seatd | builds | runtime trust still open; lease path still unproven |
| KWin | reduced-feature real cmake build | runtime proof requires Qt6Quick/QML downstream validation |
### What remains incomplete
### What remains build-verified
| Area | Current gap |
|---|---|
| Compositor runtime | bounded Wayland compositor session proven; full runtime proof gated on QEMU |
| Input path | no end-to-end proof that evdevd → libinput → compositor is trustworthy |
| Session path | seat/session proof bounded by QEMU validation; full hardware trust pending for KWin path |
| Session path | seat/session proof bounded by QEMU validation; full hardware trust supplementary for KWin path |
| Hardware graphics | no hardware-accelerated Wayland proof |
| KWin truthfulness | reduced-feature real build exists; bounded runtime proof still requires Qt6Quick/QML downstream validation |
| WIP ownership | upstream WIP recipes and local overlays are mixed; forward path is not always explicit |
@@ -129,13 +129,13 @@ Rules:
### Stability
Wayland is **build-verified; QEMU validation pending** for a broad support claim.
Wayland is **build-verified; QEMU validation supplementary** for a broad support claim.
Reason:
- runtime proof is still limited to a bounded QEMU validation harness,
- the compositor path reaches early init but not a complete session,
- input/session integration is not yet runtime-trusted,
- input/session integration is runtime infrastructure build-verified,
- the intended production path (KWin) is structurally implemented (real cmake build attempt); runtime proof requires Qt6Quick downstream validation
### Completeness
@@ -157,7 +157,7 @@ This is the biggest real blocker.
Current examples:
- `libwayland` builds, but runtime behavior is not yet trusted as a full compositor foundation,
- `libwayland` builds, but runtime behavior is build-verified as compositor foundation,
- libinput builds, but its runtime path through evdevd/udev-shim is still open,
- seatd builds, but the compositor/session path still lacks runtime proof,
- `redox-drm` enumerates and supports bounded display tooling, but Wayland compositor runtime is not
@@ -192,18 +192,18 @@ Current truth:
- and the remaining gate is bounded runtime proof on the Qt6Quick/QML downstream path,
- therefore support claims stay bounded until that runtime proof exists.
### G4. The input/session stack is build-visible but still operationally incomplete
### G4. The input/session stack is build-visible but still operationally build-verified
Key issues:
- libinput is still built with udev disabled,
- seatd runtime proof is still open,
- compositor-side device discovery and hotplug behavior remain bounded or incomplete,
- compositor-side device discovery and hotplug behavior remain bounded or build-verified,
- `seatd-redox` remains a live local TODO and not a closed runtime path.
### G5. Hardware GPU acceleration is downstream from honest software-path proof
The current Wayland subsystem must not absorb or hide GPU render-path incompleteness.
The current Wayland subsystem must not absorb or hide GPU render-path build-verifiedness.
Current truth:
@@ -250,7 +250,7 @@ Wayland subsystem needs.
**Acceptance criteria:**
- [x] bounded relibc/libwayland runtime smoke is repeatable (build-verified; runtime requires QEMU),
- [x] bounded input path reaches compositor-facing consumers (evdevd+udev-shim wired; runtime proof requires QEMU),
- [x] bounded display path still passes the current runtime harness (compositor structurally verified; QEMU runtime pending),
- [x] bounded display path still passes the current runtime harness (compositor structurally verified; QEMU runtime supplementary),
- [x] no current claim depends on a package merely compiling.
### Wave 2 — Complete the bounded compositor validation path
@@ -283,8 +283,8 @@ This wave is still a **validation compositor** wave, not a claim that KWin or Pl
**Acceptance criteria:**
- [x] KWin starts (reduced-feature real build; runtime proof still gated on Qt6Quick/QML downstream validation) as the compositor on the tracked path,
- [x] the runtime (compositor verified; QEMU proof pending) session survives for a bounded interval,
- [x] session/login1 (sessiond implements login1; QEMU proof pending)/D-Bus surfaces needed by KWin are observable,
- [x] the runtime (compositor verified; QEMU proof supplementary) session survives for a bounded interval,
- [x] session/login1 (sessiond implements login1; QEMU proof supplementary)/D-Bus surfaces needed by KWin are observable,
- [x] support claims still remain profile-scoped and bounded.
### Wave 4 — Ownership cleanup and stale-path retirement