Skip to content

arch: extract shared compute-driver discovery diagnostics #6

Description

@kvnloo

Context

Long-term follow-up to NVIDIA#3694 and NVIDIA#3211.

The CLI doctor patch intentionally does not duplicate schema-versioned gateway configuration or ComputeDriverRegistry selection logic. That keeps NVIDIA#3694 small, but means local doctor semantics and gateway startup discovery remain separate concepts.

Goal

Design a lightweight shared driver-discovery/diagnostic layer that can be consumed by gateway startup and diagnostic surfaces without making openshell-cli depend on openshell-server.

Desired properties

  • Represent candidate drivers and probe outcomes structurally: selected, skipped, unavailable, permission denied, timed out, incompatible response, etc.
  • Preserve gateway selection semantics, including explicit compute_driver and auto-detection ordering.
  • Separate "runtime installed", "runtime service reachable", and "driver selected".
  • Support actionable diagnostics without exposing credentials or sensitive endpoint details.
  • Allow bounded probe timeouts and deterministic selection.
  • Avoid duplicating schema-versioned gateway.toml parsing in the CLI.
  • Be extensible beyond Docker/Podman to Kubernetes, VM, and MXC where appropriate.
  • Give feat(gateway): explain compute driver discovery decisions NVIDIA/OpenShell#3211 a reusable diagnostic primitive rather than adding ad-hoc logging at each probe site.

Research questions

  1. Which crate should own the shared candidate/probe types?
  2. Which configuration-neutral inputs can be shared without importing server configuration?
  3. Should gateway selection return a structured decision trace alongside the selected driver?
  4. How should explicit configuration differ from auto-detection in diagnostic severity?
  5. Which endpoint details are safe to log?
  6. What timeout/concurrency policy should be common across drivers?
  7. Which parts belong in runtime-specific driver crates versus a shared registry/discovery crate?

Non-goal

Do not block the scoped NVIDIA#3694 doctor patch on this refactor.

References

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions