Skip to content

feat: add per-record job timeline, requeue and nextInChain - #72

Merged
Mateusz7410 merged 2 commits into
mainfrom
feature/async-0012
Nov 6, 2026
Merged

Mateusz7410 merged 2 commits into
mainfrom
feature/async-0012

Conversation

@Mateusz7410

Copy link
Copy Markdown
Collaborator

Summary

  • New Async Jobs record page component: chains, chunk runs, delays, failures, chain map and live updates for one record.
  • Ordered requeue from the card for failed steps, gated by the AsyncRequeue custom permission.
  • nextInChain() for jobs added from inside a running job (Run after current #68).
  • ChainSequence__c now always holds run order. New AddedByCustomJobId__c, DelayMinutes__c and NextAttemptAt__c on AsyncResult__c.
  • Batch failures are handled 50 per delivery with a resume checkpoint, so a logger cannot lose them.
  • AsyncResultAccess now also grants the card's controller class, so a viewer needs nothing else.
  • New PMD rule AuraEnabledInnerClassParameter. An inner class as an @AuraEnabled parameter dies with an internal server error under a namespace, before the method runs.
  • Docs, landing page demo and screenshots updated. Internal tests, demos and verify scripts moved to dev/.

Why

A record had no single place showing what ran, runs or will run for it, and failed steps could not be replayed in order from there (#69). #68 asks for chaining a job next from inside a running job.

Test plan

  • bash dev/verify/verify.sh static passed (prettier, eslint, headers, PMD, Jest 213/213)
  • bash dev/verify/verify.sh full passed (419/419, org coverage 94%)
  • bash dev/verify/verify.sh ns passed
  • Built a package beta (coverage 96%), installed it in a no-namespace scratch org, 46 consumer tests pass
  • Manual, card on the installed package as Standard User with AsyncResultAccess only: delayed chain shows DELAYED then COMPLETED, no requeue button, no Aura errors
  • Manual, same user plus AsyncRequeueAccess: requeued a failed step, replay completed
  • Not tested: the card on Experience Cloud pages

Files

  • force-app/main/default/lwc/asyncJobTimeline/__tests__/asyncJobTimeline.test.js
  • force-app/main/default/lwc/asyncJobTimelineModel/__tests__/asyncJobTimelineModel.test.js
  • force-app/main/default/lwc/asyncJobTimeline/asyncJobTimeline.js
  • website/.vitepress/theme/components/JobTimelineDemo.vue
  • force-app/main/default/classes/timeline/AsyncJobTimelineControllerTest.cls
  • force-app/main/default/lwc/asyncJobStep/__tests__/asyncJobStep.test.js
  • force-app/main/default/lwc/asyncJobTimelineModel/asyncJobTimelineModel.js
  • force-app/main/default/classes/queue/AsyncResultWriter.cls
  • force-app/main/default/lwc/asyncJobStep/asyncJobStep.css
  • force-app/main/default/lwc/asyncJobSequence/__tests__/asyncJobSequence.test.js

Closes #69
Closes #68

Async Jobs card on any record page: chains, chunk runs, delays, failures,
chain map and ordered requeue. ChainSequence__c now follows run order, and
batch failures are handled 50 per delivery so a logger cannot lose them.
Internal tests, demos and verify scripts move to dev/.

Closes #69
Closes #68
@vercel

vercel Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
async-lib Ready Ready Preview Nov 6, 2026 4:17pm UTC

Request Review

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

🚀 Salesforce CI

✅ Deployment succeeded

✅ All tests passed

==========================================
     APEX TEST EXECUTION SUMMARY
==========================================

📊 Total Tests: 440
✅ Passed: 440
❌ Failed: 0
⏭️  Skipped: 0


🎉 All tests passed successfully!

📦 Workflow run, logs and artifacts


📊 Stats: 440 total | ✅ 440 passed | ❌ 0 failed
🤖 Automated comment by Salesforce CI

@codecov

codecov Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.52%. Comparing base (d4d0c2e) to head (a821e79).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #72      +/-   ##
==========================================
+ Coverage   99.19%   99.52%   +0.33%     
==========================================
  Files          33       41       +8     
  Lines        2225     3188     +963     
==========================================
+ Hits         2207     3173     +966     
+ Misses         18       15       -3     
Flag Coverage Δ
Apex 99.52% <100.00%> (+0.33%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Mateusz7410
Mateusz7410 merged commit 52344b1 into main Nov 6, 2026
6 checks passed

This branch was successfully deployed

1 active deployment
Preview — a821e797 Deployed Nov 6, 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.

Per-record job timeline with ordered requeue of failed and dependent jobs Run after current

1 participant