# Meerkat TaskPanel resident session pool — generated by `install.sh`. # # One long-lived manager owns the supervisor's agent conversations: one card # session per card (worker or review) and a director lane per project. The tick # clock runs patrol/workflow/poll in place; poll claims cards and writes handoffs # to the queue, and the card's session opens on the role's platform with the # card's workspace as its cwd. # # Without this unit the loop still runs patrol + workflow on the continue timer, # but claims nothing: there is nowhere to dispatch a worker, so dispatch is # paused and one `--notify` alert is emitted per cadence. # # `Type=simple` + `Restart=always` is the unit's recovery story. A project # session is re-opened (and resumed) on demand; subagents are not tracked. # # Every session runs with the full tool set; the reviewer's write tools are # denied. The project directory is not an isolation boundary. [Unit] Description=Meerkat TaskPanel resident session pool ({{AGENT}} on {{ACTOR_KIND}}) After=network.target # No start limit: the loop never gives up on itself. The only delay is the # boot-health ladder for a start that never completed a first tick. StartLimitIntervalSec=0 [Service] Type=simple ExecStart={{NODE}} {{CLI}} pool --actor-kind {{ACTOR_KIND}} --agent {{AGENT}} --log {{LOG}} --state-dir {{STATE_DIR}} Restart=always RestartSec=2 # EX_CONFIG (78): a missing skill cannot appear by restarting. RestartPreventExitStatus=78 # No stdout/stderr redirect: the loop writes --log itself (with rotation). # A redirect into the same file would duplicate every line. [Install] WantedBy=default.target