Skip to content

All 3.0.3 sandbox#806

Open
gouravmore wants to merge 753 commits intomainfrom
all-3.0.3-sandbox
Open

All 3.0.3 sandbox#806
gouravmore wants to merge 753 commits intomainfrom
all-3.0.3-sandbox

Conversation

@gouravmore
Copy link
Copy Markdown
Member

@gouravmore gouravmore commented Apr 3, 2026

All 3.0.3 sandbox

Summary by CodeRabbit

  • New Features

    • Added new UI component library with styling framework enhancements
    • Introduced language transliteration capabilities
  • Chores

    • Updated build system and Node memory configuration for improved performance
    • Expanded project dependencies with UI and styling utilities
    • Removed legacy environment configuration file

DevendraPPatil and others added 30 commits February 10, 2026 14:11
Fix:253229 Practice Level showing incorrect issue fixed
IssueId #253762 fix : "F2-A3--> On F2 completion total 4 addLesson calls added
IssuesId #253762 fix : addLesson issues in F3 A1 and A2 . B milestone addLesson submileston addded
Fix:In add lesson api "mB" as a milestone is added for the F1,F2,F3
IssueId #253762 fix : addLesson issue in M1 of milestone type and progress issue
Issue #253715 fix: Incrse the font size for Sree Krushnadevaraya font…
"Fix:#253229 Letter recognition demo vedio palys in every practice session"
Issue #253715 fix: increase the font size for Sree Krushnadevaraya font
Issue #0000 fix: telugu font issue fixes
Issue #0000 fix: Correct box fixes for telugu font
Issue #0000 fix: Added loader for get set result api response
Issue #0000 fix: Getset result loader annimation changes
Task #0000 fix : M2 contentlimit set to 10 for P4
Tassk #0000 fix : M2 contentlimit set to 10 for P4
Issue #0000 fix: state vs product login fixes
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 3, 2026

Walkthrough

This PR removes the committed .env file, updates 11 CI/CD workflows to inject REACT_APP_* build-time environment variables, adds PostCSS and Webpack configuration files for TypeScript/Tailwind support, and updates package.json to include Radix UI components, Tailwind CSS, transliteration libraries, and switches build tooling from react-scripts to react-app-rewired.

Changes

Cohort / File(s) Summary
Environment and Git Configuration
.env, .gitignore
Deleted entire .env file (26 lines removed) and added .env.local and .env to .gitignore to prevent future commits of local environment files.
CI/CD Workflow Environment Variables
.github/workflows/all-app-sandbox.yml, .github/workflows/all-dev-rig-temp.yml, .github/workflows/all-dev-rig.yml, .github/workflows/all-dev-tn-new.yml, .github/workflows/all-dev-tn.yml, .github/workflows/all-prod-rig.yml, .github/workflows/all-prod-tn-staging.yml, .github/workflows/all-prod-tn.yml, .github/workflows/all-staging-tn.yml, .github/workflows/all-temp-staging.yml
Added build-time environment variables (REACT_APP_LOGIN_MODE, REACT_APP_ENABLE_RESET_ROUTE, REACT_APP_NATIVE_LANGUAGES, REACT_APP_DEFAULT_NATIVE_LANGUAGE) to workflows; all-app-sandbox.yml and all-dev-rig.yml also updated branch triggers and added REACT_APP_USE_RECOMMENDATION_API/REACT_APP_ENGAGEMENT_PREDICT_URL; all-app-sandbox.yml changed S3 deployment path.
Build Configuration and Tooling
config-overrides.js, postcss.config.js, package.json
Added config-overrides.js (CRA Webpack override for TypeScript resolution and ForkTsCheckerWebpackPlugin configuration), postcss.config.js (Tailwind/autoprefixer setup), and updated package.json to add Radix UI, Tailwind CSS, transliteration libraries, and switch build scripts to react-app-rewired with NODE_OPTIONS=--max_old_space_size=4096.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • PR #369: Modifies the same GitHub Actions workflow files to add/modify REACT_APP_* build environment variables across multiple CI/CD pipelines.
  • PR #632: Updates .gitignore to add entries for .env and .env.local to prevent environment files from being committed.
  • PR #501: Adds REACT_APP_* environment variable definitions back into .env/.env.sample, representing opposing edits to this PR's .env deletion.

