User history detail only shows the first output of a multi-image run
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 76/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- frontend
Research direction
Start in components/console/CallDetailDrawer.tsx, focusing on the user variant of MediaStage and its selectedAsset logic; compare it with the existing admin-only asset switching. Review lib/console/activity-assets.ts for the one-URL usage-ticket behavior. Done means the user drawer can inspect every persisted output while keeping one history row and the run-level cost.
Written by the indexing model from the issue text.
Description
Summary
A single run_capability job that returns multiple outputs (e.g. Flux Schnell with num_images: 4) correctly persists every image as mcp_assets and shows as one history row. User history detail then stages only the first output. There is no way to page or open the rest.
This is a user-drawer gap, not a persistence or billing bug.
Expected
- One history row per execution (one
runsrow /gateway_request_id). - User detail can inspect every stored output (gallery, pager, or output list).
- Cost stays the joined PymtHouse receipt/manifest for that run (not
num_images × unit price).
Actual
- History list: one row. Correct.
- Sidebar still shows
num_images: 4. Correct. extractRunOutputswalksimages[]and persist writes all public media URLs. Correct — MCP returned four asset IDs for the Schnell batch.CallDetailDrawerMediaStageis a single slot. It picksselectedAsset, else the first image/video/audio output, elseassets[0]:
// components/console/CallDetailDrawer.tsx
const outputAssets = activeDetail?.assets.filter((item) => item.role !== "input");
const asset =
outputAssets?.find(/* selected */) ??
outputAssets?.find((item) => /^(?:image|video|audio)(?:\/|$)/i.test(item.mediaType ?? "")) ??
outputAssets?.[0];
- Click-to-switch asset list is admin-only.
- User variant never renders result
images[]— only submitted params plus inference. - Usage-ticket attachment also keeps one URL per gateway job (
lib/console/activity-assets.ts).
Not a defect
| Observation | Verdict |
|---|---|
| One history row | Correct — history is execution-scoped |
Cost $0.0030 for the Schnell job |
Correct unless a receipt billed 4×. Schnell is a fixed job price; the label is the run total |
Repro
- Run Flux Schnell once with
num_images: 4(MCPlivepeer-example/fal-flux-schnell). - Open
/homehistory and the resulting row. - Confirm the sidebar says Num Images 4 and the stage shows only one image.
- Compare admin run detail: asset list can switch outputs.
Example run from local MCP: 4a18002c-c778-4416-a2b1-41ccb5885c60 (job_7fa2242c6d634f8f).
Suggested fix
Expose the already-persisted outputs on the user drawer (thumb strip / prev-next on MediaStage, or the same asset list admin already has). Keep one history row. Do not invent per-image cost unless billing evidence says so.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 15h 45m
- Merged PRs (30d)
- 48
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from livepeer/console
-
Difficulty 2/5 1-3 hours Newbie friendliness 91/100
-
enhancement
All issues in livepeer/console
Similar issues
-
comp/desktop P3 type/bug
Difficulty 1/5 Under an hour Newbie friendliness 92/100
NousResearch/hermes-agent#118866 ·
-
Browser Waiting for: Product Owner
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
getsentry/sentry-javascript#24577 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
agilepathway/label-checker#640 ·
-
Plugin stuck at "loading" on DSH 0.1.6-alpha.2 — turnTail list slot registration missing options.id Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
chrisparsons83/flexspotff#153 ·