feat: setup Biome, TypeScript validation, AGENTS.md guidelines, and GitHub CI - #1
Conversation
There was a problem hiding this comment.
Code Review
This pull request sets up the 'shumai' creative platform web application, introducing configuration files, guidelines, and core React components like the main App, Footer, and InteractiveShowcase. The code review highlights several critical improvements and fixes: enabling strict mode in tsconfig.json to prevent runtime errors, replacing __dirname with import.meta.dirname in vite.config.ts to avoid a ReferenceError in ES modules, enabling unused variable and import linting in biome.json, cleaning up unused and redundant imports in InteractiveShowcase.tsx, and correcting corrupted characters in a configuration comment.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| @@ -0,0 +1,20 @@ | |||
| { | |||
| "compilerOptions": { | |||
| "target": "ES2022", | |||
There was a problem hiding this comment.
The TypeScript configuration is missing "strict": true. Enabling strict mode is a fundamental best practice for production-ready TypeScript projects as it enforces strict null checks and prevents a wide range of common runtime errors (such as reading properties of undefined).
| "target": "ES2022", | |
| "target": "ES2022", | |
| "strict": true, |
| plugins: [react(), tailwindcss()], | ||
| resolve: { | ||
| alias: { | ||
| '@': path.resolve(__dirname, '.'), |
There was a problem hiding this comment.
In Node.js ES modules ("type": "module" in package.json), __dirname is not defined and will throw a ReferenceError at runtime in standard Node.js environments. Since Vite config is parsed as ESM, use import.meta.dirname instead for standard compatibility.
| '@': path.resolve(__dirname, '.'), | |
| '@': path.resolve(import.meta.dirname, '.'), |
| "noUnusedVariables": "off", | ||
| "noUnusedImports": "off" |
There was a problem hiding this comment.
Disabling noUnusedVariables and noUnusedImports goes against the goal of standardizing code quality and formatting in a production-ready setup. Unused variables and imports can clutter the codebase and hide potential logic bugs. It is highly recommended to enable these rules.
| "noUnusedVariables": "off", | |
| "noUnusedImports": "off" | |
| "noUnusedVariables": "error", | |
| "noUnusedImports": "error" |
| import { | ||
| CheckCircle2, | ||
| Clock, | ||
| Cpu, | ||
| Eye, | ||
| FileVideo, | ||
| Layers, | ||
| LayoutGrid, | ||
| Maximize2, | ||
| MessageSquare, | ||
| MonitorCheck, | ||
| Play, | ||
| Sparkles, | ||
| Volume2, | ||
| Zap, | ||
| } from 'lucide-react'; |
There was a problem hiding this comment.
The icons CheckCircle2, Clock, and Eye are imported from lucide-react but never used in this file. Removing them keeps the imports clean and avoids unnecessary dependencies.
import {
Cpu,
FileVideo,
Layers,
LayoutGrid,
Maximize2,
MessageSquare,
MonitorCheck,
Play,
Sparkles,
Volume2,
Zap,
} from 'lucide-react';
| Zap, | ||
| } from 'lucide-react'; | ||
| import { AnimatePresence, motion } from 'motion/react'; | ||
| import React, { useState } from 'react'; |
| }, | ||
| server: { | ||
| // HMR is disabled in AI Studio via DISABLE_HMR env var. | ||
| // Do not modifyâfile watching is disabled to prevent flickering during agent edits. |
There was a problem hiding this comment.
The comment contains corrupted characters (modifyâ��file instead of modify—file) due to an encoding mismatch. Fixing this ensures clean and professional documentation.
| // Do not modify�file watching is disabled to prevent flickering during agent edits. | |
| // Do not modify—file watching is disabled to prevent flickering during agent edits. |
This PR initializes the repository setup to make it a solid production-ready project:
biome.json)..github/workflows/ci.yml) to automatically install dependencies and run validation (biome check,tsc --noEmit, andvite build) on push and pull requests.@importorder inindex.css, unused prop inChineseBorder.tsx).