Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The ECS API image included the legacy frontend dependency tree on Node.js 16, and the root/workspace audit still reported critical, high and medium findings. This separates the API production dependencies into a non-root Alpine/Node.js 26 image and refreshes the frontend and development tools. The root/workspace audit and final API image scan now have zero findings at those severities.
The API uses the maintained Cypress Request fork, Nodemailer 10/AWS SDK v3 SES, current Swagger UI and corrected Passport session callbacks. The learning client retains React 16 while moving to Gatsby 4.25.9, patched Webpack/PostCSS and Storybook 8.6.19. The separate challenge editor uses React 18, React Router 7 and Vite 8, retaining its existing commands, API setting, port and build output.
Narrow compatibility adapters preserve UUID, glob, file detection, proxy and URI-decoding interfaces. Parcel components and the native LMDB cache use aligned versions. Gatsby's SSR bundle preserves mutable DEBUG handling; the editor deduplicates React and supplies CodeMirror's expected browser global. TypeScript checks the editor separately, and generated bundles are excluded from source checks. A new CI audit gate rejects critical/high/medium dependency findings. Cypress 16 uses public configuration exposure and allowlisted Node seed tasks; each test gets a fresh login where the removed cookie-preservation API was used. Browser CI explicitly installs the matching Cypress binary and uses the current GitHub action.
Validation:
npm ciincluding install scripts passes. Root/workspacenpm audit: 0 critical, 0 high, 0 moderate, 27 low. No vulnerabilities are ignored by the audit gate.exp/subclaims required by the unchanged Topcoder authorization code, so the page never shows “Welcome back”. Chrome and Firefox each finish with 31 passed, 75 failed and 59 skipped tests across 43 specs. Failures include that login mismatch, the documented null curriculum query, and page-content/selector expectations. The full end-to-end suite is not green.Known baseline limitations: the broader Jest suite has 828 passing tests and 42 failures across 8 suites for existing cookie-contract, curriculum-count, layout and snapshot expectations; this PR does not claim a green full suite. The unchanged
/learn/query requires superOrder/order/challengeOrder all zero, but the fork's QA curriculum occupies superOrder zero and starts at order 19, leaving that query empty. Individual challenge routes work. Search, telemetry and video-provider integration were not validated against external services. Low-severity audit findings remain outside the requested scope.The new audit covers the root lockfile and its workspaces; the final image scan covers the ECS API artifact. See
docker/api/README.mdandtools/legacy-compat/README.mdfor maintenance commands and compatibility details. No merge, deployment, shared-database access or production email was performed.