AllNighter 1.1.0 — agent switch
Adds an API-only agent switch so local AI agents can hold the Mac awake (display + closed-lid) while they work, without touching your switches.
- New routes:
POST /agent/on?id=X,/agent/off?id=X,/agent/clear,GET /agent/status. Holders are a set of ids — several agents can hold at once; the switch releases when the set empties. - Override semantics: agent on overrides user off; agent off never overrides user on (release falls back to your switches).
- While held, the pill pulses with a gold ring (1 s cycle — slow build, sharp fade, black contrast ring at the trough). The pill itself always shows your display switch.
- Right-click menu: agent status line + Clear agent keep-awake escape hatch (the switch is sticky by design — no timeout).
/statusextended (backward-compatible prefix) withagent,agentIds,effectiveDisplay,effectiveLid.- Hardening:
caffeinateruns with-w <app pid>so a hard crash can never leave an orphan keeping the display awake;ALLNIGHTER_PORTenv override for side-by-side testing. - Agent routes can never trigger an admin prompt.
Signed, notarized, and stapled. Turnkey agent integration (Claude Code hooks + a portable instruction set): https://github.com/BlinkingSun/agent-awake