Skip to content

feat(extensions): implement extension driver session restart and recovery action in workspace UI #667

Description

@ZhuchkaTriplesix

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

  1. Add ExtensionDriverSession.instance.restart(ConnectionRow row) which cleanly shuts down any dead/existing bridge for the connection and executes ensureConnected(row).
  2. Add an onExit listener or crash hook so ExtensionDriverSession clears dead bridges from its active map immediately upon process termination.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions