Frontend:
- Implementar máscara de entrada de telefone para números BR ((XX) XXXXX-XXXX).
- Atualizar formulário de cadastro para enviar dados completos do perfil do candidato (endereço, formação, habilidades, etc.).
- Corrigir problemas de idioma misto na página de Detalhes da Vaga e adicionar traduções faltantes.
Backend:
- Atualizar modelo de Usuário, Entidade e DTOs para incluir campos de perfil (Data de Nascimento, Endereço, Formação, etc.).
- Atualizar UserRepository para persistir e recuperar os dados estendidos do usuário no PostgreSQL.
- Atualizar RegisterCandidateUseCase para mapear campos de entrada para a entidade Usuário.
- Corrige violação de restrição de role no Registro de Candidato (usa 'candidate' em minúsculo)
- Corrige erro de chave duplicada para slug da empresa adicionando timestamp ao workspace do candidato
- Corrige crash no LocationPicker tratando respostas nulas no frontend e retornando arrays vazios no backend
- Corrige documentação do Swagger para o endpoint de Login e adiciona definição de segurança BearerAuth
- Implemented more specific error messages for the login page, distinguishing between invalid credentials and server errors.
- Updated i18n files with new translations for login error messages.
- Improved the avatar fallback to use the user's email initials if their name is not available.
- Removed frontend-source.tar.gz from tracking.
- Chore: Added debug logs to the seeder-api location loader.
- Add /dashboard/seeder page with Seed and Reset buttons
- Add Seeder item to sidebar (superadmin only)
- Use seeder API endpoints POST /seed and POST /reset
- Add confirmation dialogs for destructive actions
- Move 'No user found in storage' log inside window check to avoid SSR logs
- Add CI/CD deploy section with Forgejo pipeline instructions
- Update documentation date
- Replace sessionStorage with localStorage for user data persistence
- Add refreshSession() function to restore session from HTTPOnly cookie via /users/me
- Update tests to use localStorage mocks
- Add 3 new tests for refreshSession() functionality
- Update superadmin credentials in README.md and DEVOPS.md
1. Auth: Implemented forced password reset for SuperAdmin and updated login logic.
2. Infra: Switched backend to internal Postgres and updated .drone.yml.
3. Storage: Added Test Connection endpoint and UI in Backoffice.
4. CI/CD: Updated Forgejo deploy pipeline to include Seeder and use Internal Registry.
- Add /api/config endpoint for runtime env var fetching
- Add config.ts service with sync getters (getApiUrl, getBackofficeUrl, etc.)
- Add ConfigContext for React components
- Update api.ts, auth.ts, storage.ts to use runtime config
- Update layout.tsx to wrap app with ConfigProvider
- Fix Dockerfile default port from 8080 to 8521
This allows the frontend to read environment variables at runtime
instead of baking them in during build time.
- Guard against null response from chatApi.listConversations()
- Use fallback empty array for conversations state
- Prevents 'Cannot read properties of null' errors
- Reduced form from 3 steps to 2 steps
- Step 1 now contains both company and job data with visual separator
- Step 2 is confirmation only
- Updated progress indicators and card headers
- Fixed navigation button references
Backend:
- Created migration 031 for employee_count and founded_year
- Updated Company model with EmployeeCount and FoundedYear
- Updated core DTO with website, employeeCount, foundedYear, description
Frontend:
- Added website input field to company form
- Added employee count dropdown (1-10, 11-50, etc.)
- Added founded year input
- Added 'About Company' rich text editor
- Updated API payload to send new fields
Backend:
- Updated DTOs to include SalaryNegotiable and WorkingHours
- Updated JobService to map and persist these fields (CREATE, GET, UPDATE)
- Ensure DB queries include new columns
Frontend:
- Added 'Working Hours' (Jornada de Trabalho) dropdown to PostJobPage
- Updated state and submit logic
- Improved salary display in confirmation step
Seeder:
- Updated jobs seeder to include salary_negotiable and valid working_hours