• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

source-academy / frontend / 29978465450
42%

Build:
DEFAULT BRANCH: master
Ran 23 Jul 2026 04:04AM UTC
Jobs 1
Files 468
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Jul 2026 04:01AM UTC coverage: 42.352% (+0.03%) from 42.325%
29978465450

push

github

web-flow
Fix conductor web plugin URLs resolving against the wrong origin (#4155)

resolveWebPluginUrl() returned the plugin directory's resolutions.web
string as-is (e.g. "./web/stepper/index.mjs", relative to where
directory.json itself lives - source-academy.github.io/plugins/).
That string is handed straight to a dynamic import() in
importAndRegisterWebPlugin, but a relative specifier passed to
import() resolves against the *importing module's own URL*, not
against the directory it was read from.

In production this resolved to a nonsensical same-origin path like
https://sourceacademy.org/static/js/web/stepper/index.mjs, which
serves the SPA's index.html for any unmatched route - so the dynamic
import failed with a MIME-type error ("Expected a JavaScript-or-Wasm
module script but the server responded with text/html"), the
StepperHostPlugin never constructed, and the Stepper side-content tab
stayed on its "Loading the stepper..." placeholder forever.

Resolve the URL against the plugin directory's own address
(directory.plugin.url) before returning it, so import() always gets
an absolute URL regardless of which chunk happens to call it.

Verified against the live production plugin directory and evaluators
(source-academy.github.io/plugins, .../py-slang) via a local dev
server: before the fix, the stepper bundle request went to
sourceacademy.org/static/js/web/stepper/index.mjs (wrong origin,
served index.html); after, it correctly goes to
source-academy.github.io/plugins/web/stepper/index.mjs and the
Stepper tab renders real content.

Co-authored-by: Shrey Jain <“shreyjain5132@email.com>

2760 of 7575 branches covered (36.44%)

Branch coverage included in aggregate %.

0 of 1 new or added line in 1 file covered. (0.0%)

6469 of 14216 relevant lines covered (45.51%)

28.42 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
4.69
0.0% src/commons/sagas/helpers/conductorEvaluatorCache.ts
Jobs
ID Job ID Ran Files Coverage
1 29978465450.1 23 Jul 2026 04:04AM UTC 468
42.35
GitHub Action Run
Source Files on build 29978465450
  • Tree
  • List 468
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • b2cfcc7e on github
  • Prev Build on master (#29910200637)
  • Next Build on master (#29979975227)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc