[Unit] Description=Interactive AI agent runtimes (codex/claude/cursor-agent) [Slice] # No CPUQuota: a hard quota starved every agent tool shell under contention # (nr_throttled=2.88M, ~300h stalled, 2026-08-15). CPUWeight is proportional # and cannot starve — desktop (weight 100) still outranks agents, agents # split what remains. This was a runtime drop-in override # (agent.slice.d/50-no-starvation.conf) before 2026-08-15; folded into the # base declaration here so the correct value cannot regress if the drop-in # is ever lost. CPUWeight=50 # 3,072 was ~4h of headroom during the 2026-08-15 admission-queue leak; the wedge is # fixed and pids-guard owns runaway containment — the ceiling is a backstop, not a governor. TasksMax=16384 # No MemoryHigh/MemoryMax/MemorySwapMax: agent work is legitimately heavy, and a fixed # number cannot tell a 35G build from a runaway. Memory pressure is handled by # ManagedOOMMemoryPressure in agent.slice.d/90-ceiling.conf, which acts on a sustained # stall rather than a level. MemoryHigh additionally froze this box once (8.7M reclaim # events); it must never come back.