Update runtimed to fix compatibility issue with the Ark kernel (#40889)

Closes #40888

This updates runtimed to the latest version, which handles the
"starting" variant of `execution_state`. It actually handles a bunch of
other variants that are not documented in the protocol (see
https://jupyter-client.readthedocs.io/en/stable/messaging.html#kernel-status),
like "starting", "terminating", etc. I added implementations for these
variants as well.

Release Notes:

- Fixed issue that prevented the Ark kernel from working in Zed
(#40888).

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
This commit is contained in:
Lionel Henry
2025-11-13 19:35:45 +00:00
committed by GitHub
co-authored by Conrad Irwin
parent e91be9e98e
commit fa0c7500c1
6 changed files with 109 additions and 54 deletions
+7
View File
@@ -213,6 +213,13 @@ impl From<&Kernel> for KernelStatus {
Kernel::RunningKernel(kernel) => match kernel.execution_state() {
ExecutionState::Idle => KernelStatus::Idle,
ExecutionState::Busy => KernelStatus::Busy,
ExecutionState::Unknown => KernelStatus::Error,
ExecutionState::Starting => KernelStatus::Starting,
ExecutionState::Restarting => KernelStatus::Restarting,
ExecutionState::Terminating => KernelStatus::ShuttingDown,
ExecutionState::AutoRestarting => KernelStatus::Restarting,
ExecutionState::Dead => KernelStatus::Error,
ExecutionState::Other(_) => KernelStatus::Error,
},
Kernel::StartingKernel(_) => KernelStatus::Starting,
Kernel::ErroredLaunch(_) => KernelStatus::Error,
+7
View File
@@ -476,6 +476,13 @@ impl ExecutionView {
self.status = ExecutionStatus::Executing;
}
ExecutionState::Idle => self.status = ExecutionStatus::Finished,
ExecutionState::Unknown => self.status = ExecutionStatus::Unknown,
ExecutionState::Starting => self.status = ExecutionStatus::ConnectingToKernel,
ExecutionState::Restarting => self.status = ExecutionStatus::Restarting,
ExecutionState::Terminating => self.status = ExecutionStatus::ShuttingDown,
ExecutionState::AutoRestarting => self.status = ExecutionStatus::Restarting,
ExecutionState::Dead => self.status = ExecutionStatus::Shutdown,
ExecutionState::Other(_) => self.status = ExecutionStatus::Unknown,
}
cx.notify();
return;
+7
View File
@@ -673,6 +673,13 @@ impl Render for Session {
Kernel::RunningKernel(kernel) => match kernel.execution_state() {
ExecutionState::Idle => Color::Success,
ExecutionState::Busy => Color::Modified,
ExecutionState::Unknown => Color::Modified,
ExecutionState::Starting => Color::Modified,
ExecutionState::Restarting => Color::Modified,
ExecutionState::Terminating => Color::Disabled,
ExecutionState::AutoRestarting => Color::Modified,
ExecutionState::Dead => Color::Disabled,
ExecutionState::Other(_) => Color::Modified,
},
Kernel::StartingKernel(_) => Color::Modified,
Kernel::ErroredLaunch(_) => Color::Error,