- Create backend/app/model/password_reset.py with Pydantic models:
- DirectResetPasswordRequest with field_validator and model_validator
- ForgotPasswordRequest with email validation
- ResetPasswordRequest with token and password validation
- Update server/app/model/user/password_reset.py:
- Add Pydantic validators to ResetPasswordRequest
- Add DirectResetPasswordRequest model with validators
- Update controllers to use models from model folder
- Remove manual validation from controllers (now handled by Pydantic)
Password validation rules:
- Minimum 8 characters
- Must contain at least one letter
- Must contain at least one number
- Passwords must match
- Login.tsx: Forgot Password button now redirects to Eigent website when
VITE_USE_LOCAL_PROXY=false, navigates to /forgot-password when true
- ForgotPassword.tsx: Redesigned for local deployment - direct password
reset with email + new password fields (no email verification needed)
- Added /reset-password-direct endpoint to both server and Electron backends
for direct password update in Docker database
Behavior:
- Full Local Deployment (VITE_USE_LOCAL_PROXY=true): Direct password reset
without email verification, updates password in local Docker database
- End Users (VITE_USE_LOCAL_PROXY=false): Redirects to https://www.eigent.ai/forgot-password
- Fix "Recieved" → "Received" in chatStore.ts
- Fix "finshedTask" → "finishedTask" variable name in chatStore.ts
- Fix "untill" → "until" in test comments
- Fix "manger" → "manager" in permission descriptions and translations
- Add password reset token model and Pydantic schemas (server)
- Add forgot-password, reset-password, verify-reset-token API endpoints (server + backend)
- Add database migration for password_reset_token table
- Add ForgotPassword.tsx and ResetPassword.tsx frontend pages
- Add 'Forgot Password?' link to Login page
- Add routes for /forgot-password and /reset-password
- Add i18n translations for en-us and zh-Hans
Note: Email sending integration pending - requires email service configuration.
Currently returns token in API response for development/testing.
Closes#884
- Add detailed structured logging in Workforce initialization and task execution
- Include task metadata, API task IDs, and execution context in log entries
- Enhance error logging with better context and exception info
- Standardize log format across workforce, health controller, and other components
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Resolved conflicts in:
- server/app/controller/chat/history_controller.py: Combined status tracking logic from both branches, including failed task counting from main
- src/components/GroupedHistoryView/index.tsx: Kept all imports and features from project-history-ui branch
- src/pages/Dashboard/Project.tsx: Kept the new GroupedHistoryView implementation from project-history-ui branch
- Removed conflicted __pycache__ files (binary conflicts)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>