Problem Statement
When an extension driver process exits unexpectedly (SIGKILL exitCode 137, SIGSEGV, or panic), the UI displays raw exception text without any recovery action. The user has to close the connection or restart the entire Querya Desktop application to restore driver communication.
Additionally, ExtensionDriverSession does not provide a high-level restart(ConnectionRow row) API to cleanly re-spawn the driver process and re-establish the connection.
Proposed Solution
- Add
ExtensionDriverSession.instance.restart(ConnectionRow row) which cleanly shuts down any dead/existing bridge for the connection and executes ensureConnected(row).
- Add an
onExit listener or crash hook so ExtensionDriverSession clears dead bridges from its active map immediately upon process termination.
- In
ExtensionSqlWorkspace and ExtensionTableView, when a driver error occurs (PluginCrashedException, PluginDeadlockException, or disconnect), render a clear banner with a "Restart Driver" action button that re-spawns the driver in 1 click and retries the last query or reloads the table schema.
Problem Statement
When an extension driver process exits unexpectedly (SIGKILL exitCode 137, SIGSEGV, or panic), the UI displays raw exception text without any recovery action. The user has to close the connection or restart the entire Querya Desktop application to restore driver communication.
Additionally,
ExtensionDriverSessiondoes not provide a high-levelrestart(ConnectionRow row)API to cleanly re-spawn the driver process and re-establish the connection.Proposed Solution
ExtensionDriverSession.instance.restart(ConnectionRow row)which cleanly shuts down any dead/existing bridge for the connection and executesensureConnected(row).onExitlistener or crash hook soExtensionDriverSessionclears dead bridges from its active map immediately upon process termination.ExtensionSqlWorkspaceandExtensionTableView, when a driver error occurs (PluginCrashedException,PluginDeadlockException, or disconnect), render a clear banner with a "Restart Driver" action button that re-spawns the driver in 1 click and retries the last query or reloads the table schema.