#!/usr/bin/env bash
set +e
echo "DANKE://HMI DOCTOR (mobile deck 1.5.1)"
echo "======================================"
chk(){ printf '%-13s: ' "$1"; command -v "$2" >/dev/null 2>&1 && echo "ok ($(command -v "$2"))" || echo "ABSENT  → $3"; }
echo -n "service      : "; systemctl --user is-active danke-hmi.service
chk hyprctl     hyprctl     "Hyprland session required"
echo -n "Hyprland ver : "; hyprctl version 2>/dev/null | head -1
echo -n "uinput       : "; test -w /dev/uinput && echo writable || { ls -l /dev/uinput 2>/dev/null || echo "absent"; echo "               → run setup-uinput.sh then re-login"; }
chk playerctl   playerctl   "sudo pacman -S playerctl   (media + now playing)"
chk wpctl       wpctl       "pipewire-wireplumber       (volume)"
chk wl-copy     wl-copy     "sudo pacman -S wl-clipboard (clipboard)"
chk wtype       wtype       "sudo pacman -S wtype       (hotkeys + type on PC)"
chk grim        grim        "sudo pacman -S grim        (PEEK screen snapshot)"
chk notify-send notify-send "sudo pacman -S libnotify   (phone → desktop ping)"
chk qrencode    qrencode    "sudo pacman -S qrencode    (QR pairing, optional)"
chk avahi       avahi-daemon "sudo pacman -S avahi nss-mdns (multi-node discovery, optional)"
echo
echo -n "health       : "; curl -s --max-time 2 http://127.0.0.1:8765/api/health || echo "no answer on :8765"
echo
echo
echo "Active window:"
hyprctl -j activewindow 2>/dev/null || true
echo
echo "Recent logs:"
journalctl --user -u danke-hmi.service -n 20 --no-pager
echo
echo "Session env seen by the daemon (empty = the classic 'failed' cause):"
systemctl --user show-environment 2>/dev/null | grep -E '^(WAYLAND_DISPLAY|HYPRLAND_INSTANCE_SIGNATURE|DBUS_SESSION_BUS_ADDRESS|XDG_RUNTIME_DIR)=' || echo "  (nothing exported to systemd --user; 1.5.1 rebuilds it from sockets/processes)"
echo
echo "Full action probe: open Activity → Doctor on the phone, or:"
echo "  curl -s -H \"Authorization: Bearer \$TOKEN\" http://127.0.0.1:8765/api/doctor | python3 -m json.tool"