Suggested reviewers

  • swayangjit
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title "All 3.0.3 sandbox" is vague and does not clearly describe the specific changes in the changeset. While it references the version and sandbox context, it lacks specificity about what was actually changed. Consider using a more descriptive title that highlights the primary changes, such as "Configure 3.0.3 sandbox workflows and add React build tooling" or "Update build configuration and GitHub workflows for 3.0.3 sandbox release."
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch all-3.0.3-sandbox
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch all-3.0.3-sandbox

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/all-prod-tn.yml (1)

76-82: ⚠️ Potential issue | 🔴 Critical

Add missing AWS credential environment variables to production workflow build step.

The production workflow is missing REACT_APP_AWS_ACCESS_KEY_ID and REACT_APP_AWS_SECRET_ACCESS_KEY in the build environment, while the dev and staging workflows include them. The application code uses these credentials in src/config/awsS3.js to configure the AWS S3 client for operations like audio uploads. Without these variables, S3 operations will fail in the production build.

Add these lines to the build step env in .github/workflows/all-prod-tn.yml:

REACT_APP_AWS_ACCESS_KEY_ID: ${{ secrets.REACT_APP_AWS_ACCESS_KEY_ID }}
REACT_APP_AWS_SECRET_ACCESS_KEY: ${{ secrets.REACT_APP_AWS_SECRET_ACCESS_KEY }}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/all-prod-tn.yml around lines 76 - 82, The production
workflow build step is missing AWS credential env vars needed by
src/config/awsS3.js; add REACT_APP_AWS_ACCESS_KEY_ID and
REACT_APP_AWS_SECRET_ACCESS_KEY to the build step env in
.github/workflows/all-prod-tn.yml and map them to the corresponding repository
secrets (use secrets.REACT_APP_AWS_ACCESS_KEY_ID and
secrets.REACT_APP_AWS_SECRET_ACCESS_KEY) so the AWS S3 client can be configured
during the production build.
🧹 Nitpick comments (3)
.gitignore (1)

114-115: Deduplicate repeated dotenv ignore rules.

Line 114-115 repeat existing behavior already covered by Line 12 (.env) and Line 15 (*.env*). Keeping a single source of truth makes .gitignore easier to maintain.

♻️ Proposed cleanup
-build
-.env.local
-.env
+build
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.gitignore around lines 114 - 115, Remove the duplicated dotenv ignore rules
by deleting the redundant ".env.local" and ".env" entries and keeping the
broader "*.env*" (or a single ".env") pattern so there's a single source of
truth; locate the repeated entries named ".env.local" and ".env" in the
.gitignore and consolidate to the existing "*.env*" rule (or just ".env") to
avoid redundancy and simplify maintenance.
postcss.config.js (1)

7-11: Minor: Remove trailing blank lines.

Proposed fix
 module.exports = {
   plugins: {
     tailwindcss: {},
     autoprefixer: {},
   },
 }
