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)] #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct WorkerLookupResult { pub struct WorkerLookupResult {
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
@ -948,7 +944,6 @@ impl RuntimeRegistry {
items.extend( items.extend(
list.items list.items
.into_iter() .into_iter()
.filter(|worker| !is_retired_companion_worker(worker))
.take(limit.saturating_sub(items.len())), .take(limit.saturating_sub(items.len())),
); );
} }
@ -964,12 +959,7 @@ impl RuntimeRegistry {
validate_backend_identifier("runtime_id", runtime_id)?; validate_backend_identifier("runtime_id", runtime_id)?;
let runtime = self.runtime(runtime_id)?; let runtime = self.runtime(runtime_id)?;
let worker_list = runtime.list_workers(limit); let worker_list = runtime.list_workers(limit);
let mut items: Vec<_> = worker_list let mut items: Vec<_> = worker_list.items.into_iter().take(limit).collect();
.items
.into_iter()
.filter(|worker| !is_retired_companion_worker(worker))
.take(limit)
.collect();
items.truncate(limit); items.truncate(limit);
let mut diagnostics = worker_list.diagnostics; let mut diagnostics = worker_list.diagnostics;
diagnostics.truncate(MAX_DIAGNOSTICS); diagnostics.truncate(MAX_DIAGNOSTICS);
@ -984,12 +974,7 @@ impl RuntimeRegistry {
validate_backend_identifier("runtime_id", runtime_id)?; validate_backend_identifier("runtime_id", runtime_id)?;
let runtime = self.runtime(runtime_id)?; let runtime = self.runtime(runtime_id)?;
let worker_list = runtime.list_stopped_workers(limit); let worker_list = runtime.list_stopped_workers(limit);
let mut items: Vec<_> = worker_list let mut items: Vec<_> = worker_list.items.into_iter().take(limit).collect();
.items
.into_iter()
.filter(|worker| !is_retired_companion_worker(worker))
.take(limit)
.collect();
items.truncate(limit); items.truncate(limit);
let mut diagnostics = worker_list.diagnostics; let mut diagnostics = worker_list.diagnostics;
diagnostics.truncate(MAX_DIAGNOSTICS); diagnostics.truncate(MAX_DIAGNOSTICS);
@ -1020,7 +1005,6 @@ impl RuntimeRegistry {
.items .items
.into_iter() .into_iter()
.filter(|worker| worker.host_id == host_id) .filter(|worker| worker.host_id == host_id)
.filter(|worker| !is_retired_companion_worker(worker))
.take(limit.saturating_sub(items.len())), .take(limit.saturating_sub(items.len())),
); );
if items.len() >= limit { if items.len() >= limit {
@ -1047,12 +1031,6 @@ impl RuntimeRegistry {
let worker = lookup.worker.ok_or_else(|| { let worker = lookup.worker.ok_or_else(|| {
operation_failed_or_unknown_worker(runtime_id, worker_id, lookup.diagnostics) 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) Ok(worker)
} }
@ -4108,6 +4086,24 @@ mod tests {
assert_eq!(listed.items[0].label, "worker from runtime b"); 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] #[test]
fn registry_worker_lookup_reports_unknown_runtime_and_worker_separately() { fn registry_worker_lookup_reports_unknown_runtime_and_worker_separately() {
let registry = RuntimeRegistry::new(vec![Arc::new(FixtureRuntime::with_worker( let registry = RuntimeRegistry::new(vec![Arc::new(FixtureRuntime::with_worker(