Skip to content

fix: keep timeline chip counts in step with the rows shown - #78

Merged
Mateusz7410 merged 1 commit into
mainfrom
fix/timeline-stale-counts
Nov 7, 2026
Merged

Mateusz7410 merged 1 commit into
mainfrom
fix/timeline-stale-counts

Conversation

@Mateusz7410

Copy link
Copy Markdown
Collaborator

Summary

  • Chip counts for the chains on the page now come from the same rows the card renders, so In flight 1 can't sit next to a completed row. The fingerprint is read before the rows, so a change in between shows up on the next poll.
  • New test shouldCountAPageChainByTheRowsReadForThePage: status snapshot taken while a step is ENQUEUED, the step then finishes, counts follow the rows. Rows of another record are ignored.
  • Experience Cloud targets removed from Async Jobs, and the claims from the 3.2.0 notes and docs. Tested on a site as a Customer Community user: View All lets them open results of records they can't see, and load returns chains for any record id. Fix is tracked in Record-scoped access for the Async Jobs card, then Experience Cloud #77.
  • Docs say AsyncResultAccess is View All, so the card is not a sharing boundary yet.

Why

Found while testing the 3.2.0 package before promote: on the installed card, a row showed COMPLETED, status Idle, chips In flight 1, Completed 0, until reload.

Test plan

  • bash dev/verify/verify.sh static passed (prettier + eslint + PMD, Jest 213/213)
  • bash dev/verify/verify.sh full passed (441/441, coverage 97%)
  • bash dev/verify/verify.sh ns passed

Files

  • force-app/main/default/classes/timeline/AsyncJobTimelineChains.cls
  • force-app/main/default/classes/timeline/AsyncJobTimelineLoader.cls
  • force-app/main/default/classes/timeline/AsyncJobTimelineControllerTest.cls
  • force-app/main/default/lwc/asyncJobTimeline/asyncJobTimeline.js-meta.xml
  • release-notes/v3.2.0.md
  • website/features/job-timeline.md, website/introduction/packaged-install.md, website/ai-usage.md

Refs #77

The card read chain statuses first and the rows later, so a job that
finished in between left In flight counted next to a completed row,
and polling stopped with the stale count. Counts for the page chains
now come from the same rows, and the fingerprint is read before them.

Experience Cloud targets are dropped from the card until access is
scoped to the record. The docs say AsyncResultAccess is View All.

Refs #77
@vercel

vercel Bot commented Nov 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
async-lib Building Building Preview Nov 7, 2026 1:08pm UTC

Request Review

@Mateusz7410
Mateusz7410 merged commit d1138fb into main Nov 7, 2026
1 of 4 checks passed
@github-actions

github-actions Bot commented Nov 7, 2026

Copy link
Copy Markdown

🚀 Salesforce CI

⏭️ Deployment skipped

An earlier step failed (scratch org creation or Dev Hub authorization), so nothing was deployed. Check the workflow logs.

📦 Workflow run, logs and artifacts


🤖 Automated comment by Salesforce CI

This branch was successfully deployed

1 active deployment
Preview — 3e3d08f0 Deployed Nov 7, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant