- Add active agent run tracking functions (getActiveAgentRunCount, getActiveAgentRunIds)
- Add onAgentRunComplete callback to notify when runs complete
- Modify config-reload to defer restarts when active runs exist
- Queue restart and apply when all runs complete
- Add guard in AppState.swift to prevent config writes in remote mode
- Set gateway.reload.mode to "off" as immediate fix
This prevents the bot from interrupting in-flight messages during
config changes, fixing the "bot typing but never responds" issue.
Root cause: macOS app was writing to gateway config even in remote mode,
triggering file watcher → reload handler → SIGUSR1 → shutdown during messages.