-
-
-
-
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@postcss.config.js` around lines 7 - 11, The file postcss.config.js contains
trailing blank lines at the end; remove the extra empty lines so the file ends
immediately after the last statement/closing token (no multiple blank lines or
unnecessary EOF newlines), then save and run your formatter/linter (e.g.,
Prettier/ESLint) to ensure consistent file-end newline behavior.
package.json (1)

146-146: Remove react from devDependencies to avoid duplicate declarations.

react is already declared in dependencies (Line 73) and should not be repeated in devDependencies (Line 146). Duplicate dependency declarations can cause version drift and unnecessary lockfile changes.

Proposed cleanup
   "devDependencies": {
     "@babel/preset-typescript": "^7.28.5",
     "@mui/styles": "^5.15.10",
     "autoprefixer": "^10.4.23",
     "customize-cra": "^1.0.0",
     "eslint": "^7.32.0",
     "eslint-config-prettier": "^8.3.0",
     "eslint-plugin-prettier": "^3.4.0",
     "husky": "^9.0.11",
     "lint-staged": "^11.0.0",
     "postcss": "^8.5.6",
     "prettier": "^2.3.2",
-    "react": "^18.2.0",
     "react-app-rewired": "^2.2.1",
     "tailwindcss": "^3.4.17",
     "tailwindcss-animate": "^1.0.7"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` at line 146, Open package.json and remove the duplicate "react"
entry from the devDependencies object so that "react" exists only under
"dependencies"; after editing, run your package manager (npm install or yarn
install) to update the lockfile and verify there are no duplicate/react version
drift (e.g., confirm "react" appears only under "dependencies").
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/all-app-sandbox.yml:
- Line 86: The predictEngagement code calls axios.post using
process.env.REACT_APP_ENGAGEMENT_PREDICT_URL without checking for undefined;
update the predictEngagement function in learnerAiService.js to defensively
handle a missing URL by checking const url =
process.env.REACT_APP_ENGAGEMENT_PREDICT_URL and if falsy either return early
(skip the call) or log a clear warning and resolve with a safe default rather
than calling axios.post(undefined), so production runs without that env var
won’t throw a network error; ensure the change is made inside the
predictEngagement function and that any callers still receive a predictable
result.

---

Outside diff comments:
In @.github/workflows/all-prod-tn.yml:
- Around line 76-82: The production workflow build step is missing AWS
credential env vars needed by src/config/awsS3.js; add
REACT_APP_AWS_ACCESS_KEY_ID and REACT_APP_AWS_SECRET_ACCESS_KEY to the build
step env in .github/workflows/all-prod-tn.yml and map them to the corresponding
repository secrets (use secrets.REACT_APP_AWS_ACCESS_KEY_ID and
secrets.REACT_APP_AWS_SECRET_ACCESS_KEY) so the AWS S3 client can be configured
during the production build.

---

Nitpick comments:
In @.gitignore:
- Around line 114-115: Remove the duplicated dotenv ignore rules by deleting the
redundant ".env.local" and ".env" entries and keeping the broader "*.env*" (or a
single ".env") pattern so there's a single source of truth; locate the repeated
entries named ".env.local" and ".env" in the .gitignore and consolidate to the
existing "*.env*" rule (or just ".env") to avoid redundancy and simplify
maintenance.

In `@package.json`:
- Line 146: Open package.json and remove the duplicate "react" entry from the
devDependencies object so that "react" exists only under "dependencies"; after
editing, run your package manager (npm install or yarn install) to update the
lockfile and verify there are no duplicate/react version drift (e.g., confirm
"react" appears only under "dependencies").

In `@postcss.config.js`:
- Around line 7-11: The file postcss.config.js contains trailing blank lines at
the end; remove the extra empty lines so the file ends immediately after the
last statement/closing token (no multiple blank lines or unnecessary EOF
newlines), then save and run your formatter/linter (e.g., Prettier/ESLint) to
ensure consistent file-end newline behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e1008862-19e9-4cdc-ab96-3565fa435533

📥 Commits

Reviewing files that changed from the base of the PR and between 24c0ee6 and cb91822.

⛔ Files ignored due to path filters (285)
  • package-lock.json is excluded by !**/package-lock.json
  • public/audio/audio-preview/Alphabet Chart/Chart Icon/en/ChartNarration.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/Chart Icon/kn/ChartNarration.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/Chart Icon/te/ChartNarration.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/en/alphabetNarration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/en/alphabetNarration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/en/alphabetNarration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/en/syllableNarration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/en/syllableNarration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/en/syllableNarration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/kn/alphabetNarration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/kn/alphabetNarration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/kn/alphabetNarration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/kn/syllableNarration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/kn/syllableNarration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/kn/syllableNarration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/te/alphabetNarration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/te/alphabetNarration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/te/alphabetNarration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/te/syllableNarration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/te/syllableNarration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/Alphabet Chart/te/syllableNarration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/introduction/en/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/introduction/hi/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/introduction/kn/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/introduction/mr/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/introduction/te/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/en/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/en/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/en/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/en/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/hi/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/hi/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/hi/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/hi/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/kn/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/kn/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/kn/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/kn/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/mr/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/mr/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/mr/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/mr/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/te/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/te/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/te/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-hunt/te/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/all_ready.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/amazing.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/correct_feedback.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/fuel_explanation.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/fuel_meter.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/fuel_requirement.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/fuel_rilo.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/game_explanation.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/great_job.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/intro_destination.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/intro_narrator.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/intro_rocket.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/practice_controls.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/practice_intro.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/practice_question.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/ready_to_start.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/rilo_appears.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/en/wrong_feedback.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/all_ready.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/amazing.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/correct_feedback.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/fuel_explanation.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/fuel_meter.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/fuel_requirement.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/fuel_rilo.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/game_explanation.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/great_job.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/intro_destination.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/intro_narrator.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/intro_rocket.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/practice_controls.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/practice_intro.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/practice_question.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/ready_to_start.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/rilo_appears.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/hi/wrong_feedback.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/all_ready.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/amazing.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/correct_feedback.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/fuel_explanation.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/fuel_meter.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/fuel_requirement.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/fuel_rilo.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/game_explanation.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/great_job.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/intro_destination.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/intro_narrator.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/intro_rocket.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/practice_controls.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/practice_intro.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/practice_question.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/ready_to_start.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/rilo_appears.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/kn/wrong_feedback.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/all_ready.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/amazing.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/correct_feedback.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/fuel_explanation.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/fuel_meter.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/fuel_requirement.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/fuel_rilo.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/game_explanation.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/great_job.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/intro_destination.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/intro_narrator.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/intro_rocket.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/practice_controls.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/practice_intro.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/practice_question.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/ready_to_start.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/rilo_appears.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/mr/wrong_feedback.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/all_ready.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/amazing.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/correct_feedback.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/fuel_explanation.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/fuel_meter.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/fuel_requirement.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/fuel_rilo.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/game_explanation.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/great_job.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/intro_destination.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/intro_narrator.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/intro_rocket.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/practice_controls.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/practice_intro.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/practice_question.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/ready_to_start.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/rilo_appears.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/letter-launcher-story/te/wrong_feedback.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/en/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/en/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/en/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/en/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/hi/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/hi/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/hi/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/hi/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/kn/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/kn/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/kn/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/kn/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/mr/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/mr/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/mr/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/mr/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/te/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/te/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/te/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/memory-challenge/te/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/en/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/en/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/en/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/en/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/hi/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/hi/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/hi/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/hi/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/kn/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/kn/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/kn/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/kn/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/mr/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/mr/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/mr/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/mr/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/te/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/te/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/te/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-letter-games/quick-sight/te/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/en/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/en/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/en/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/en/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/hi/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/hi/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/hi/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/hi/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/kn/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/kn/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/kn/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/kn/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/mr/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/mr/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/mr/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/mr/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/te/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/te/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/te/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/fill-in-blanks/te/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/introduction/en/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/introduction/hi/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/introduction/kn/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/introduction/mr/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/introduction/te/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/en/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/en/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/en/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/en/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/hi/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/hi/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/hi/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/hi/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/kn/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/kn/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/kn/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/kn/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/mr/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/mr/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/mr/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/mr/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/te/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/te/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/te/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/sentence-builder/te/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/en/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/en/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/en/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/en/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/hi/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/hi/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/hi/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/hi/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/kn/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/kn/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/kn/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/kn/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/mr/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/mr/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/mr/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/mr/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/te/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/te/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/te/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-sentence-games/true-or-false/te/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/introduction/en/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/introduction/hi/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/introduction/kn/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/introduction/mr/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/introduction/te/introduction.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/en/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/en/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/en/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/en/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/hi/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/hi/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/hi/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/hi/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/kn/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/kn/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/kn/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/kn/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/mr/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/mr/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/mr/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/mr/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/te/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/te/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/te/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/picture-words/te/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/en/bread.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/en/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/en/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/en/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/en/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/hi/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/hi/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/hi/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/hi/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/kn/bread.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/kn/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/kn/narration2.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/kn/narration3.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/kn/narration4.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/kn/ಪಕ್ಷಿ.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/mr/bread.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/mr/narration1.wav is excluded by !**/*.wav
  • public/audio/audio-preview/combined-word-games/sound-match/mr/narration2.wav is excluded by !**/*.wav
