feat(template): upgrade template repo with webpage-starter architecture, i18n, and client-side pages - #11
Conversation
…re, i18n, and client-side pages
WalkthroughThe placeholder Next.js application is replaced with an AOSSIE webpage starter featuring locale-aware routing, English and Hindi translations, theme and smooth-scrolling providers, localized metadata and sitemap generation, public integration manifests, and expanded project and brand documentation. ChangesAOSSIE webpage starter
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
Suggested labels: Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant Browser
participant Proxy
participant RootLayout
participant RequestConfig
participant Home
Browser->>Proxy: Request localized pathname
Proxy->>RootLayout: Route with locale
RootLayout->>RequestConfig: Load locale messages
RequestConfig-->>RootLayout: Return locale and messages
RootLayout->>Home: Render translated page
Home-->>Browser: Return UI and WebPage JSON-LD
Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches🧪 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 |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Actionable comments posted: 15
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@AGENTS.md`:
- Around line 21-22: Replace every author-machine file:///x:/... URL with
repository-relative links throughout AGENTS.md lines 21-22, 29-31, and 37-38;
README.md lines 132, 186, 213, 245, and 304-316; and brand/Brand.md lines 25-31
and 39. Link each reference to its specified repository path, including
globals.css, localized app/navigation files, next.config.ts, brand assets,
languages.ts, lenis-provider.tsx, and stylesheet, without changing the
surrounding documentation.
In `@public/robots.txt`:
- Line 3: Remove the Disallow: /_next/ rule from robots.txt so crawlers can
access Next.js runtime assets, while preserving the existing /api/ exclusion
only if it is intentionally configured to remain blocked.
In `@README.md`:
- Around line 212-235: Update the README sections “Customizing Colors” and
“Using Theme Classes” to document the repository’s class-based next-themes
system and semantic theme tokens. Replace the prefers-color-scheme CSS example
with the implemented root token configuration, and replace inline dark utility
examples with the approved semantic token usage; preserve guidance for explicit
light/dark theme selection.
- Around line 141-148: Update the README new-language example to create fr.json
under src/messages/ and use the Home.title translation key, matching the key
referenced by the later example.
- Around line 55-57: Update the README feature checklist to remove or qualify
the “fully static and client-side” claim, since the GitHub Pages workflow
deploys ./out while the current configuration and proxy.ts do not establish
static export or build-time root locale routing. Keep the deployment and CI
claims unchanged.
In `@src/app/`[locale]/globals.css:
- Around line 6-26: Centralize status-icon theme colors by adding semantic
foreground/background tokens to the `@theme` block in src/app/[locale]/globals.css
for both light and dark themes, then update the status icon classes in
src/app/[locale]/error.tsx at line 22 and src/app/[locale]/not-found.tsx at line
10 to use those semantic tokens instead of inline dark:bg-* and dark:text-*
utilities.
- Around line 21-24: Rename the card shadow token in globals.css from the color
namespace to the Tailwind shadow namespace so the full box-shadow value
generates a shadow utility. Update the matching card-shadow class usage in
src/app/[locale]/page.tsx:42, src/app/[locale]/error.tsx:21, and
src/app/[locale]/not-found.tsx:9 to follow the renamed token; all three sibling
sites require this direct usage change.
In `@src/app/`[locale]/page.tsx:
- Around line 19-31: Update the JSON-LD construction in the locale page to
source the WebPage description from the locale messages via the existing t(...)
translation helper instead of the hard-coded English string. Add or use the
matching message key across supported locales, while preserving the existing
inLanguage value and other structured-data fields.
In `@src/app/sitemap.ts`:
- Line 17: Remove the generation-time `lastModified: new Date()` assignment from
the sitemap URL entries. Either omit `lastModified` or replace it with a stable
content or deployment timestamp, ensuring unchanged pages do not receive a new
timestamp on each generation.
In `@src/components/LanguageSwitcher.tsx`:
- Around line 22-24: Externalize the hardcoded user-facing labels by sourcing
the language label in src/components/LanguageSwitcher.tsx lines 22-24 and the
accessible theme toggle label in src/components/ThemeToggle.tsx line 29 from the
existing locale catalog, using the components’ established i18n access pattern.
In `@src/config/languages.ts`:
- Around line 1-12: The languages catalog in src/config/languages.ts lines 1-12
should preserve literal locale values by using a readonly const-satisfies
declaration and deriving the Locale type from the catalog for defaultLanguage.
Update src/i18n/routing.ts lines 4-7 to pass that Locale union to defineRouting,
preserving compile-time validation for “en” and “hi”.
- Around line 7-10: Update the exported languages configuration and
LanguageSwitcher flow so user-visible name and localName values use translation
keys rather than hardcoded English and Hindi labels. Add the corresponding keys
to the English and Hindi message catalogs, then resolve those keys through the
existing i18n mechanism when rendering LanguageSwitcher while preserving the
current displayed text.
In `@src/i18n/metadata.ts`:
- Around line 1-2: Replace the runtime Next.js type imports with type-only
imports: update Metadata in src/i18n/metadata.ts lines 1-2 and MetadataRoute in
src/app/sitemap.ts lines 1-2 to use import type; leave getTranslations
unchanged.
- Around line 15-25: Update the metadata URL construction in the visible
alternates and openGraph configuration to use the sitemap’s default-locale URL
logic: emit the pathless siteUrl for English and retain the locale path for
other languages. Apply this consistently to canonical, the English alternate,
and openGraph.url.
In `@src/proxy.ts`:
- Line 1: Use type-only imports for the referenced types: update src/proxy.ts
lines 1-1 to import NextRequest with import type, and update
src/components/providers/lenis-provider.tsx lines 3-7 to import ReactNode with
import type, using ReactNode directly in the prop type instead of the default
React import.
🪄 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.yml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 5df8a043-4994-4cce-ae29-af4f1fb88149
⛔ Files ignored due to path filters (6)
app/favicon.icois excluded by!**/*.icobrand/favicon.icois excluded by!**/*.icobrand/logo.svgis excluded by!**/*.svgpackage-lock.jsonis excluded by!**/package-lock.jsonpublic/assets/icons/aossie_logo.svgis excluded by!**/*.svgpublic/assets/icons/favicon.icois excluded by!**/*.ico
📒 Files selected for processing (32)
AGENTS.mdCLAUDE.mdREADME.mdapp/globals.cssapp/layout.tsxapp/page.tsxbrand/Brand.mdnext.config.tspackage.jsonpublic/.well-known/ai-plugin.jsonpublic/.well-known/assetlinks.jsonpublic/llms.txtpublic/robots.txtsrc/app/[locale]/error.tsxsrc/app/[locale]/globals.csssrc/app/[locale]/layout.tsxsrc/app/[locale]/not-found.tsxsrc/app/[locale]/page.tsxsrc/app/sitemap.tssrc/components/LanguageSwitcher.tsxsrc/components/ThemeToggle.tsxsrc/components/providers/lenis-provider.tsxsrc/components/providers/theme-provider.tsxsrc/config/languages.tssrc/i18n/metadata.tssrc/i18n/navigation.tssrc/i18n/request.tssrc/i18n/routing.tssrc/messages/en.jsonsrc/messages/hi.jsonsrc/proxy.tstsconfig.json
💤 Files with no reviewable changes (3)
- app/page.tsx
- app/layout.tsx
- app/globals.css
| export interface Language { | ||
| code: string; | ||
| name: string; | ||
| localName: string; | ||
| } | ||
|
|
||
| export const languages: Language[] = [ | ||
| { code: 'en', name: 'English', localName: 'English' }, | ||
| { code: 'hi', name: 'Hindi', localName: 'हिन्दी' } | ||
| ]; | ||
|
|
||
| export const defaultLanguage = 'en'; |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win
Preserve literal locale types across the routing boundary.
The current Language[] declaration widens the configured locales to string, so the navigation layer loses compile-time checks for "en" and "hi". Keep the catalog literal and pass that preserved type into routing. (github.com)
src/config/languages.ts#L1-L12: useas const satisfies readonly Language[]and derive aLocaletype fordefaultLanguage.src/i18n/routing.ts#L4-L7: consume the literal locale union when callingdefineRouting.
📍 Affects 2 files
src/config/languages.ts#L1-L12(this comment)src/i18n/routing.ts#L4-L7
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/config/languages.ts` around lines 1 - 12, The languages catalog in
src/config/languages.ts lines 1-12 should preserve literal locale values by
using a readonly const-satisfies declaration and deriving the Locale type from
the catalog for defaultLanguage. Update src/i18n/routing.ts lines 4-7 to pass
that Locale union to defineRouting, preserving compile-time validation for “en”
and “hi”.
| export const languages: Language[] = [ | ||
| { code: 'en', name: 'English', localName: 'English' }, | ||
| { code: 'hi', name: 'Hindi', localName: 'हिन्दी' } | ||
| ]; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Externalize the language labels.
name and localName are rendered by LanguageSwitcher, so they are user-visible strings currently embedded in configuration. Store translation keys here and resolve them from the English/Hindi message catalogs instead.
As per path instructions, user-visible strings should be externalized to resource files (i18n).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/config/languages.ts` around lines 7 - 10, Update the exported languages
configuration and LanguageSwitcher flow so user-visible name and localName
values use translation keys rather than hardcoded English and Hindi labels. Add
the corresponding keys to the English and Hindi message catalogs, then resolve
those keys through the existing i18n mechanism when rendering LanguageSwitcher
while preserving the current displayed text.
Source: Path instructions
…tokens, i18n labels, robots.txt, and relative doc links)
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
| <p align="center"> | ||
| <!-- Telegram --> | ||
| <a href="https://t.me/StabilityNexus"> | ||
| <a href="https://t.me/AOSSIE"> |
| <!-- Organization Logo --> | ||
| <div align="center" style="display: flex; align-items: center; justify-content: center; gap: 16px;"> | ||
| <img alt="Stability Nexus" src="public/stability.svg" width="175"> | ||
| <img src="public/todo-project-logo.svg" width="175" /> |
| <a href="https://linkedin.com/company/stability-nexus"> | ||
| <img src="https://img.shields.io/badge/LinkedIn-black?style=flat&logo=LinkedIn&logoColor=white&logoSize=auto&color=0A66C2" alt="LinkedIn Badge"></a> | ||
| | ||
| <!-- Youtube --> |
There was a problem hiding this comment.
Add AOSSIE's YouTube and other badges, as in here (https://github.com/AOSSIE-Org/Template-Repo).
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@AGENTS.md`:
- Line 29: In AGENTS.md, update the heading text “Dynamic segement” to “Dynamic
segment” while leaving the localized routing directive and link unchanged.
In `@README.md`:
- Line 7: Update the README logo image to remove the placeholder
public/todo-project-logo.svg or replace it with an official accessible AOSSIE
logo asset. If retaining the image, add appropriate descriptive alt text, or
empty alt text when decorative.
In `@src/components/providers/lenis-provider.tsx`:
- Around line 7-10: Update LenisProvider to detect the prefers-reduced-motion:
reduce media preference and avoid animated Lenis behavior for matching users,
either by rendering children without ReactLenis or disabling its smoothing
options. Preserve the existing ReactLenis configuration for users without the
reduced-motion preference.
In `@src/i18n/metadata.ts`:
- Line 11: Normalize NEXT_PUBLIC_SITE_URL by removing its trailing slash before
the localeUrl composition in the metadata flow, then reuse that normalized base
wherever metadata and sitemap URLs are constructed. Preserve the default-locale
URL and ensure non-default locales produce a single separator.
🪄 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.yml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 056ca907-c986-4342-8d6c-dd6aa524e5ec
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (18)
AGENTS.mdREADME.mdbrand/Brand.mdpackage.jsonpublic/robots.txtsrc/app/[locale]/error.tsxsrc/app/[locale]/globals.csssrc/app/[locale]/not-found.tsxsrc/app/[locale]/page.tsxsrc/app/sitemap.tssrc/components/LanguageSwitcher.tsxsrc/components/ThemeToggle.tsxsrc/components/providers/lenis-provider.tsxsrc/config/languages.tssrc/i18n/metadata.tssrc/messages/en.jsonsrc/messages/hi.jsonsrc/proxy.ts
| <div align="center" style="display: flex; align-items: center; justify-content: center; gap: 16px;"> | ||
| <img alt="Stability Nexus" src="public/stability.svg" width="175"> | ||
| <img alt="AOSSIE" src="brand/logo.svg" width="175"> | ||
| <img src="public/todo-project-logo.svg" width="175" /> |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Remove the leftover placeholder logo or replace it with an accessible AOSSIE asset.
public/todo-project-logo.svg conflicts with the AOSSIE branding and its <img> element has no alt attribute. Use the official logo, or provide descriptive/empty alt text if the image is intentional.
🧰 Tools
🪛 markdownlint-cli2 (0.23.1)
[warning] 7-7: Images should have alternate text (alt text)
(MD045, no-alt-text)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` at line 7, Update the README logo image to remove the placeholder
public/todo-project-logo.svg or replace it with an official accessible AOSSIE
logo asset. If retaining the image, add appropriate descriptive alt text, or
empty alt text when decorative.
Source: Linters/SAST tools
There was a problem hiding this comment.
This is a tempelate repo and hence mentor has also advised to keep this todo project logo for whoever uses this repo for whatever project.
There was a problem hiding this comment.
@reach2saksham, understood—retaining public/todo-project-logo.svg is appropriate for a reusable template, so the branding-conflict concern does not apply.
The remaining accessibility/lint requirement is simply to give that intentional image an alt attribute: use descriptive text if it conveys template-project branding, or alt="" if it is purely decorative. For example:
<img src="public/todo-project-logo.svg" width="175" alt="Template project logo" />You are interacting with an AI system.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
README.md (4)
219-240: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winUse the canonical navigation-module import in the examples.
The
../../i18n/navigationimports depend on the example file’s directory depth. Point both examples directly at the configured module forsrc/i18n/navigation.tsinstead.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` around lines 219 - 240, Update both navigation examples in the “Navigation Helpers” section to import Link, useRouter, and usePathname from the canonical configured module for src/i18n/navigation.ts rather than the directory-depth-dependent ../../i18n/navigation path.Source: Path instructions
16-46: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winMatch badge metadata to the linked organizations.
The Stability Nexus Discord and YouTube badges reuse AOSSIE’s server/channel identifiers, so they display the wrong organization’s badge data. Use matching identifiers or remove the stale duplicate badges.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` around lines 16 - 46, Update the Stability Nexus Discord and YouTube badge links in the README social handles section to use identifiers matching Stability Nexus, or remove those duplicate badges if matching identifiers are unavailable; leave the AOSSIE badges unchanged.
189-216: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winExternalize the alert text in the client example.
alert('Clicked!')is user-visible text and conflicts with the repository’s i18n rule. Add a translation key and callalert(t('clicked'))instead.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` around lines 189 - 216, Update the Client Components example in README.md so the user-visible alert text is externalized: add the corresponding clicked translation key to the example’s translation messages and replace the literal alert text in InteractiveButton with the existing t function using the clicked key.Source: Path instructions
332-351: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winDescribe
llms.txtas AI guidance, not LLM crawler blocking.
llms.txtis an emerging content guidance signal and is generally distinct from access-control directives likerobots.txt, so framingUpdate if you wish to block specific AI search enginesas enforcing LLM indexing is misleading.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` around lines 332 - 351, Update the “LLM Crawler Rules” checklist entry for public/llms.txt to describe it as an optional AI-content guidance signal, not an access-control mechanism. Remove the claim that changing it blocks specific AI search engines, while preserving the surrounding setup guidance.
♻️ Duplicate comments (1)
src/i18n/metadata.ts (1)
12-12: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick winUse the configured default locale.
src/app/sitemap.tscompares againstrouting.defaultLocale, but this metadata helper hardcodes'en'. If the default locale changes, metadata canonical/Open Graph URLs will diverge from the sitemap. Userouting.defaultLocalehere as the single source of truth.Proposed fix
- const localeUrl = locale === 'en' ? siteUrl : `${siteUrl}/${locale}`; + const localeUrl = + locale === routing.defaultLocale ? siteUrl : `${siteUrl}/${locale}`;🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/i18n/metadata.ts` at line 12, Update the locale comparison in the metadata helper’s localeUrl construction to use routing.defaultLocale instead of the hardcoded 'en'. Preserve the existing URL formatting for the default and non-default locale cases, using routing as the single source of truth.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@README.md`:
- Around line 219-240: Update both navigation examples in the “Navigation
Helpers” section to import Link, useRouter, and usePathname from the canonical
configured module for src/i18n/navigation.ts rather than the
directory-depth-dependent ../../i18n/navigation path.
- Around line 16-46: Update the Stability Nexus Discord and YouTube badge links
in the README social handles section to use identifiers matching Stability
Nexus, or remove those duplicate badges if matching identifiers are unavailable;
leave the AOSSIE badges unchanged.
- Around line 189-216: Update the Client Components example in README.md so the
user-visible alert text is externalized: add the corresponding clicked
translation key to the example’s translation messages and replace the literal
alert text in InteractiveButton with the existing t function using the clicked
key.
- Around line 332-351: Update the “LLM Crawler Rules” checklist entry for
public/llms.txt to describe it as an optional AI-content guidance signal, not an
access-control mechanism. Remove the claim that changing it blocks specific AI
search engines, while preserving the surrounding setup guidance.
---
Duplicate comments:
In `@src/i18n/metadata.ts`:
- Line 12: Update the locale comparison in the metadata helper’s localeUrl
construction to use routing.defaultLocale instead of the hardcoded 'en'.
Preserve the existing URL formatting for the default and non-default locale
cases, using routing as the single source of truth.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 84b29fc1-1a25-4200-9f10-afb61eece86a
📒 Files selected for processing (5)
AGENTS.mdREADME.mdsrc/app/sitemap.tssrc/components/providers/lenis-provider.tsxsrc/i18n/metadata.ts
Overview
This Pull Request completely overhauls the Template-Repo-NextJS repository, bringing over the feature-rich, multi-lingual, and modern architecture from webpage-starter while preserving all of this repository's open-source governance (
DCO.md,COPYRIGHT.md,Contributors.md), GitHub Actions CI/CD workflows, CodeRabbit AI reviews, and the Project Maturity & TODO Checklist.Per project requirements, the main page component is explicitly configured as client-side only using the
"use client";directive and client-hook translation loading.Complete Feature Breakdown (From Scratch)
Core Framework & Architecture
@tailwindcss/postcssintegration.src/Layout: Organized codebase with clean separation of source code (src/app,src/components,src/config,src/i18n,src/messages) from root configuration files.Client-Side Page Execution (
"use client")src/app/[locale]/page.tsx) configured with"use client";and client-side translation hooks (useTranslations,React.use(params)).Internationalization (i18n) & Localization (l10n)
next-intlIntegration: Deeply integrated multi-language support out-of-the-box.en) and Hindi (hi) translation catalogs with step-by-step documentation for adding additional languages./en,/hi).Link,useRouter, andusePathnamehelpers imported fromsrc/i18n/navigation.ts.LanguageSwitcherclient component for instant locale toggling.Dual-Theme System & Styling Engine
next-themes.bg-background-primary,text-foreground-primary).ThemeTogglecomponent with smooth SVG transitions and micro-animations.UX & Inertial Motion
lenis): Integratedlenisinertial scrolling provider (LenisProvider) anduseLenishook bindings for high-performance scrolling across all browsers.Official Branding & Design Specs
brand/(logo.svg,favicon.ico,Brand.md).--font-sans), and logo specifications.AI Agent Pair Programming Readiness
AGENTS.mdandCLAUDE.mdto guide AI pair-programming assistants on build commands, breaking changes, and routing rules.Open-Source CI/CD Automation
.github/workflows/):ci.yml: Automated TypeScript typechecking and ESLint checks on every push/PR.nextjs.yml: Automated build and deployment pipeline for GitHub Pages.label-merge-conflicts.yml: Automatic labeling of pull requests with merge conflicts.Automated AI Code Review
.coderabbit.yml): Pre-configured automated code review integration for Pull Requests.Legal & Open-Source Governance
DCO.md(Developer Certificate of Origin),COPYRIGHT.md, andContributors.mdfor open-source legal compliance.Mobile & AI Platform Integrations
public/.well-known/assetlinks.jsonfor deep-linking mobile apps.public/.well-known/ai-plugin.jsonandpublic/llms.txtfor AI agent search indexing.Comprehensive README & Project Maturity Checklist
Verification & Build Results
All verification checks were run locally and passed cleanly:
npm install): 377 packages audited cleanly.npm run build):Additional Notes:
AI Usage Disclosure:
We encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.
Check one of the checkboxes below:
I have used the following AI models and tools: TODO
Checklist
Summary by CodeRabbit