Skip to content

QPI-UI: dashboard only submits single circuit #16

Description

@ch-ahindura

Describe the bug
The qpi-ui dashboard's Jobs Console can only submit a single circuit per job. The backend JobPayload and all three client SDKs (Python, JavaScript, Go) accept a list of circuits with per-circuit parameter_values and shots overrides, but the dashboard exposes none of this.

The Job Submission panel (qpi-ui/internal/dashboard/src/components/tabs/JobsConsoleTab/elements/JobSubmissionPanel.tsx) holds a single QASM string in state (qasmCode) with one textarea, and its onSubmitJob callback is typed to take a single qasm: string. The submit handler in qpi-ui/internal/dashboard/src/App.tsx (handleSubmitQuantumJob) then hard-codes the request body as:

body: JSON.stringify({
  circuits: [{ circuit: qasm }],   // always exactly one circuit
  shots: shots,
  meas_level: measLevel,
  meas_return: "single",
  qpu_target: qpuId,
}),

So there is no way from the UI to submit a batch of circuits, to set parameter_values for a parametrized circuit, or to give a circuit its own shots override. By contrast:

  • Python client submit_job(circuits: list[dict], ...) posts {"circuits": circuits} and documents optional parameter_values/shots per circuit.
  • JS client JobSubmitRequest.circuits: CircuitPayload[], where CircuitPayload has circuit, parameter_values?, shots?.
  • Go client JobSubmitRequest.Circuits []CircuitPayload, where CircuitPayload has Circuit, ParameterValues, Shots.

To Reproduce
Steps to reproduce the behavior:

  1. Open the dashboard and go to the Jobs Console tab.
  2. Open the Job Submission panel — there is a single OpenQASM 3.0 textarea, a Shots Count field, and a Meas Level slider.
  3. Try to add a second circuit, or set parameter bindings / a per-circuit shot count.
  4. See that there is no control to do so; only one circuit can ever be sent.

Expected behavior
The dashboard should let a user submit multiple circuits in one job (matching the backend and the client SDKs), for example by allowing several QASM editors / a list of circuits to be added and removed, with optional per-circuit shots and parameter_values. The submitted request body should populate circuits with all of them rather than wrapping a single QASM string in a one-element array. At minimum, if batches are intentionally out of scope for the UI, this limitation should be documented.

Screenshots
N/A.

Desktop (please complete the following information):

  • OS: N/A (platform-independent web UI)
  • Browser: any
  • Version: qpi-ui dashboard — src/components/tabs/JobsConsoleTab/elements/JobSubmissionPanel.tsx and src/App.tsx (handleSubmitQuantumJob)

Smartphone (please complete the following information):

  • Device: N/A
  • OS: N/A
  • Browser: N/A
  • Version: N/A

Additional context
The Python, JavaScript, and Go clients already support multi-circuit submission (including per-circuit parameter_values and shots), so this gap is specific to the dashboard UI. Severity: Medium — no data loss, but batched and parametrized jobs are simply not reachable through the dashboard, forcing users to drop down to a client SDK.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions