Remove the VfkitLocal variant from RunnerKind and PlanExecutorKind enums
Intent: Eliminate the vfkit runner as a recognized execution backend at the type level, ensuring no code path can reference it. The runner_kind() method now panics for jobs that would have previously fallen through to vfkit, forcing every job to explicitly declare a supported runner.
Affected files: crates/pikaci/src/model.rs
@@ -41,7 +41,6 @@ pub struct JobSpec {
#[serde(rename_all = "snake_case")]
pub enum RunnerKind {
HostLocal,
- VfkitLocal,
#[serde(alias = "microvm_remote")]
@@ -51,7 +50,6 @@ impl RunnerKind {
pub fn as_str(self) -> &'static str {
match self {
Self::HostLocal => "host_local",
- Self::VfkitLocal => "vfkit_local",
@@ -62,7 +60,6 @@ impl RunnerKind {
#[serde(rename_all = "snake_case")]
pub enum PlanExecutorKind {
HostLocal,
- VfkitLocal,
@@ -109,7 +104,10 @@ impl JobSpec {
} else if self.staged_linux_rust_lane().is_some() {
RunnerKind::RemoteLinuxVm
} else {
- RunnerKind::VfkitLocal
+ panic!(
+ "job `{}` no longer maps to the removed vfkit runner; assign staged_linux_rust_lane, use HostShellCommand, or use a tart-* target",
+ self.id
+ )
The RunnerKind::VfkitLocal and PlanExecutorKind::VfkitLocal variants are removed from the two central enums that define which executor a job runs on. Every match arm that handled VfkitLocal is deleted throughout the codebase.
Critically, the fallback in JobSpec::runner_kind() at crates/pikaci/src/model.rs:104 no longer returns VfkitLocal for jobs that lack a staged_linux_rust_lane and aren't host-local or Tart jobs. Instead it panics with a descriptive message, making it impossible to accidentally route a job to the removed backend.
The corresponding From<RunnerKind> for PlanExecutorKind impl also drops the VfkitLocal arm, and as_str() on both enums no longer includes "vfkit_local".
A new test unstaged_non_host_jobs_panic_after_vfkit_removal replaces the old standalone_agent_contract_jobs_can_stay_on_vfkit test, verifying that calling runner_kind() on an unstaged, non-host job correctly panics with a message containing "removed vfkit runner".