📒 Files selected for processing (15)
  • .env
  • .github/workflows/all-app-sandbox.yml
  • .github/workflows/all-dev-rig-temp.yml
  • .github/workflows/all-dev-rig.yml
  • .github/workflows/all-dev-tn-new.yml
  • .github/workflows/all-dev-tn.yml
  • .github/workflows/all-prod-rig.yml
  • .github/workflows/all-prod-tn-staging.yml
  • .github/workflows/all-prod-tn.yml
  • .github/workflows/all-staging-tn.yml
  • .github/workflows/all-temp-staging .yml
  • .gitignore
  • config-overrides.js
  • package.json
  • postcss.config.js
💤 Files with no reviewable changes (1)
  • .env

REACT_APP_MAX_LEVEL: ${{ vars.REACT_APP_MAX_LEVEL }}
REACT_APP_LEARNER_AI_BASE_URL: ${{ vars.REACT_APP_LEARNER_AI_BASE_URL }}
REACT_APP_USE_RECOMMENDATION_API: ${{ vars.REACT_APP_USE_RECOMMENDATION_API }}
REACT_APP_ENGAGEMENT_PREDICT_URL: ${{ vars.REACT_APP_ENGAGEMENT_PREDICT_URL }}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

REACT_APP_ENGAGEMENT_PREDICT_URL only provided in sandbox/UAT workflows.

This env var is only injected in all-app-sandbox.yml and all-dev-rig.yml. Per src/services/learnerAi/learnerAiService.js:333-347, the predictEngagement function uses this URL directly without checking for undefined:

const url = process.env.REACT_APP_ENGAGEMENT_PREDICT_URL;
axios.post(url, payload, { ... })

In environments where this variable is not set, axios.post(undefined, ...) will fail with a network error. Consider:

  1. Adding defensive handling in predictEngagement to skip the call when URL is undefined, or
  2. Adding this variable to all workflows where engagement prediction should be active
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/all-app-sandbox.yml at line 86, The predictEngagement code
calls axios.post using process.env.REACT_APP_ENGAGEMENT_PREDICT_URL without
checking for undefined; update the predictEngagement function in
learnerAiService.js to defensively handle a missing URL by checking const url =
process.env.REACT_APP_ENGAGEMENT_PREDICT_URL and if falsy either return early
(skip the call) or log a clear warning and resolve with a safe default rather
than calling axios.post(undefined), so production runs without that env var
won’t throw a network error; ensure the change is made inside the
predictEngagement function and that any callers still receive a predictable
result.

@gouravmore gouravmore temporarily deployed to all-app-sandbox April 4, 2026 06:16 — with GitHub Actions Inactive
@gouravmore gouravmore deployed to all-app-sandbox April 6, 2026 13:14 — with GitHub Actions Active
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 6, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
144 Security Hotspots
19.9% Duplication on New Code (required ≤ 3%)
D Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

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.

5 participants