fix: RockSolid audit — all 13 findings resolved#8
Conversation
#1 [CRITICAL] Replace broken Next.js 404.html with static dark amber page #2 [HIGH] Fix OG image path (/assets/images/og-preview.png → /og-image.png) #3 [MEDIUM] Remove logos/ directory (~6.4MB unreferenced PNGs) #4 [MEDIUM] Remove orphan fontello.woff/woff2 #5 [LOW] Fix 'Turkce' → 'Türkçe' typo in en/index.html #6 [MEDIUM] .gitmem/ already untracked (verified) #7 [HIGH] Create privacy-policy.html (TR) + en/privacy-policy.html (EN) #8 [HIGH] Restore LICENSE (proprietary) #9 [HIGH] Fix CI workflow — update Lighthouse URLs to existing pages #10 [MEDIUM] Create README.md with current stack info #11 [MEDIUM] Restore SECURITY.md #12 [MEDIUM] Update .REPOMAP.md to reflect Tailwind/dark amber design #13 [MEDIUM] Add .gitattributes (EOL normalization, binary markers) Additional: Tailwind CSS rebuilt for all pages, pinned CI dependencies Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (9)
📝 WalkthroughSummary by CodeRabbit
WalkthroughRepository converted from a Next.js/Bootstrap site to a static HTML site using Tailwind CSS v4 and Font Awesome 6; removed several prior pages (tools, premium, blog), added privacy pages, docs (README/SECURITY/LICENSE), CI/workflow changes, a regenerated Tailwind build, and cookie-consent robustness fixes. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Code Review
This pull request migrates the CalmKernel corporate website to a new stack featuring Tailwind CSS v4 and Font Awesome 6, while adding essential documentation like a proprietary license, security policy, and privacy policies in both Turkish and English. Feedback includes optimizing the Tailwind build command with glob patterns, improving accessibility on the 404 page with a skip link, updating Font Awesome classes to version 6 standards, and adopting modern ES6+ syntax for JavaScript snippets.
| python3 -m http.server 8000 | ||
|
|
||
| # Rebuild Tailwind CSS (requires standalone CLI) | ||
| tailwindcss --input src/input.css --output assets/css/main.css --content "index.html,en/index.html,privacy-policy.html,en/privacy-policy.html,404.html" --minify |
There was a problem hiding this comment.
Instead of manually listing every HTML file in the Tailwind CLI command, use a glob pattern like "**/*.html". This ensures that any future pages added to the repository are automatically included in the CSS build process without requiring manual updates to the documentation or build scripts.
| tailwindcss --input src/input.css --output assets/css/main.css --content "index.html,en/index.html,privacy-policy.html,en/privacy-policy.html,404.html" --minify | |
| tailwindcss --input src/input.css --output assets/css/main.css --content "**/*.html" --minify |
| <body class="bg-zinc-950 text-zinc-300 font-body antialiased"> | ||
|
|
||
| <div class="min-h-screen flex flex-col items-center justify-center px-6 text-center"> |
There was a problem hiding this comment.
For consistency with the other pages in this PR (such as privacy-policy.html), consider adding a "Skip to content" link for improved accessibility (A11y). This allows users navigating with keyboards or screen readers to bypass the navigation header.
<body class="bg-zinc-950 text-zinc-300 font-body antialiased">
<a href="#main-content" class="skip-link" style="position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:9999;padding:8px;background:#f59e0b;color:#000;text-decoration:none;font-weight:bold;">İçeriğe atla</a>
<div id="main-content" class="min-h-screen flex flex-col items-center justify-center px-6 text-center">| Contact | ||
| </a> | ||
| <button id="mobileMenuBtn" class="md:hidden text-white text-xl" aria-label="Open menu" aria-expanded="false" aria-controls="mobileMenu"> | ||
| <i class="fa fa-bars"></i> |
| var menu = document.getElementById('mobileMenu'); | ||
| btn.addEventListener('click', function() { | ||
| var open = menu.classList.toggle('hidden'); | ||
| btn.setAttribute('aria-expanded', !open); |
There was a problem hiding this comment.
Use const and let instead of var to adhere to modern JavaScript (ES6+) best practices. This provides better scoping and prevents issues related to variable hoisting.
| var menu = document.getElementById('mobileMenu'); | |
| btn.addEventListener('click', function() { | |
| var open = menu.classList.toggle('hidden'); | |
| btn.setAttribute('aria-expanded', !open); | |
| const btn = document.getElementById('mobileMenuBtn'); | |
| const menu = document.getElementById('mobileMenu'); | |
| btn.addEventListener('click', function() { | |
| const open = menu.classList.toggle('hidden'); |
| </a> | ||
| <!-- Mobile menu button --> | ||
| <button id="mobileMenuBtn" class="md:hidden text-white text-xl" aria-label="Menüyü aç" aria-expanded="false" aria-controls="mobileMenu"> | ||
| <i class="fa fa-bars"></i> |
| var menu = document.getElementById('mobileMenu'); | ||
| btn.addEventListener('click', function() { | ||
| var open = menu.classList.toggle('hidden'); | ||
| btn.setAttribute('aria-expanded', !open); |
There was a problem hiding this comment.
Use const and let instead of var to adhere to modern JavaScript (ES6+) best practices. This provides better scoping and prevents issues related to variable hoisting.
| var menu = document.getElementById('mobileMenu'); | |
| btn.addEventListener('click', function() { | |
| var open = menu.classList.toggle('hidden'); | |
| btn.setAttribute('aria-expanded', !open); | |
| const btn = document.getElementById('mobileMenuBtn'); | |
| const menu = document.getElementById('mobileMenu'); | |
| btn.addEventListener('click', function() { | |
| const open = menu.classList.toggle('hidden'); |
| <a class="text-zinc-400 hover:text-amber-400 transition-all duration-300" href="/#products">Ürünler</a> | ||
| <a class="text-zinc-400 hover:text-amber-400 transition-all duration-300" href="/#open-source">Açık Kaynak</a> | ||
| <a class="text-zinc-400 hover:text-amber-400 transition-all duration-300" href="/#about">Hakkımızda</a> | ||
| <a class="text-zinc-400 hover:text-amber-400 transition-all duration-300" href="/blog/bigfive-v6.1.0.html">Blog</a> |
There was a problem hiding this comment.
Broken nav link — /blog/bigfive-v6.1.0.html does not exist (Severity 7)
Both the desktop nav (href="/blog/bigfive-v6.1.0.html") and the mobile menu (line ~62) link to a blog page that is not in the repository. git ls-tree on main shows no blog/ directory exists.
This is a pre-existing issue carried from index.html, but the new privacy-policy pages replicate it into two additional pages. Visitors clicking "Blog" from the privacy policy page will hit a 404.
Suggested fix: either remove the Blog nav link until blog pages exist, or replace it with an existing page (e.g., link to the home page's open-source section with /#open-source). The same fix should be applied to en/privacy-policy.html.
| <a class="text-zinc-400 hover:text-amber-400 transition-all duration-300" href="/en/#products">Products</a> | ||
| <a class="text-zinc-400 hover:text-amber-400 transition-all duration-300" href="/en/#open-source">Open Source</a> | ||
| <a class="text-zinc-400 hover:text-amber-400 transition-all duration-300" href="/en/#about">About</a> | ||
| <a class="text-zinc-400 hover:text-amber-400 transition-all duration-300" href="/en/blog/bigfive-v6.1.0.html">Blog</a> |
There was a problem hiding this comment.
Broken nav link — /en/blog/bigfive-v6.1.0.html does not exist (Severity 7)
Same issue as privacy-policy.html: the Blog link in both desktop nav and mobile menu points to /en/blog/bigfive-v6.1.0.html, which does not exist in the repo. Clicking it from the live EN privacy policy page will result in a 404.
Please remove or replace this link alongside the fix in privacy-policy.html.
From prior PRs (open findings): - Skip link visible on focus (sr-only + focus:not-sr-only) — CodeRabbit - aria-expanded state corrected (isHidden logic) — Blocks - localStorage try-catch wrapper — Gemini From PR #8 reviews: - Blog nav links → # (page doesn't exist yet) — CodeRabbit/Blocks/Devin - Tools footer → /#products anchor — Devin - 404.html skip link added — Gemini - fa → fas class (FA6) — Gemini - var → const/let (ES6) — Gemini - .gitattributes *.yaml added — CodeRabbit - CI Lighthouse EN privacy page added — CodeRabbit All pages: index, en/index, privacy-policy, en/privacy-policy, 404 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
RockSolid Challenge — Full Audit Fix
All 13 findings from the repo audit resolved in a single PR.
Critical + High
404.html/og-image.pngindex.html,en/index.htmlprivacy-policy.html,en/privacy-policy.htmlLICENSE.github/workflows/ci.ymlMedium
logos/deletedassets/fonts/fontello.*deletedREADME.mdSECURITY.md.REPOMAP.md.gitattributesLow
en/index.htmlAdditional
html5validator==0.4.2,@lhci/cli@0.14.0actions/checkoutupdated to@v6"