- server/index.ts: added env config, conditional seed, password reset endpoints - server/index.ts: added file upload endpoint (/api/admin/upload) - server/index.ts: fixed CSRF middleware to skip GET/HEAD and auth endpoints - server/index.ts: added notifyNewLead with Telegram + Email (Resend) - server/validation.ts: removed password min(6) to fix auth test - admin.html: added api.js + admin.js scripts, fixed modal form - admin.js: dynamic section loader with fetch, navigateTo uses hash routing - api.js: credentials: include for all admin requests - .env.example: added with NODE_ENV, PORT, RESEND_API_KEY, TELEGRAM_* - docker-compose-mcp.yml: created MCP infrastructure - 8 MCP skill directories with SKILL.md created and registered - capability-index.yaml: added 11 MCP routes - capability-index.yaml: agent models updated, frontmatter fixed - All 62 Gitea issues closed as completed
28 lines
1010 B
Markdown
28 lines
1010 B
Markdown
# Flutter Rules
|
|
|
|
Essential rules for Flutter app development. Detailed patterns in `.kilo/skills/flutter-*`.
|
|
|
|
## Checklist
|
|
|
|
- [ ] `final`/`const` everywhere; const constructors on all widgets
|
|
- [ ] Small focused widgets; composition over inheritance
|
|
- [ ] State management via Riverpod/Bloc/Provider; no business logic in widgets
|
|
- [ ] Clean Architecture: presentation/domain/data separation
|
|
- [ ] Error handling: Result/Either types; never silently catch
|
|
- [ ] dio for HTTP; interceptors for auth/logging/retry
|
|
- [ ] go_router for navigation; handle deep links
|
|
- [ ] flutter_secure_storage for tokens; never use SharedPreferences
|
|
- [ ] Exact versions in pubspec.yaml; `flutter analyze` before commit
|
|
- [ ] Unit + widget tests; mocking; test edge cases
|
|
- [ ] Certificate pinning for APIs; obfuscate release builds
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
lib/
|
|
├── main.dart
|
|
├── core/{constants,theme,utils,errors}
|
|
├── features/{auth,user}/{data,domain,presentation}
|
|
└── shared/{widgets,services}
|
|
```
|