fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions) - #262

Merged
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings
Jun 23, 2026
Merged

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)#262
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings

Conversation

@AndresL230

@AndresL230AndresL230 commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Fixes the chronically-red Frontend (lint + tsc + vitest) check (red on main and every PR). Two stacked causes, two commits:

1. Malformed eslint flag

The lint step ran npx eslint . --max-warnings -1. With a space, the bare -1 is parsed as an option → No -NUM option defined, exit 2 — eslint died before linting anything. Fixed to --max-warnings=-1 (no warning limit; warnings don't fail CI).

2. Stale bulk-suppressions baseline

Fixing the flag let eslint run, which exposed the real blocker: frontend/eslint-suppressions.json listed suppressions that no longer occur (mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped reporting). ESLint exits 2 on leftover suppressions regardless of --max-warnings. Pruned the dead entries (eslint . --prune-suppressions, −139 lines).

Verified locally (CI-matching deps via fresh npm ci against the synced lockfile)

  • npx eslint . --max-warnings=-1exit 0 (35 warnings, 0 errors)
  • npx tsc --noEmitexit 0
  • npm testexit 0 (10 files, 68 tests passed)

Once this lands on main, the Frontend check goes green repo-wide — including #261, which inherits the fix via its merge ref.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Corrected ESLint command flag syntax in the CI/CD workflow configuration to ensure reliable build validation behavior and consistent proper execution during continuous integration processes
    • Removed and consolidated outdated linting rule suppressions across multiple frontend components and modules, improving overall code quality standards and promoting strict adherence to established development guidelines

The lint step ran `npx eslint . --max-warnings -1`. With a space, the bare `-1`
is parsed as a CLI option ("No -NUM option defined") and eslint exits 2 — so the
Frontend (lint + tsc + vitest) job has been failing at lint on every push to main
and every PR, before tsc/vitest ever run.
Use `--max-warnings=-1` (with '='), which is the intended "no warning limit"
(warnings don't fail CI). This unblocks the Frontend check repo-wide and lets the
typecheck + vitest steps actually execute.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 93a8e383-82dd-4b1c-968d-3e4947ff4126

📥 Commits

Reviewing files that changed from the base of the PR and between f932cd3 and 2369d8a.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • frontend/eslint-suppressions.json
💤 Files with no reviewable changes (1)
  • frontend/eslint-suppressions.json

📝 Walkthrough

Walkthrough

The CI workflow ESLint command is updated to use --max-warnings=-1 (with =) to prevent argument parsing issues. Alongside this, 139 lines of react-hooks/set-state-in-effect and react-hooks/purity suppression entries are removed from frontend/eslint-suppressions.json across roughly a dozen frontend components and screen files.

Changes

ESLint CI Fix and Suppression Reduction

Layer / File(s)Summary
CI ESLint --max-warnings flag syntax fix
.github/workflows/ci.yml
Changes --max-warnings -1 to --max-warnings=-1 and adds comments explaining why the =-form is required to prevent ESLint from misinterpreting -1 as a bare option.
Remove react-hooks suppression entries
frontend/eslint-suppressions.json
Removes react-hooks/set-state-in-effect suppressions from src/app/(shell)/notetaker/page.tsx, src/app/(shell)/profile/[userId]/page.tsx, src/app/page.tsx, src/components/ChatPanel.tsx, src/components/FeedbackFlow.tsx, src/components/Gradebook/SyllabusUploadFlow.tsx, src/components/ManageCoursesModal.tsx, src/components/screens/Admin.tsx, .../Dashboard.tsx, .../Gradebook/Course.tsx, .../Landing.tsx, .../Social.tsx, and .../Tree.tsx; also removes react-hooks/purity from Dashboard, Social, and Tree.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐇 A flag with an equals sign, properly placed,
No more mis-parsed warnings in haste!
The hooks no longer need to hide,
Suppressions swept cleanly aside.
The linter hops free, ears up with pride! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: fixing the ESLint flag syntax and pruning stale suppressions from the CI configuration.
Description check✅ PassedThe description covers all major template sections with clear explanations of the problem, solution, and local verification results, though some non-critical template checkboxes are incomplete.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/frontend-ci-eslint-max-warnings

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.

@cloudflare-workers-and-pages

cloudflare-workers-and-pagesBot commented Jun 23, 2026

Copy link
Copy Markdown

Deploying with Cloudflare Workers Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

StatusNameLatest CommitPreview URLUpdated (UTC)
✅ Deployment successful!
View logs
frontend-staging2369d8aCommit Preview URL

Branch Preview URL
Jun 23 2026, 10:04 PM

Correcting the --max-warnings flag let eslint actually run, which exposed the
real blocker: eslint-suppressions.json listed suppressions that no longer occur
(mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped
reporting). ESLint exits 2 on leftover suppressions ("suppressions left that do not
occur anymore"), independent of --max-warnings.
Prune the dead entries (`eslint . --prune-suppressions`, -139 lines). Verified
locally against the synced lockfile (CI-matching deps): eslint, tsc --noEmit, and
vitest (68 tests) all pass. This + the flag fix green the Frontend check repo-wide.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AndresL230AndresL230 changed the title fix(ci): correct eslint --max-warnings flag so Frontend check can runfix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)Jun 23, 2026
@AndresL230
AndresL230 merged commit 32409a8 into mainJun 23, 2026
6 checks passed
@coderabbitaicoderabbitaiBot mentioned this pull request Jun 24, 2026
2 tasks
@AndresL230
AndresL230 deleted the fix/frontend-ci-eslint-max-warnings branch June 27, 2026 04:20
Sign up for freeto 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.

1 participant

@AndresL230
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions) - #262

Merged
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings
Jun 23, 2026
Merged

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)#262
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings

Conversation

@AndresL230

@AndresL230AndresL230 commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Fixes the chronically-red Frontend (lint + tsc + vitest) check (red on main and every PR). Two stacked causes, two commits:

1. Malformed eslint flag

The lint step ran npx eslint . --max-warnings -1. With a space, the bare -1 is parsed as an option → No -NUM option defined, exit 2 — eslint died before linting anything. Fixed to --max-warnings=-1 (no warning limit; warnings don't fail CI).

2. Stale bulk-suppressions baseline

Fixing the flag let eslint run, which exposed the real blocker: frontend/eslint-suppressions.json listed suppressions that no longer occur (mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped reporting). ESLint exits 2 on leftover suppressions regardless of --max-warnings. Pruned the dead entries (eslint . --prune-suppressions, −139 lines).

Verified locally (CI-matching deps via fresh npm ci against the synced lockfile)

  • npx eslint . --max-warnings=-1exit 0 (35 warnings, 0 errors)
  • npx tsc --noEmitexit 0
  • npm testexit 0 (10 files, 68 tests passed)

Once this lands on main, the Frontend check goes green repo-wide — including #261, which inherits the fix via its merge ref.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Corrected ESLint command flag syntax in the CI/CD workflow configuration to ensure reliable build validation behavior and consistent proper execution during continuous integration processes
    • Removed and consolidated outdated linting rule suppressions across multiple frontend components and modules, improving overall code quality standards and promoting strict adherence to established development guidelines

The lint step ran `npx eslint . --max-warnings -1`. With a space, the bare `-1`
is parsed as a CLI option ("No -NUM option defined") and eslint exits 2 — so the
Frontend (lint + tsc + vitest) job has been failing at lint on every push to main
and every PR, before tsc/vitest ever run.
Use `--max-warnings=-1` (with '='), which is the intended "no warning limit"
(warnings don't fail CI). This unblocks the Frontend check repo-wide and lets the
typecheck + vitest steps actually execute.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 93a8e383-82dd-4b1c-968d-3e4947ff4126

📥 Commits

Reviewing files that changed from the base of the PR and between f932cd3 and 2369d8a.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • frontend/eslint-suppressions.json
💤 Files with no reviewable changes (1)
  • frontend/eslint-suppressions.json

📝 Walkthrough

Walkthrough

The CI workflow ESLint command is updated to use --max-warnings=-1 (with =) to prevent argument parsing issues. Alongside this, 139 lines of react-hooks/set-state-in-effect and react-hooks/purity suppression entries are removed from frontend/eslint-suppressions.json across roughly a dozen frontend components and screen files.

Changes

ESLint CI Fix and Suppression Reduction

Layer / File(s)Summary
CI ESLint --max-warnings flag syntax fix
.github/workflows/ci.yml
Changes --max-warnings -1 to --max-warnings=-1 and adds comments explaining why the =-form is required to prevent ESLint from misinterpreting -1 as a bare option.
Remove react-hooks suppression entries
frontend/eslint-suppressions.json
Removes react-hooks/set-state-in-effect suppressions from src/app/(shell)/notetaker/page.tsx, src/app/(shell)/profile/[userId]/page.tsx, src/app/page.tsx, src/components/ChatPanel.tsx, src/components/FeedbackFlow.tsx, src/components/Gradebook/SyllabusUploadFlow.tsx, src/components/ManageCoursesModal.tsx, src/components/screens/Admin.tsx, .../Dashboard.tsx, .../Gradebook/Course.tsx, .../Landing.tsx, .../Social.tsx, and .../Tree.tsx; also removes react-hooks/purity from Dashboard, Social, and Tree.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐇 A flag with an equals sign, properly placed,
No more mis-parsed warnings in haste!
The hooks no longer need to hide,
Suppressions swept cleanly aside.
The linter hops free, ears up with pride! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: fixing the ESLint flag syntax and pruning stale suppressions from the CI configuration.
Description check✅ PassedThe description covers all major template sections with clear explanations of the problem, solution, and local verification results, though some non-critical template checkboxes are incomplete.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/frontend-ci-eslint-max-warnings

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.

@cloudflare-workers-and-pages

cloudflare-workers-and-pagesBot commented Jun 23, 2026

Copy link
Copy Markdown

Deploying with Cloudflare Workers Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

StatusNameLatest CommitPreview URLUpdated (UTC)
✅ Deployment successful!
View logs
frontend-staging2369d8aCommit Preview URL

Branch Preview URL
Jun 23 2026, 10:04 PM

Correcting the --max-warnings flag let eslint actually run, which exposed the
real blocker: eslint-suppressions.json listed suppressions that no longer occur
(mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped
reporting). ESLint exits 2 on leftover suppressions ("suppressions left that do not
occur anymore"), independent of --max-warnings.
Prune the dead entries (`eslint . --prune-suppressions`, -139 lines). Verified
locally against the synced lockfile (CI-matching deps): eslint, tsc --noEmit, and
vitest (68 tests) all pass. This + the flag fix green the Frontend check repo-wide.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AndresL230AndresL230 changed the title fix(ci): correct eslint --max-warnings flag so Frontend check can runfix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)Jun 23, 2026
@AndresL230
AndresL230 merged commit 32409a8 into mainJun 23, 2026
6 checks passed
@coderabbitaicoderabbitaiBot mentioned this pull request Jun 24, 2026
2 tasks
@AndresL230
AndresL230 deleted the fix/frontend-ci-eslint-max-warnings branch June 27, 2026 04:20
Sign up for freeto 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.

1 participant

@AndresL230
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions) - #262

Merged
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings
Jun 23, 2026
Merged

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)#262
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings

Conversation

@AndresL230

@AndresL230AndresL230 commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Fixes the chronically-red Frontend (lint + tsc + vitest) check (red on main and every PR). Two stacked causes, two commits:

1. Malformed eslint flag

The lint step ran npx eslint . --max-warnings -1. With a space, the bare -1 is parsed as an option → No -NUM option defined, exit 2 — eslint died before linting anything. Fixed to --max-warnings=-1 (no warning limit; warnings don't fail CI).

2. Stale bulk-suppressions baseline

Fixing the flag let eslint run, which exposed the real blocker: frontend/eslint-suppressions.json listed suppressions that no longer occur (mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped reporting). ESLint exits 2 on leftover suppressions regardless of --max-warnings. Pruned the dead entries (eslint . --prune-suppressions, −139 lines).

Verified locally (CI-matching deps via fresh npm ci against the synced lockfile)

  • npx eslint . --max-warnings=-1exit 0 (35 warnings, 0 errors)
  • npx tsc --noEmitexit 0
  • npm testexit 0 (10 files, 68 tests passed)

Once this lands on main, the Frontend check goes green repo-wide — including #261, which inherits the fix via its merge ref.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Corrected ESLint command flag syntax in the CI/CD workflow configuration to ensure reliable build validation behavior and consistent proper execution during continuous integration processes
    • Removed and consolidated outdated linting rule suppressions across multiple frontend components and modules, improving overall code quality standards and promoting strict adherence to established development guidelines

The lint step ran `npx eslint . --max-warnings -1`. With a space, the bare `-1`
is parsed as a CLI option ("No -NUM option defined") and eslint exits 2 — so the
Frontend (lint + tsc + vitest) job has been failing at lint on every push to main
and every PR, before tsc/vitest ever run.
Use `--max-warnings=-1` (with '='), which is the intended "no warning limit"
(warnings don't fail CI). This unblocks the Frontend check repo-wide and lets the
typecheck + vitest steps actually execute.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 93a8e383-82dd-4b1c-968d-3e4947ff4126

📥 Commits

Reviewing files that changed from the base of the PR and between f932cd3 and 2369d8a.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • frontend/eslint-suppressions.json
💤 Files with no reviewable changes (1)
  • frontend/eslint-suppressions.json

📝 Walkthrough

Walkthrough

The CI workflow ESLint command is updated to use --max-warnings=-1 (with =) to prevent argument parsing issues. Alongside this, 139 lines of react-hooks/set-state-in-effect and react-hooks/purity suppression entries are removed from frontend/eslint-suppressions.json across roughly a dozen frontend components and screen files.

Changes

ESLint CI Fix and Suppression Reduction

Layer / File(s)Summary
CI ESLint --max-warnings flag syntax fix
.github/workflows/ci.yml
Changes --max-warnings -1 to --max-warnings=-1 and adds comments explaining why the =-form is required to prevent ESLint from misinterpreting -1 as a bare option.
Remove react-hooks suppression entries
frontend/eslint-suppressions.json
Removes react-hooks/set-state-in-effect suppressions from src/app/(shell)/notetaker/page.tsx, src/app/(shell)/profile/[userId]/page.tsx, src/app/page.tsx, src/components/ChatPanel.tsx, src/components/FeedbackFlow.tsx, src/components/Gradebook/SyllabusUploadFlow.tsx, src/components/ManageCoursesModal.tsx, src/components/screens/Admin.tsx, .../Dashboard.tsx, .../Gradebook/Course.tsx, .../Landing.tsx, .../Social.tsx, and .../Tree.tsx; also removes react-hooks/purity from Dashboard, Social, and Tree.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐇 A flag with an equals sign, properly placed,
No more mis-parsed warnings in haste!
The hooks no longer need to hide,
Suppressions swept cleanly aside.
The linter hops free, ears up with pride! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: fixing the ESLint flag syntax and pruning stale suppressions from the CI configuration.
Description check✅ PassedThe description covers all major template sections with clear explanations of the problem, solution, and local verification results, though some non-critical template checkboxes are incomplete.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/frontend-ci-eslint-max-warnings

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.

@cloudflare-workers-and-pages

cloudflare-workers-and-pagesBot commented Jun 23, 2026

Copy link
Copy Markdown

Deploying with Cloudflare Workers Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

StatusNameLatest CommitPreview URLUpdated (UTC)
✅ Deployment successful!
View logs
frontend-staging2369d8aCommit Preview URL

Branch Preview URL
Jun 23 2026, 10:04 PM

Correcting the --max-warnings flag let eslint actually run, which exposed the
real blocker: eslint-suppressions.json listed suppressions that no longer occur
(mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped
reporting). ESLint exits 2 on leftover suppressions ("suppressions left that do not
occur anymore"), independent of --max-warnings.
Prune the dead entries (`eslint . --prune-suppressions`, -139 lines). Verified
locally against the synced lockfile (CI-matching deps): eslint, tsc --noEmit, and
vitest (68 tests) all pass. This + the flag fix green the Frontend check repo-wide.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AndresL230AndresL230 changed the title fix(ci): correct eslint --max-warnings flag so Frontend check can runfix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)Jun 23, 2026
@AndresL230
AndresL230 merged commit 32409a8 into mainJun 23, 2026
6 checks passed
@coderabbitaicoderabbitaiBot mentioned this pull request Jun 24, 2026
2 tasks
@AndresL230
AndresL230 deleted the fix/frontend-ci-eslint-max-warnings branch June 27, 2026 04:20
Sign up for freeto 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.

1 participant

@AndresL230
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions) - #262

Merged
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings
Jun 23, 2026
Merged

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)#262
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings

Conversation

@AndresL230

@AndresL230AndresL230 commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Fixes the chronically-red Frontend (lint + tsc + vitest) check (red on main and every PR). Two stacked causes, two commits:

1. Malformed eslint flag

The lint step ran npx eslint . --max-warnings -1. With a space, the bare -1 is parsed as an option → No -NUM option defined, exit 2 — eslint died before linting anything. Fixed to --max-warnings=-1 (no warning limit; warnings don't fail CI).

2. Stale bulk-suppressions baseline

Fixing the flag let eslint run, which exposed the real blocker: frontend/eslint-suppressions.json listed suppressions that no longer occur (mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped reporting). ESLint exits 2 on leftover suppressions regardless of --max-warnings. Pruned the dead entries (eslint . --prune-suppressions, −139 lines).

Verified locally (CI-matching deps via fresh npm ci against the synced lockfile)

  • npx eslint . --max-warnings=-1exit 0 (35 warnings, 0 errors)
  • npx tsc --noEmitexit 0
  • npm testexit 0 (10 files, 68 tests passed)

Once this lands on main, the Frontend check goes green repo-wide — including #261, which inherits the fix via its merge ref.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Corrected ESLint command flag syntax in the CI/CD workflow configuration to ensure reliable build validation behavior and consistent proper execution during continuous integration processes
    • Removed and consolidated outdated linting rule suppressions across multiple frontend components and modules, improving overall code quality standards and promoting strict adherence to established development guidelines

The lint step ran `npx eslint . --max-warnings -1`. With a space, the bare `-1`
is parsed as a CLI option ("No -NUM option defined") and eslint exits 2 — so the
Frontend (lint + tsc + vitest) job has been failing at lint on every push to main
and every PR, before tsc/vitest ever run.
Use `--max-warnings=-1` (with '='), which is the intended "no warning limit"
(warnings don't fail CI). This unblocks the Frontend check repo-wide and lets the
typecheck + vitest steps actually execute.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 93a8e383-82dd-4b1c-968d-3e4947ff4126

📥 Commits

Reviewing files that changed from the base of the PR and between f932cd3 and 2369d8a.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • frontend/eslint-suppressions.json
💤 Files with no reviewable changes (1)
  • frontend/eslint-suppressions.json

📝 Walkthrough

Walkthrough

The CI workflow ESLint command is updated to use --max-warnings=-1 (with =) to prevent argument parsing issues. Alongside this, 139 lines of react-hooks/set-state-in-effect and react-hooks/purity suppression entries are removed from frontend/eslint-suppressions.json across roughly a dozen frontend components and screen files.

Changes

ESLint CI Fix and Suppression Reduction

Layer / File(s)Summary
CI ESLint --max-warnings flag syntax fix
.github/workflows/ci.yml
Changes --max-warnings -1 to --max-warnings=-1 and adds comments explaining why the =-form is required to prevent ESLint from misinterpreting -1 as a bare option.
Remove react-hooks suppression entries
frontend/eslint-suppressions.json
Removes react-hooks/set-state-in-effect suppressions from src/app/(shell)/notetaker/page.tsx, src/app/(shell)/profile/[userId]/page.tsx, src/app/page.tsx, src/components/ChatPanel.tsx, src/components/FeedbackFlow.tsx, src/components/Gradebook/SyllabusUploadFlow.tsx, src/components/ManageCoursesModal.tsx, src/components/screens/Admin.tsx, .../Dashboard.tsx, .../Gradebook/Course.tsx, .../Landing.tsx, .../Social.tsx, and .../Tree.tsx; also removes react-hooks/purity from Dashboard, Social, and Tree.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐇 A flag with an equals sign, properly placed,
No more mis-parsed warnings in haste!
The hooks no longer need to hide,
Suppressions swept cleanly aside.
The linter hops free, ears up with pride! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: fixing the ESLint flag syntax and pruning stale suppressions from the CI configuration.
Description check✅ PassedThe description covers all major template sections with clear explanations of the problem, solution, and local verification results, though some non-critical template checkboxes are incomplete.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/frontend-ci-eslint-max-warnings

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.

@cloudflare-workers-and-pages

cloudflare-workers-and-pagesBot commented Jun 23, 2026

Copy link
Copy Markdown

Deploying with Cloudflare Workers Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

StatusNameLatest CommitPreview URLUpdated (UTC)
✅ Deployment successful!
View logs
frontend-staging2369d8aCommit Preview URL

Branch Preview URL
Jun 23 2026, 10:04 PM

Correcting the --max-warnings flag let eslint actually run, which exposed the
real blocker: eslint-suppressions.json listed suppressions that no longer occur
(mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped
reporting). ESLint exits 2 on leftover suppressions ("suppressions left that do not
occur anymore"), independent of --max-warnings.
Prune the dead entries (`eslint . --prune-suppressions`, -139 lines). Verified
locally against the synced lockfile (CI-matching deps): eslint, tsc --noEmit, and
vitest (68 tests) all pass. This + the flag fix green the Frontend check repo-wide.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AndresL230AndresL230 changed the title fix(ci): correct eslint --max-warnings flag so Frontend check can runfix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)Jun 23, 2026
@AndresL230
AndresL230 merged commit 32409a8 into mainJun 23, 2026
6 checks passed
@coderabbitaicoderabbitaiBot mentioned this pull request Jun 24, 2026
2 tasks
@AndresL230
AndresL230 deleted the fix/frontend-ci-eslint-max-warnings branch June 27, 2026 04:20
Sign up for freeto 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.

1 participant

@AndresL230
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions) - #262

Merged
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings
Jun 23, 2026
Merged

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)#262
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings

Conversation

@AndresL230

@AndresL230AndresL230 commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Fixes the chronically-red Frontend (lint + tsc + vitest) check (red on main and every PR). Two stacked causes, two commits:

1. Malformed eslint flag

The lint step ran npx eslint . --max-warnings -1. With a space, the bare -1 is parsed as an option → No -NUM option defined, exit 2 — eslint died before linting anything. Fixed to --max-warnings=-1 (no warning limit; warnings don't fail CI).

2. Stale bulk-suppressions baseline

Fixing the flag let eslint run, which exposed the real blocker: frontend/eslint-suppressions.json listed suppressions that no longer occur (mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped reporting). ESLint exits 2 on leftover suppressions regardless of --max-warnings. Pruned the dead entries (eslint . --prune-suppressions, −139 lines).

Verified locally (CI-matching deps via fresh npm ci against the synced lockfile)

  • npx eslint . --max-warnings=-1exit 0 (35 warnings, 0 errors)
  • npx tsc --noEmitexit 0
  • npm testexit 0 (10 files, 68 tests passed)

Once this lands on main, the Frontend check goes green repo-wide — including #261, which inherits the fix via its merge ref.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Corrected ESLint command flag syntax in the CI/CD workflow configuration to ensure reliable build validation behavior and consistent proper execution during continuous integration processes
    • Removed and consolidated outdated linting rule suppressions across multiple frontend components and modules, improving overall code quality standards and promoting strict adherence to established development guidelines

The lint step ran `npx eslint . --max-warnings -1`. With a space, the bare `-1`
is parsed as a CLI option ("No -NUM option defined") and eslint exits 2 — so the
Frontend (lint + tsc + vitest) job has been failing at lint on every push to main
and every PR, before tsc/vitest ever run.
Use `--max-warnings=-1` (with '='), which is the intended "no warning limit"
(warnings don't fail CI). This unblocks the Frontend check repo-wide and lets the
typecheck + vitest steps actually execute.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 93a8e383-82dd-4b1c-968d-3e4947ff4126

📥 Commits

Reviewing files that changed from the base of the PR and between f932cd3 and 2369d8a.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • frontend/eslint-suppressions.json
💤 Files with no reviewable changes (1)
  • frontend/eslint-suppressions.json

📝 Walkthrough

Walkthrough

The CI workflow ESLint command is updated to use --max-warnings=-1 (with =) to prevent argument parsing issues. Alongside this, 139 lines of react-hooks/set-state-in-effect and react-hooks/purity suppression entries are removed from frontend/eslint-suppressions.json across roughly a dozen frontend components and screen files.

Changes

ESLint CI Fix and Suppression Reduction

Layer / File(s)Summary
CI ESLint --max-warnings flag syntax fix
.github/workflows/ci.yml
Changes --max-warnings -1 to --max-warnings=-1 and adds comments explaining why the =-form is required to prevent ESLint from misinterpreting -1 as a bare option.
Remove react-hooks suppression entries
frontend/eslint-suppressions.json
Removes react-hooks/set-state-in-effect suppressions from src/app/(shell)/notetaker/page.tsx, src/app/(shell)/profile/[userId]/page.tsx, src/app/page.tsx, src/components/ChatPanel.tsx, src/components/FeedbackFlow.tsx, src/components/Gradebook/SyllabusUploadFlow.tsx, src/components/ManageCoursesModal.tsx, src/components/screens/Admin.tsx, .../Dashboard.tsx, .../Gradebook/Course.tsx, .../Landing.tsx, .../Social.tsx, and .../Tree.tsx; also removes react-hooks/purity from Dashboard, Social, and Tree.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐇 A flag with an equals sign, properly placed,
No more mis-parsed warnings in haste!
The hooks no longer need to hide,
Suppressions swept cleanly aside.
The linter hops free, ears up with pride! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: fixing the ESLint flag syntax and pruning stale suppressions from the CI configuration.
Description check✅ PassedThe description covers all major template sections with clear explanations of the problem, solution, and local verification results, though some non-critical template checkboxes are incomplete.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/frontend-ci-eslint-max-warnings

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.

@cloudflare-workers-and-pages

cloudflare-workers-and-pagesBot commented Jun 23, 2026

Copy link
Copy Markdown

Deploying with Cloudflare Workers Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

StatusNameLatest CommitPreview URLUpdated (UTC)
✅ Deployment successful!
View logs
frontend-staging2369d8aCommit Preview URL

Branch Preview URL
Jun 23 2026, 10:04 PM

Correcting the --max-warnings flag let eslint actually run, which exposed the
real blocker: eslint-suppressions.json listed suppressions that no longer occur
(mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped
reporting). ESLint exits 2 on leftover suppressions ("suppressions left that do not
occur anymore"), independent of --max-warnings.
Prune the dead entries (`eslint . --prune-suppressions`, -139 lines). Verified
locally against the synced lockfile (CI-matching deps): eslint, tsc --noEmit, and
vitest (68 tests) all pass. This + the flag fix green the Frontend check repo-wide.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AndresL230AndresL230 changed the title fix(ci): correct eslint --max-warnings flag so Frontend check can runfix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)Jun 23, 2026
@AndresL230
AndresL230 merged commit 32409a8 into mainJun 23, 2026
6 checks passed
@coderabbitaicoderabbitaiBot mentioned this pull request Jun 24, 2026
2 tasks
@AndresL230
AndresL230 deleted the fix/frontend-ci-eslint-max-warnings branch June 27, 2026 04:20
Sign up for freeto 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.

1 participant

@AndresL230
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions) - #262

Merged
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings
Jun 23, 2026
Merged

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)#262
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings

Conversation

@AndresL230

@AndresL230AndresL230 commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Fixes the chronically-red Frontend (lint + tsc + vitest) check (red on main and every PR). Two stacked causes, two commits:

1. Malformed eslint flag

The lint step ran npx eslint . --max-warnings -1. With a space, the bare -1 is parsed as an option → No -NUM option defined, exit 2 — eslint died before linting anything. Fixed to --max-warnings=-1 (no warning limit; warnings don't fail CI).

2. Stale bulk-suppressions baseline

Fixing the flag let eslint run, which exposed the real blocker: frontend/eslint-suppressions.json listed suppressions that no longer occur (mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped reporting). ESLint exits 2 on leftover suppressions regardless of --max-warnings. Pruned the dead entries (eslint . --prune-suppressions, −139 lines).

Verified locally (CI-matching deps via fresh npm ci against the synced lockfile)

  • npx eslint . --max-warnings=-1exit 0 (35 warnings, 0 errors)
  • npx tsc --noEmitexit 0
  • npm testexit 0 (10 files, 68 tests passed)

Once this lands on main, the Frontend check goes green repo-wide — including #261, which inherits the fix via its merge ref.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Corrected ESLint command flag syntax in the CI/CD workflow configuration to ensure reliable build validation behavior and consistent proper execution during continuous integration processes
    • Removed and consolidated outdated linting rule suppressions across multiple frontend components and modules, improving overall code quality standards and promoting strict adherence to established development guidelines

The lint step ran `npx eslint . --max-warnings -1`. With a space, the bare `-1`
is parsed as a CLI option ("No -NUM option defined") and eslint exits 2 — so the
Frontend (lint + tsc + vitest) job has been failing at lint on every push to main
and every PR, before tsc/vitest ever run.
Use `--max-warnings=-1` (with '='), which is the intended "no warning limit"
(warnings don't fail CI). This unblocks the Frontend check repo-wide and lets the
typecheck + vitest steps actually execute.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 93a8e383-82dd-4b1c-968d-3e4947ff4126

📥 Commits

Reviewing files that changed from the base of the PR and between f932cd3 and 2369d8a.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • frontend/eslint-suppressions.json
💤 Files with no reviewable changes (1)
  • frontend/eslint-suppressions.json

📝 Walkthrough

Walkthrough

The CI workflow ESLint command is updated to use --max-warnings=-1 (with =) to prevent argument parsing issues. Alongside this, 139 lines of react-hooks/set-state-in-effect and react-hooks/purity suppression entries are removed from frontend/eslint-suppressions.json across roughly a dozen frontend components and screen files.

Changes

ESLint CI Fix and Suppression Reduction

Layer / File(s)Summary
CI ESLint --max-warnings flag syntax fix
.github/workflows/ci.yml
Changes --max-warnings -1 to --max-warnings=-1 and adds comments explaining why the =-form is required to prevent ESLint from misinterpreting -1 as a bare option.
Remove react-hooks suppression entries
frontend/eslint-suppressions.json
Removes react-hooks/set-state-in-effect suppressions from src/app/(shell)/notetaker/page.tsx, src/app/(shell)/profile/[userId]/page.tsx, src/app/page.tsx, src/components/ChatPanel.tsx, src/components/FeedbackFlow.tsx, src/components/Gradebook/SyllabusUploadFlow.tsx, src/components/ManageCoursesModal.tsx, src/components/screens/Admin.tsx, .../Dashboard.tsx, .../Gradebook/Course.tsx, .../Landing.tsx, .../Social.tsx, and .../Tree.tsx; also removes react-hooks/purity from Dashboard, Social, and Tree.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐇 A flag with an equals sign, properly placed,
No more mis-parsed warnings in haste!
The hooks no longer need to hide,
Suppressions swept cleanly aside.
The linter hops free, ears up with pride! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: fixing the ESLint flag syntax and pruning stale suppressions from the CI configuration.
Description check✅ PassedThe description covers all major template sections with clear explanations of the problem, solution, and local verification results, though some non-critical template checkboxes are incomplete.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/frontend-ci-eslint-max-warnings

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.

@cloudflare-workers-and-pages

cloudflare-workers-and-pagesBot commented Jun 23, 2026

Copy link
Copy Markdown

Deploying with Cloudflare Workers Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

StatusNameLatest CommitPreview URLUpdated (UTC)
✅ Deployment successful!
View logs
frontend-staging2369d8aCommit Preview URL

Branch Preview URL
Jun 23 2026, 10:04 PM

Correcting the --max-warnings flag let eslint actually run, which exposed the
real blocker: eslint-suppressions.json listed suppressions that no longer occur
(mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped
reporting). ESLint exits 2 on leftover suppressions ("suppressions left that do not
occur anymore"), independent of --max-warnings.
Prune the dead entries (`eslint . --prune-suppressions`, -139 lines). Verified
locally against the synced lockfile (CI-matching deps): eslint, tsc --noEmit, and
vitest (68 tests) all pass. This + the flag fix green the Frontend check repo-wide.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AndresL230AndresL230 changed the title fix(ci): correct eslint --max-warnings flag so Frontend check can runfix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)Jun 23, 2026
@AndresL230
AndresL230 merged commit 32409a8 into mainJun 23, 2026
6 checks passed
@coderabbitaicoderabbitaiBot mentioned this pull request Jun 24, 2026
2 tasks
@AndresL230
AndresL230 deleted the fix/frontend-ci-eslint-max-warnings branch June 27, 2026 04:20
Sign up for freeto 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.

1 participant

@AndresL230
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions) - #262

Merged
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings
Jun 23, 2026
Merged

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)#262
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings

Conversation

@AndresL230

