How shark-empire/mitos-session works
mitos-session is MITOS’s root session and policy daemon: clients request session and security operations over authenticated Unix-socket IPC, and the daemon applies policy, updates session/seat state, and dispatches UI events or system actions. The graph reflects the documented calloop-owned state model and sampled IPC, session, seat, and power code; several feature connections are based on README documentation rather than inspected implementation excerpts.
Main entry points: main.rs Daemon event loop · server.rs IPC server · lifecycle.rs Session lifecycle · mod.rs Power transitions
Components 25
IPC and orchestration
- Daemon event loop
src/main.rs - IPC server
src/ipc/server.rs - IPC protocol
src/ipc/protocol.rs
Sessions and seats
- Session registry
src/session/manager.rs - Session lifecycle
src/session/lifecycle.rs - Session environment
src/session/environment.rs - Account and privileges
src/user/mod.rs - Seat registry
src/seat/manager.rs - Seat devices
src/seat/device.rs
Security policy
- Lock manager
src/lock/mod.rs - Idle tracking
src/idle/mod.rs - Authentication
src/authentication/mod.rs - Elevation manager
src/elevation/manager.rs - Security policies
src/policy/mod.rs
System actions
- Process launcher
src/launcher/application.rs - Power transitions
src/power/mod.rs - Signal handling
src/signals/handlers.rs
Configuration and audit
- Settings loader
src/config/loader.rs - Audit logging
src/logging/audit.rs
Other components
- Desktop GUI
- Login greeter
- Policy service
- Linux PAM
- Linux facilities
- Service manager
Connections 28
- Desktop GUI → IPC server: sends requests
- Login greeter → IPC server: queries accounts
- Policy service → IPC server: requests verification
- IPC server → IPC protocol: frames messages
- IPC server → Daemon event loop: dispatches commands
- Daemon event loop → IPC server: sends replies
- Daemon event loop → Settings loader: loads settings
- Daemon event loop → Session registry: manages sessions
- Session registry → Session lifecycle: starts and ends
- Session lifecycle → Account and privileges: resolves account
- Session lifecycle → Session environment: prepares environment
- Daemon event loop → Seat registry: manages seat state
- Seat registry → Seat devices: tracks devices
- Daemon event loop → Idle tracking: records activity
- Daemon event loop → Lock manager: locks sessions
- Daemon event loop → Authentication: checks credentials
- Authentication → Linux PAM: verifies credentials
- Daemon event loop → Elevation manager: handles elevation
- Elevation manager → Authentication: checks credentials
- Daemon event loop → Security policies: applies authorization
- Daemon event loop → Desktop GUI: sends state events
- Daemon event loop → Process launcher: launches processes
- Daemon event loop → Power transitions: requests transitions
- Power transitions → Linux facilities: performs transition
- Power transitions → Service manager: requests supervised transition
- Daemon event loop → Signal handling: handles signals
- Daemon event loop → Audit logging: records security events
- Daemon event loop → Desktop GUI: requests lock UI