The GitHub Actions job "Benchmarks" on texera.git/main has succeeded.
Run started by GitHub user github-merge-queue[bot] (triggered by 
github-merge-queue[bot]).

Head commit for run:
ded7ba1b49d0dc6644bc34b765b727607ad9d654 / yangzhang75 <[email protected]>
feat(workflow-form): show the chosen results (#8441)

### What changes were proposed in this PR?

Closes #8024. Part of the Form View stack (parent issue #8011), stacked
on #8440 (PR12).

Shows the chosen results under the workflow that produced them, as a
**display filter over the canvas's view-result set** (settled design):
the form reads which operators the canvas already views and shows those,
and it NEVER writes the canvas's view-result flags, so a normal canvas
user's result-viewing is unaffected.

- One result card per chosen, currently-viewed step that produced a
non-empty result: a paginated table (`texera-result-table-frame`), a
fit-to-card visualisation (`texera-visualization-panel-content`) with
per-result zoom, or the section shows a compact "press Run" / "no result
yet" state. A step that produced nothing collapses out rather than
sitting on a permanent empty card.
- `shownResultIds` = the author's `resultOperatorIds` kept to only those
still in `graph.getOperatorsToViewResult()`; it refreshes on every
result update, so a view-result toggle on the canvas (a co-editor's
included) is reflected without a reload.
- Adds `WorkflowResultService.hasNonEmptyResult` (main only had
`hasAnyResult` = a service exists; this checks the tuple/snapshot count
so an empty result reads as "no result").

Picking which results to show is an authoring action added by a later PR
(#8026); opening a step to inspect it read-only is #8025. This PR is
display-only.

### Any related issues, documentation, discussions?

Closes #8024. Part of the Form View feature (parent issue #8011).

### How was this PR tested?

Unit tests (vitest). Direct-construction tests cover the display filter
(shown = chosen intersect currently-viewed; a de-viewed or deleted
operator drops out; never writes view-result), the non-empty gating, the
zoom clamp, `resultKey`/`resultVersion` rebuilding a frame on a new
result, and the result-update subscription.
`workflow-result.service.spec.ts` covers `hasNonEmptyResult` (empty vs
full, paginated vs snapshot). A TestBed test covers the results section
and card markup (the real table/visualisation children are covered by
their own specs; their websocket-backed DI does not run in jsdom). 100%
statement and function coverage on the changed source. `ng test` (146
tests), `ng build gui`, eslint and prettier all pass.

#### Screenshot

The results section under the workflow: a table and a visualisation card
after a run.
<img width="1299" height="492" alt="Screenshot 2026-09-07 at 12 36
40 PM"
src="https://github.com/user-attachments/assets/a05f4e7e-41ec-47b3-97f1-200c74c2b98f";
/>

<!-- paste the screenshot below this line -->

### Was this PR authored or co-authored using generative AI tooling?

Yes. Co-authored with Claude (Anthropic), reviewed line by line by the
author before submission.

Co-authored-by: Claude Opus 4.8 <[email protected]>
Co-authored-by: Meng Wang <[email protected]>

Report URL: https://github.com/apache/texera/actions/runs/34475602304

With regards,
GitHub Actions via GitBox

Reply via email to