Refactor worker heartbeat so each worker reports its own live BackendCatalog view on every beat, not a static capabilities list. The controller's cluster-wide catalog becomes a union of per-worker catalogs keyed by (worker_id, backend_name).
This is the foundation for: scheduler cluster dispatch, benchmark scoring, backend-driven capability checks across the cluster.
Refactor worker heartbeat so each worker reports its own live BackendCatalog view on every beat, not a static capabilities list. The controller's cluster-wide catalog becomes a union of per-worker catalogs keyed by (worker_id, backend_name).
This is the foundation for: scheduler cluster dispatch, benchmark scoring, backend-driven capability checks across the cluster.