@AndresL230AndresL230 commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Fixes the chronically-red Frontend (lint + tsc + vitest) check (red on main and every PR). Two stacked causes, two commits:

1. Malformed eslint flag

The lint step ran npx eslint . --max-warnings -1. With a space, the bare -1 is parsed as an option → No -NUM option defined, exit 2 — eslint died before linting anything. Fixed to --max-warnings=-1 (no warning limit; warnings don't fail CI).

2. Stale bulk-suppressions baseline

Fixing the flag let eslint run, which exposed the real blocker: frontend/eslint-suppressions.json listed suppressions that no longer occur (mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped reporting). ESLint exits 2 on leftover suppressions regardless of --max-warnings. Pruned the dead entries (eslint . --prune-suppressions, −139 lines).

Verified locally (CI-matching deps via fresh npm ci against the synced lockfile)

  • npx eslint . --max-warnings=-1exit 0 (35 warnings, 0 errors)
  • npx tsc --noEmitexit 0
  • npm testexit 0 (10 files, 68 tests passed)

Once this lands on main, the Frontend check goes green repo-wide — including #261, which inherits the fix via its merge ref.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Corrected ESLint command flag syntax in the CI/CD workflow configuration to ensure reliable build validation behavior and consistent proper execution during continuous integration processes
    • Removed and consolidated outdated linting rule suppressions across multiple frontend components and modules, improving overall code quality standards and promoting strict adherence to established development guidelines

The lint step ran `npx eslint . --max-warnings -1`. With a space, the bare `-1`
is parsed as a CLI option ("No -NUM option defined") and eslint exits 2 — so the
Frontend (lint + tsc + vitest) job has been failing at lint on every push to main
and every PR, before tsc/vitest ever run.
Use `--max-warnings=-1` (with '='), which is the intended "no warning limit"
(warnings don't fail CI). This unblocks the Frontend check repo-wide and lets the
typecheck + vitest steps actually execute.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 93a8e383-82dd-4b1c-968d-3e4947ff4126

📥 Commits

Reviewing files that changed from the base of the PR and between f932cd3 and 2369d8a.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • frontend/eslint-suppressions.json
💤 Files with no reviewable changes (1)
  • frontend/eslint-suppressions.json

📝 Walkthrough

Walkthrough

The CI workflow ESLint command is updated to use --max-warnings=-1 (with =) to prevent argument parsing issues. Alongside this, 139 lines of react-hooks/set-state-in-effect and react-hooks/purity suppression entries are removed from frontend/eslint-suppressions.json across roughly a dozen frontend components and screen files.

Changes

ESLint CI Fix and Suppression Reduction

Layer / File(s)Summary
CI ESLint --max-warnings flag syntax fix
.github/workflows/ci.yml
Changes --max-warnings -1 to --max-warnings=-1 and adds comments explaining why the =-form is required to prevent ESLint from misinterpreting -1 as a bare option.
Remove react-hooks suppression entries
frontend/eslint-suppressions.json
Removes react-hooks/set-state-in-effect suppressions from src/app/(shell)/notetaker/page.tsx, src/app/(shell)/profile/[userId]/page.tsx, src/app/page.tsx, src/components/ChatPanel.tsx, src/components/FeedbackFlow.tsx, src/components/Gradebook/SyllabusUploadFlow.tsx, src/components/ManageCoursesModal.tsx, src/components/screens/Admin.tsx, .../Dashboard.tsx, .../Gradebook/Course.tsx, .../Landing.tsx, .../Social.tsx, and .../Tree.tsx; also removes react-hooks/purity from Dashboard, Social, and Tree.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐇 A flag with an equals sign, properly placed,
No more mis-parsed warnings in haste!
The hooks no longer need to hide,
Suppressions swept cleanly aside.
The linter hops free, ears up with pride! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: fixing the ESLint flag syntax and pruning stale suppressions from the CI configuration.
Description check✅ PassedThe description covers all major template sections with clear explanations of the problem, solution, and local verification results, though some non-critical template checkboxes are incomplete.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/frontend-ci-eslint-max-warnings

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.

@cloudflare-workers-and-pages

cloudflare-workers-and-pagesBot commented Jun 23, 2026

Copy link
Copy Markdown

Deploying with Cloudflare Workers Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

StatusNameLatest CommitPreview URLUpdated (UTC)
✅ Deployment successful!
View logs
frontend-staging2369d8aCommit Preview URL

Branch Preview URL
Jun 23 2026, 10:04 PM

Correcting the --max-warnings flag let eslint actually run, which exposed the
real blocker: eslint-suppressions.json listed suppressions that no longer occur
(mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped
reporting). ESLint exits 2 on leftover suppressions ("suppressions left that do not
occur anymore"), independent of --max-warnings.
Prune the dead entries (`eslint . --prune-suppressions`, -139 lines). Verified
locally against the synced lockfile (CI-matching deps): eslint, tsc --noEmit, and
vitest (68 tests) all pass. This + the flag fix green the Frontend check repo-wide.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AndresL230AndresL230 changed the title fix(ci): correct eslint --max-warnings flag so Frontend check can runfix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)Jun 23, 2026
@AndresL230
AndresL230 merged commit 32409a8 into mainJun 23, 2026
6 checks passed
@coderabbitaicoderabbitaiBot mentioned this pull request Jun 24, 2026
2 tasks
@AndresL230
AndresL230 deleted the fix/frontend-ci-eslint-max-warnings branch June 27, 2026 04:20
Sign up for freeto 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.

1 participant

@AndresL230
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions) - #262

Merged
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings
Jun 23, 2026
Merged

fix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)#262
AndresL230 merged 2 commits into
mainfrom
fix/frontend-ci-eslint-max-warnings

Conversation

@AndresL230

@AndresL230AndresL230 commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Fixes the chronically-red Frontend (lint + tsc + vitest) check (red on main and every PR). Two stacked causes, two commits:

1. Malformed eslint flag

The lint step ran npx eslint . --max-warnings -1. With a space, the bare -1 is parsed as an option → No -NUM option defined, exit 2 — eslint died before linting anything. Fixed to --max-warnings=-1 (no warning limit; warnings don't fail CI).

2. Stale bulk-suppressions baseline

Fixing the flag let eslint run, which exposed the real blocker: frontend/eslint-suppressions.json listed suppressions that no longer occur (mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped reporting). ESLint exits 2 on leftover suppressions regardless of --max-warnings. Pruned the dead entries (eslint . --prune-suppressions, −139 lines).

Verified locally (CI-matching deps via fresh npm ci against the synced lockfile)

  • npx eslint . --max-warnings=-1exit 0 (35 warnings, 0 errors)
  • npx tsc --noEmitexit 0
  • npm testexit 0 (10 files, 68 tests passed)

Once this lands on main, the Frontend check goes green repo-wide — including #261, which inherits the fix via its merge ref.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Corrected ESLint command flag syntax in the CI/CD workflow configuration to ensure reliable build validation behavior and consistent proper execution during continuous integration processes
    • Removed and consolidated outdated linting rule suppressions across multiple frontend components and modules, improving overall code quality standards and promoting strict adherence to established development guidelines

The lint step ran `npx eslint . --max-warnings -1`. With a space, the bare `-1`
is parsed as a CLI option ("No -NUM option defined") and eslint exits 2 — so the
Frontend (lint + tsc + vitest) job has been failing at lint on every push to main
and every PR, before tsc/vitest ever run.
Use `--max-warnings=-1` (with '='), which is the intended "no warning limit"
(warnings don't fail CI). This unblocks the Frontend check repo-wide and lets the
typecheck + vitest steps actually execute.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 93a8e383-82dd-4b1c-968d-3e4947ff4126

📥 Commits

Reviewing files that changed from the base of the PR and between f932cd3 and 2369d8a.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • frontend/eslint-suppressions.json
💤 Files with no reviewable changes (1)
  • frontend/eslint-suppressions.json

📝 Walkthrough

Walkthrough

The CI workflow ESLint command is updated to use --max-warnings=-1 (with =) to prevent argument parsing issues. Alongside this, 139 lines of react-hooks/set-state-in-effect and react-hooks/purity suppression entries are removed from frontend/eslint-suppressions.json across roughly a dozen frontend components and screen files.

Changes

ESLint CI Fix and Suppression Reduction

Layer / File(s)Summary
CI ESLint --max-warnings flag syntax fix
.github/workflows/ci.yml
Changes --max-warnings -1 to --max-warnings=-1 and adds comments explaining why the =-form is required to prevent ESLint from misinterpreting -1 as a bare option.
Remove react-hooks suppression entries
frontend/eslint-suppressions.json
Removes react-hooks/set-state-in-effect suppressions from src/app/(shell)/notetaker/page.tsx, src/app/(shell)/profile/[userId]/page.tsx, src/app/page.tsx, src/components/ChatPanel.tsx, src/components/FeedbackFlow.tsx, src/components/Gradebook/SyllabusUploadFlow.tsx, src/components/ManageCoursesModal.tsx, src/components/screens/Admin.tsx, .../Dashboard.tsx, .../Gradebook/Course.tsx, .../Landing.tsx, .../Social.tsx, and .../Tree.tsx; also removes react-hooks/purity from Dashboard, Social, and Tree.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐇 A flag with an equals sign, properly placed,
No more mis-parsed warnings in haste!
The hooks no longer need to hide,
Suppressions swept cleanly aside.
The linter hops free, ears up with pride! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately summarizes the two main changes: fixing the ESLint flag syntax and pruning stale suppressions from the CI configuration.
Description check✅ PassedThe description covers all major template sections with clear explanations of the problem, solution, and local verification results, though some non-critical template checkboxes are incomplete.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/frontend-ci-eslint-max-warnings

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.

@cloudflare-workers-and-pages

cloudflare-workers-and-pagesBot commented Jun 23, 2026

Copy link
Copy Markdown

Deploying with Cloudflare Workers Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

StatusNameLatest CommitPreview URLUpdated (UTC)
✅ Deployment successful!
View logs
frontend-staging2369d8aCommit Preview URL

Branch Preview URL
Jun 23 2026, 10:04 PM

Correcting the --max-warnings flag let eslint actually run, which exposed the
real blocker: eslint-suppressions.json listed suppressions that no longer occur
(mostly react-hooks/set-state-in-effect, which the eslint-config-next bump stopped
reporting). ESLint exits 2 on leftover suppressions ("suppressions left that do not
occur anymore"), independent of --max-warnings.
Prune the dead entries (`eslint . --prune-suppressions`, -139 lines). Verified
locally against the synced lockfile (CI-matching deps): eslint, tsc --noEmit, and
vitest (68 tests) all pass. This + the flag fix green the Frontend check repo-wide.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AndresL230AndresL230 changed the title fix(ci): correct eslint --max-warnings flag so Frontend check can runfix(ci): unbreak the Frontend check (eslint flag + prune stale suppressions)Jun 23, 2026
@AndresL230
AndresL230 merged commit 32409a8 into mainJun 23, 2026
6 checks passed
@coderabbitaicoderabbitaiBot mentioned this pull request Jun 24, 2026
2 tasks
@AndresL230
AndresL230 deleted the fix/frontend-ci-eslint-max-warnings branch June 27, 2026 04:20
Sign up for freeto 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.

1 participant

@AndresL230