fix: remove companion filter from worker list

This commit is contained in:
Keisuke Hirata 2026-07-31 02:53:36 +09:00
parent 3e217adc14
commit cb4b588598
No known key found for this signature in database

View File

@ -272,10 +272,6 @@ impl<T> RuntimeList<T> {
}
}
fn is_retired_companion_worker(worker: &WorkerSummary) -> bool {
worker.profile.as_deref() == Some("builtin:companion")
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct WorkerLookupResult {
#[serde(skip_serializing_if = "Option::is_none")]
@ -948,7 +944,6 @@ impl RuntimeRegistry {
items.extend(
list.items
.into_iter()
.filter(|worker| !is_retired_companion_worker(worker))
.take(limit.saturating_sub(items.len())),
);
}
@ -964,12 +959,7 @@ impl RuntimeRegistry {
validate_backend_identifier("runtime_id", runtime_id)?;
let runtime = self.runtime(runtime_id)?;
let worker_list = runtime.list_workers(limit);
let mut items: Vec<_> = worker_list
.items
.into_iter()
.filter(|worker| !is_retired_companion_worker(worker))
.take(limit)
.collect();
let mut items: Vec<_> = worker_list.items.into_iter().take(limit).collect();
items.truncate(limit);
let mut diagnostics = worker_list.diagnostics;
diagnostics.truncate(MAX_DIAGNOSTICS);
@ -984,12 +974,7 @@ impl RuntimeRegistry {
validate_backend_identifier("runtime_id", runtime_id)?;
let runtime = self.runtime(runtime_id)?;
let worker_list = runtime.list_stopped_workers(limit);
let mut items: Vec<_> = worker_list
.items
.into_iter()
.filter(|worker| !is_retired_companion_worker(worker))
.take(limit)
.collect();
let mut items: Vec<_> = worker_list.items.into_iter().take(limit).collect();
items.truncate(limit);
let mut diagnostics = worker_list.diagnostics;
diagnostics.truncate(MAX_DIAGNOSTICS);
@ -1020,7 +1005,6 @@ impl RuntimeRegistry {
.items
.into_iter()
.filter(|worker| worker.host_id == host_id)
.filter(|worker| !is_retired_companion_worker(worker))
.take(limit.saturating_sub(items.len())),
);
if items.len() >= limit {
@ -1047,12 +1031,6 @@ impl RuntimeRegistry {
let worker = lookup.worker.ok_or_else(|| {
operation_failed_or_unknown_worker(runtime_id, worker_id, lookup.diagnostics)
})?;
if is_retired_companion_worker(&worker) {
return Err(RuntimeRegistryError::UnknownWorker {
runtime_id: runtime_id.to_string(),
worker_id: worker_id.to_string(),
});
}
Ok(worker)
}
@ -4108,6 +4086,24 @@ mod tests {
assert_eq!(listed.items[0].label, "worker from runtime b");
}
#[test]
fn registry_keeps_companion_profile_workers_visible() {
let mut runtime =
FixtureRuntime::with_worker("runtime-a", "host-a", "worker-a", "Companion Worker");
runtime.workers[0].profile = Some("builtin:companion".to_string());
let registry = RuntimeRegistry::new(vec![Arc::new(runtime)]);
let listed = registry.list_workers_for_runtime("runtime-a", 10).unwrap();
assert_eq!(listed.items.len(), 1);
assert_eq!(
listed.items[0].profile.as_deref(),
Some("builtin:companion")
);
let worker = registry.worker("runtime-a", "worker-a").unwrap();
assert_eq!(worker.profile.as_deref(), Some("builtin:companion"));
}
#[test]
fn registry_worker_lookup_reports_unknown_runtime_and_worker_separately() {
let registry = RuntimeRegistry::new(vec![Arc::new(FixtureRuntime::with_worker(