feat(mirada): mirada-greeter — greeter de login del escritorio carmen

App GPUI con app_id carmen.greeter: formulario usuario+contraseña que
autentica con brahman-auth en un hilo de fondo y, en éxito, emite un
SessionTicket por stdout para que el compositor haga el traspaso a modo
sesión. Backend mock (MIRADA_GREETER_MOCK) o PAM.

Incluye brahman-auth::SessionTicket (contrato de tiquet greeter→compositor,
serializado a una línea con prefijo versionado) y el modo enmascarado de
nahual-widget-text-input (TextInput::with_mask para contraseñas).

18 tests nuevos; greeter verificado por compilación + clippy.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-21 17:59:12 +00:00
parent 8a15b812f9
commit bb21c28eb1
11 changed files with 536 additions and 11 deletions
+9
View File
@@ -2,6 +2,15 @@
Contratos canónicos + routing entre módulos. Antes: `core/brahman-*` + `shared/brahman-*`.
### feat(brahman-auth): SessionTicket — el tiquet greeter→compositor
`brahman_auth::SessionTicket { user: UserInfo, session: String }`: lo
que el greeter le entrega al compositor tras un login exitoso.
`to_line`/`from_line` lo serializan a una **línea única** (campos por
tabulador, prefijo versionado `MIRADA-SESSION-TICKET-v1`) — el greeter
la imprime a stdout y el compositor escanea sus líneas buscando el
prefijo. 5 tests de round-trip y rechazo de líneas malformadas.
### feat(brahman-auth): autenticación del escritorio — contrato + PAM + mock
Crate nuevo `crates/protocol/brahman-auth`: la base del DM/greeter de