@@ -38,6 +38,49 @@ bun run format # Auto-fix formatting
3838- ` src/ ` - TypeScript source (55 modules)
3939- ` dist/ ` - Compiled JavaScript (npm package)
4040- ` lib/ ` - Native shell scripts (bash, PowerShell)
41+ - ` ui/ ` - React dashboard (Vite + React 19 + shadcn/ui)
42+
43+ ## UI Quality Gates (React Dashboard)
44+
45+ ** The ui/ directory has IDENTICAL quality gates to the main project.**
46+
47+ ** Package Manager: bun** (same as root)
48+ ``` bash
49+ cd ui
50+ bun install # Install dependencies
51+ bun run build # TypeScript + Vite build
52+ bun run validate # Full validation: typecheck + lint:fix + format:check
53+ ```
54+
55+ ** Fix issues before committing:**
56+ ``` bash
57+ cd ui
58+ bun run typecheck # Type check only
59+ bun run lint:fix # Auto-fix lint issues
60+ bun run format # Auto-fix formatting
61+ bun run format:check # Verify formatting (no changes)
62+ ```
63+
64+ ** Linting rules (ui/eslint.config.js) - ALL errors:**
65+ - ` @typescript-eslint/no-unused-vars ` - error (ignore ` _ ` prefix)
66+ - ` @typescript-eslint/no-explicit-any ` - error
67+ - ` @typescript-eslint/no-non-null-assertion ` - error
68+ - ` prefer-const ` , ` no-var ` , ` eqeqeq ` - error
69+ - ` react-hooks/exhaustive-deps ` - warning
70+ - ` react-refresh/only-export-components ` - error
71+
72+ ** Type safety (ui/tsconfig.app.json):**
73+ - ` strict: true ` with ` verbatimModuleSyntax ` enabled
74+ - ` noUnusedLocals ` , ` noUnusedParameters ` - enabled
75+ - Type-only imports required: ` import type { X } ` for types
76+
77+ ** UI file structure:**
78+ - ` ui/src/ ` - React components, hooks, pages
79+ - ` ui/src/components/ui/ ` - shadcn/ui components
80+ - ` ui/src/hooks/ ` - Custom React hooks
81+ - ` ui/src/pages/ ` - Route pages
82+ - ` ui/src/providers/ ` - Context providers
83+ - ` dist/ui/ ` - Built bundle (served by Express)
4184
4285** Linting rules (eslint.config.mjs) - ALL errors:**
4386- ` @typescript-eslint/no-unused-vars ` - error (ignore ` _ ` prefix)
0 commit comments