The GitHub Actions job "Benchmarks" on 
texera.git/backport/8383-render-workflow-covers-on-the-hub-landin-v1.3 has 
failed.
Run started by GitHub user github-actions[bot] (triggered by 
github-actions[bot]).

Head commit for run:
bfbf2c552ebbce6611500070766feddb0fce8297 / Tanishq Gandhi 
<[email protected]>
fix(frontend): render workflow covers on the hub landing page (#8383)

### What changes were proposed in this PR?

Workflow covers never rendered on the Hub landing page: every card under
**Top Loved Workflows** and **Top Cloned Workflows** showed the grey
placeholder, even for a workflow whose owner had set a cover, while the
same workflow showed it correctly in Your Work → Workflows.

Covers reach the frontend two different ways. A **workflow** cover is a
downscaled **data URL** that arrives inline on the list payload and
lands on `DashboardEntry.coverImageUrl`. A **dataset** or **model**
cover is a committed file, so what arrives is a *path* and the card has
to fetch a presigned URL from `/{id}/cover-url`.

`browse-section` only ever handled the second kind — it asks the
descriptor for a `coverUrl` and bails when there is none, which is
always the case for a workflow, since `WorkflowResourceDescriptor`
deliberately declares none. So nothing was ever cached for a workflow
and `getCoverImage` fell through to the default.

`getCoverImage` now reads a workflow's cover straight off the entry,
mirroring the branch `card-item.component.ts:197-202` already had.

Also included, since it is one line in the same area and needs no
separate issue: `frontend/proxy.config.json` declared `"/api/model/**"`
**twice** (both pointing at `:9092`, so the last silently won). The
duplicate is removed, leaving the entry beside `/api/dataset`, so the
file reads `dataset`, `model`, `access/dataset`, `access/model`.

**Before** — both workflows are public; the left one has a cover, the
right one does not:

<img width="1440" height="900" alt="issue5-1-hub-landing-before"
src="https://github.com/user-attachments/assets/120c2cf3-2ee9-49e0-97df-a77e3746275c";
/>

**After** — the left card renders its cover, the right one still shows
the placeholder:

<img width="1440" height="900" alt="issue5-1-hub-landing-after"
src="https://github.com/user-attachments/assets/9c0294a0-f081-4428-a230-80281a40cb7a";
/>

### Any related issues, documentation, discussions?

Closes #8382.

### How was this PR tested?

`browse-section.component.spec.ts`, 25 passed:

- `renders a workflow's cover from the entry, since no cover is ever
fetched for one` — a workflow
  with a cover resolves to it, one without still gets the default.
- `keeps a file-backed kind on the placeholder rather than rendering its
stored cover path` — a
dataset whose presigned fetch answers with an empty URL stays on the
placeholder instead of
  rendering `v1/images/preview.png`.
- `skips an entity whose descriptor resolves no cover, rather than
calling undefined` was already
there and asserted `getCoverImage(workflow) === defaultBackground` — it
pinned the bug, so it now
asserts the cover comes off the entry, with the unregistered-kind row
still falling back.

`landing-page.component.spec.ts` also run, 17 passed.

```
cd frontend
npx ng test --include 
src/app/hub/component/browse-section/browse-section.component.spec.ts
npx ng test --include 
src/app/hub/component/landing-page/landing-page.component.spec.ts
```

Checked by hand against a local stack: a public workflow with a cover
set from the dashboard now
shows it in both hub sections, and a public workflow without one is
unchanged.

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

(backported from commit 1facefb183c96e7b426ff6be35e5b6aaa7b33345)

Generated-by: Claude Code (Opus 5)

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

With regards,
GitHub Actions via GitBox

Reply via email to