32c7336bf6
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| notify_desktop | function | go | infra | 1.0.0 | impure | func NotifyDesktop(title, body string) error | Lanza una notificacion de escritorio en Linux via el binario notify-send (libnotify). Degradacion limpia: si notify-send no esta en el PATH devuelve nil sin error (no es fallo que la maquina no tenga servidor de notificaciones). Cuando existe ejecuta: notify-send --app-name=fleetview --urgency=normal -- <title> <body>, usando -- para que un texto que empiece por - no se interprete como flag. title vacio cae a un default; body puede ir vacio. |
|
false | error_go_core |
|
|
error: nil si la notificacion se mostro o si notify-send no esta instalado (degradacion silenciosa); error envuelto con contexto solo si la ejecucion real de notify-send falla | false | functions/infra/notify_desktop.go |
Ejemplo
// Avisar al usuario en el escritorio de que un agente termino.
err := infra.NotifyDesktop("✅ Agente terminó", "EDA dataset X — revísalo")
if err != nil {
// notify-send existe pero fallo al ejecutarse
log.Printf("no se pudo notificar: %v", err)
}
// En una maquina sin notify-send, err es nil y la notificacion se omite.
Cuando usarla
Usala para avisar al usuario en el escritorio cuando un proceso largo o un agente termina su trabajo (fin de un EDA, build, deploy, o tarea desatendida del orquestador). Es el toque final tras una operacion que el humano no esta mirando en directo: dispara la notificacion y sigue, sin preocuparte de si la maquina destino tiene servidor de notificaciones.
Gotchas
- Solo Linux con servidor de notificaciones (libnotify). Depende del binario
notify-send; en otros SO no aplica. - Headless / sin DBUS no muestra nada pero NO falla. Si
notify-sendno esta en el PATH, devuelvenil(degradacion silenciosa): el caller no se rompe por carecer de notificaciones. - Requiere sesion grafica activa. Aunque
notify-sendexista, sin una sesion grafica con DBUS la notificacion puede no aparecer; en ese casoRun()puede devolver error real, que se devuelve envuelto. --antes de los argumentos posicionales evita que untitle/bodyque empiece por-se interprete como flag. No lo quites.