Skip to main content

UX-WF-003 — Present complete and trustworthy selected-run details

FieldValue
StatusOpen; source-verified, deployed examples pending
Architecture stateDeployed behavior; managed runtime contract inactive
SeverityMedium
Affected surfaceWorkflow detail, selected run, Details tab
Componentssparqd/oqullus, sparqd/workflow-backend, Airflow
Associated issueNot opened

Where the problem appears​

Select a run bar rather than a task cell and open Details.

Concrete observed case​

The run-detail response model contains configuration, logical/execution date, data-interval start and end, trigger origin, note, and last scheduling decision. The selected-run panel renders only Run ID, Run Type, Start Date, End Date, calculated Duration, and State. The remaining data is silently omitted.

If initial retrieval fails, the panel reduces the failure to No run detail available. If a background refresh fails, the previous detail remains visible without a stale or error indicator.

Expected condition​

Show the operational fields needed to identify and explain a run: immutable run ID, type, state, logical date, actual start/end, data interval, trigger origin, configuration with safe redaction, note, and freshness. Clearly separate logical time from wall-clock execution time. Preserve the last good value on a refresh failure only when it is labelled stale with the error and observation time.

Cause and evidence​

  • RunDetails/index.tsx defines the richer Airflow response shape but builds infoRows from only six display values.
  • Duration is recomputed in the browser and keeps advancing when no end date is present, with no distinction between queued and actually running.
  • The fetch error is logged to the developer console; the user sees no status, retry action, correlation ID, or last-success timestamp.
  • Background errors deliberately retain runDetail without marking it stale.

Why it matters​

Users cannot tell what data interval a run processed, whether it was scheduled or externally triggered, or which configuration produced it. During an Airflow failure, apparently current detail can actually be an older observation.

Existing controls and workarounds​

Use the run ID to inspect Airflow through the currently permitted legacy path when the omitted metadata is needed. Check browser Network before trusting No run detail available or a detail panel that stops changing.

Alternatives considered​

  1. Recommended: a concise summary plus expandable Timing, Trigger and configuration, and Diagnostics sections, with secret-aware redaction.
  2. Link to an authorized raw-detail drawer — useful for operators but not a substitute for the core interval and trigger fields.
  3. Display every raw field in one table — complete but difficult to scan and unsafe unless configuration is classified and redacted.

Component involvement​

  • sparqd/oqullus owns presentation, stale/error states, and safe expansion behavior.
  • sparqd/workflow-backend supplies the future managed response contract, freshness metadata, error categories, and redaction policy. Its OpenFGA authorization is inactive today.
  • Airflow remains the runtime metadata authority.

Reproduction and verification​

Follow WF-S020.

Resolution conditions​

Close when the panel distinguishes logical and actual time, exposes the agreed run provenance fields, redacts sensitive configuration, and visibly handles initial and background retrieval failures.

Validation and blockers​

Oqullus, workflow-backend, Airflow, UX, operations, and security owners must validate the field set and redaction policy.