Conversation
PR Overview: Handle SIGUSR2 Reloads in Runner ModeSummaryThis PR fixes a gap in config reload handling for runner mode (Slack, Telegram, MCP, etc.). Previously, SIGUSR2-based config hot-reload was only available when using the Files ChangedModified Files
New Files
Architecture & Impact AssessmentWhat This PR Accomplishes
Key Technical ChangesSignal Handling Flowflowchart TD
A[Process receives SIGUSR2] --> B{Config path provided?}
B -->|Yes| C[ConfigReloader.reload]
B -->|No| D[Log warning: no --config]
C --> E[Load & validate config]
E --> F[Save snapshot]
F --> G[onSwap callback]
G --> H[Update config reference]
H --> I[RunnerHost.broadcastConfigUpdate]
I --> J[All runners receive new config]
K[File change detected] --> L{--watch enabled?}
L -->|Yes| M[ConfigWatcher debouncedReload]
L -->|No| N[No action]
M --> O[ConfigReloader.reload]
style C fill:#e1f5e1
style M fill:#e1f5e1
style D fill:#ffe1e1
Component RelationshipsclassDiagram
class CLI {
+watch: boolean
+configPath: string
}
class ConfigReloadRuntime {
+setupRunnerConfigReloadRuntime()
+cleanup()
-snapshotStore: ConfigSnapshotStore
-reloader: ConfigReloader
-watcher: ConfigWatcher
-signalHandler: Function
}
class ConfigWatcher {
+start(options: {listenForSignals})
+stop()
-watchFile()
-debouncedReload()
}
class ConfigReloader {
+reload(): Promise~boolean~
-loadConfig()
-saveSnapshot()
-onSwap()
}
class RunnerHost {
+broadcastConfigUpdate()
+stopAll()
+stopListeningAll()
+drainAll()
}
class GracefulRestartManager {
+initiateRestart()
+onCleanup()
-spawnNewProcess()
-waitForChildReady()
}
class ConfigSnapshotStore
CLI --> ConfigReloadRuntime
ConfigReloadRuntime --> ConfigWatcher
ConfigReloadRuntime --> ConfigReloader
ConfigReloadRuntime --> ConfigSnapshotStore
ConfigReloader --> RunnerHost
GracefulRestartManager --> ConfigReloadRuntime
GracefulRestartManager --> RunnerHost
Affected System ComponentsDirect Impact
Indirect Impact
No Impact
Scope Discovery & Context ExpansionRelated Modules & ServicesConfiguration Pipeline
Runner Infrastructure
Individual Runners (Config Update Recipients)
Testing CoverageNew Tests
Existing Tests (Validated by Author)
Integration Validation
Configuration & DocumentationRelevant Config Options
Documentation References
ReferencesSource Code
Related Code
Tests
Metadata
Powered by Visor from Probelabs Last updated: 2026-03-24T07:29:29.925Z | Triggered by: pr_opened | Commit: 0852a05 💡 TIP: You can chat with Visor using |
Security Issues (7)
Architecture Issues (1)
Security Issues (7)
Powered by Visor from Probelabs Last updated: 2026-03-24T07:24:06.900Z | Triggered by: pr_opened | Commit: 0852a05 💡 TIP: You can chat with Visor using |
Summary
Validation