Commit graph

2 commits

Author SHA1 Message Date
Till Wegmueller
70859175c0 Add doors IPC transport for illumos, simplify client binaries
Add platform-aware IPC transport layer for the launcher protocol:

- transport module: send_request_sync() auto-selects doors (illumos)
  or Unix sockets (Linux) at compile time
- doors_transport: uses doors::Client for high-speed synchronous RPC,
  gated behind cfg(target_os = "illumos") + "doors" feature flag
- unix_transport: blocking Unix socket client for all platforms

Simplify client binaries to use the sync transport:
- wradm: drops tokio dependency entirely, now fully synchronous
- wrlogin: drops tokio dependency, uses sync transport
- wrsessd: uses shared default_ipc_path() for consistency

The doors crate (0.8.1) is an optional illumos-only dependency.
On Linux, all code compiles and tests pass with Unix socket transport.
2026-04-09 22:21:14 +02:00
Till Wegmueller
f6b9ea56ba Add session launcher, greeter, admin CLI, and session config
Session infrastructure for the launcher/greeter architecture (Phase 3):

- Launcher protocol: JSON-over-Unix-socket messages (LauncherRequest/
  LauncherResponse) for session_requested, session_authenticated,
  session_logout, plus admin queries (list_sessions, kill_session)

- Session config: ~/.config/wayray/session.toml with wm, panel,
  launcher, notifications, and autostart fields. Serde TOML parsing
  with sensible defaults (wr-wm-floating). 5 unit tests.

- wrsessd: Session launcher daemon listening on Unix socket. Manages
  per-token sessions, launches greeter on session_requested, starts
  desktop components from session.toml on session_authenticated,
  cleans up child processes on logout. Admin query support.

- wrlogin: Reference CLI greeter. Reads credentials from stdin,
  sends session_authenticated to wrsessd, exits on success.
  Token passed via WAYRAY_SESSION_TOKEN env var.

- wradm: Session management commands (list, kill) communicating
  with wrsessd via launcher protocol. Tabular output format.
2026-04-09 21:22:46 +02:00