Groups can restrict task dispatch to an allowed node pool and optionally
let users pick a target node for remote downloads and archive ops.
- GroupSetting: allowed_nodes (empty = all) + allow_select_node toggle
- NodePool.Get filters candidates by the allowed pool; explicit picks
outside the pool fall back to weighted selection within it
- NodeState persists the pool so queued tasks keep their restrictions
- resolveNodeSelection validates picks: group toggle, pool membership,
active status, task capability; node hashids on the wire
- Site config exposes task_nodes + allow_select_node for permitted groups
- Admin group editor: functional node multi-select + allow-select switch
- Task dialogs: shared TargetNodeSelect on remote download, archive
create and extract
Generated with [Devin](https://devin.ai)
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>