Repository navigation
feat(project-teams): ideias de projeto, interesse em vagas e formação de times - #112
Merged
Merged
Conversation
feat: milestone 4 — missões, badges, GitHub OAuth, notificações e gamificação completa
Tracks whether a user was created during social login (Google/GitHub) so the frontend can redirect new users to the onboarding flow. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…uploads and translations
- proofUrl: 500 → 2048 (URLs can be long, especially signed storage URLs) - description: 1000 → 2000 (matches frontend character limit) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…g/profiles - GET /missions/:id/participants returns count + usernames/status only (no proof/description) - Exclude admin users (role=1) from ranking list (findAllWithPagination) - Return null for admin profiles in findById and findByUsername Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tokens de Gratidão now replenish every day at midnight instead of once per month. Monthly cron keeps resetting currentMonthlyXp only. On startup the service replenishes tokens immediately so users with 0 balance can donate right after this deploy. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
TypeORM throws "Empty criteria not allowed" when using repository.update({})
with an empty object. Replaced all bulk updates with createQueryBuilder to
avoid this restriction. Also updated onModuleInit to work correctly on
startup. Daily token amount changed from 3 to 5.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Exposes GET /transactions/profile/:profileId/tokens without authentication, returning only TOKEN_REWARD and TOKEN_TRANSFER entries for a given profile. Enables auditability of gratitude token activity on public profiles. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
O merge de 146 commits do upstream (-X theirs) resolveu conflitos descartando pedaços de código local que não conflitavam textualmente com nada, mas dependiam de outras partes que foram sobrescritas: - FilesService perdeu o método create() (usado no login GitHub) - UsersService referenciava variável inexistente (existingUser) e perdeu a injeção de GamificationProfilesService (anonimização LGPD) - GamificationProfile ficou com campo photo duplicado - auditorReward sobreviveu nos DTOs mas sumiu do domain/entity/mapper de Activity, e a recompensa do moderador em submissions.service.ts continuou usando a constante fixa antiga em vez do valor por atividade - submissions.service.ts chamava filesService.deleteFile/extractStoragePath, métodos que nunca existiram na versão atual de FilesService — qualquer rejeição/cancelamento de submissão com comprovante quebrava com 500 Corrigido restaurando as pontas que faltavam, usando a API atual do FilesService (remove por id, com lookup por path). auditorReward de missions.service.ts foi auditado e sobreviveu ao merge intacto. Também reaplica trabalho local que só existia como WIP não commitado: - Activity.requiresActivityDate / Submission.activityDate, exigindo e registrando a data em que a atividade foi realizada - Notificação in-app imediata + digest diário por e-mail (6h) para moderadores sobre submissões pendentes - activityDate exposto no endpoint público de submissão A migration AddActivityDateFields já estava aplicada e registrada em produção; só o arquivo nunca tinha sido commitado. Corrige também um teste de events.service.spec.ts com data de início hardcoded que virou passado (usava validação de "não pode ser no passado" contra o relógio real) — trocado por data relativa.
…ssue"
Adiciona Activity.createsGithubIssue: quando true, a submissão passa a
exigir customTitle (título da issue), githubRepo (front ou api) e
issueCategory (bug/melhoria/duvida/outro). Ao aprovar a submissão, o
GithubIssuesService cria a issue de verdade via API REST do GitHub
(POST /repos/{owner}/{repo}/issues), atribuindo a label correspondente
à categoria, com o texto mencionando quem abriu via legado.dev. A URL
criada fica salva em Submission.githubIssueUrl.
A criação da issue é best-effort e roda depois do commit da transação
principal: se o GitHub falhar (token ausente, rate limit, etc.), a
aprovação e o XP do usuário não são afetados, só fica sem a issue —
logado para investigação manual.
Autenticação via GITHUB_BOT_TOKEN (novo campo em github.config.ts),
ainda não configurado em produção.
… de times Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…o novo A migration roda antes de CreateNotificationsAndReports e falhava no CI e2e (banco vazio) ao dropar índice/tabela inexistentes. Usa IF EXISTS. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Adiciona o módulo project-teams (ideias, moderação, interesse em vagas, times e membros), migration CreateProjectTeams e doc em docs/project-teams.md. Inclui commits anteriores ainda não enviados ao main. A migration já foi aplicada em produção via deploy manual.
🤖 Generated with Claude Code