You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat: Machine Capability Discovery & Label-Based Issue Routing for Ralph #514
When running Squad across heterogeneous machines (laptop, DevBox, GPU server, AKS nodes), different machines have different capabilities. A laptop might have browser automation but no GPU. A DevBox might have Azure CLI auth but no WhatsApp session. Ralph picks up any issue regardless of whether the machine can handle it.
This causes failed agent runs, wasted API quota, and manual reassignment.
Proposed Solution
1. Capability Discovery — A script probes the machine and writes ~/.squad/machine-capabilities.json:
2. needs:* Label System — Issues tagged needs:gpu, needs:browser etc. are only picked up by Ralph instances with those capabilities. If ANY required capability is missing, Ralph skips the issue silently.
3. Kubernetes Integration — On K8s, capabilities map to node labels (node.squad.dev/gpu=true). A DaemonSet runs discovery on each node. Pod specs use nodeSelector for scheduling.
Implementation Available
I have this running in production on AKS with 8 needs:* labels. The pattern works with both file-based (laptop) and K8s-native (cluster) deployments. Happy to contribute as a PR.
Activity
feat: machine capability discovery & needs:* label routing (github#514)
feat: machine capability discovery & needs:* label routing (github#514)
feat: Machine Capability Discovery & needs:* Label Routing (#514) (#520)
feat(capabilities): dual-mode deployment support (agent-per-node + sq…
Merge pull request #555 from tamirdresher/tamirdresher/520-dual-mode-…
feat: consolidated CLI help, shell, and docs improvements (github#546)