Add Module Loader#47
Conversation
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new Module Loader protocol and its implementation across three packages: a common package for shared types, a runner-side plugin to request and register modules, and a web-side plugin to fetch the module directory and serve module bundles. The feedback highlights critical improvements needed for protocol robustness and safety, including adding moduleName to response messages to prevent race conditions, handling potential promise rejections in asynchronous operations (such as dynamic imports and fetch requests), and securing the module name validation regex with anchors to prevent path traversal or input validation bypasses.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
This pull request introduces a new pluginset to load Source Academy modules via Conductor plugins. It adds three new packages,
@sourceacademy/common-module-loader,@sourceacademy/runner-module-loader, and@sourceacademy/web-module-loader. It also reverts the repository to Yarn PnP