Skip to content

feat(lumabot): plugin reminders (!lembrete, !lembretes, !cancelarlembrete) - #373

Merged
murillous merged 3 commits into
developfrom
feat/plugin-reminders
Oct 16, 2026
Merged

murillous merged 3 commits into
developfrom
feat/plugin-reminders

Conversation

@murillous

Copy link
Copy Markdown
Owner

O que muda

  • !lembrete / !lembrar, !lembretes e !cancelarlembrete <n>, com o formato do legacy: DD/MM[/AAAA] HH:mm | mensagem. O disparo sai pelo ctx.scheduler, sobrevive a restart e menciona quem criou o lembrete ou as pessoas mencionadas no comando.
  • Serviço reminders com create, list e cancel, que a IA do M5 vai usar. A validação fica no serviço e devolve um erro tipado (ReminderError com code).
  • Ponto de extensão reminders.parsers. O formato do legacy é contribuído pelo próprio plugin, e um parser de linguagem natural pode entrar depois sem editar o plugin. Se um parser lança erro, ele é ignorado e o comando segue com os outros.
  • O fuso é configurável (timeZone, padrão America/Sao_Paulo) e convertido só com Intl, sem depender do TZ do processo.
  • Diferenças em relação ao legacy:
    • texto acima de 500 caracteres é recusado, em vez de cortado em silêncio;
    • não há mais o loop de 30 s;
    • um lembrete atrasado aparece na lista como "Faltam 0", e não com um valor negativo.
  • Revisado por um modelo à parte e ajustado.

Empilhado: depende do #368 (Bridger 0.6 + ADR 0002).

Verificação

pnpm lint, typecheck e build passam. pnpm test dá 133 de 135: só falham !gif em MP4 e !sticker de vídeo em 800 KB, que já falham no develop por causa do ffmpeg 8.1 do ambiente.

Closes #343

…rete)

Serviço reminders, ponto de extensão reminders.parsers e disparo pelo scheduler do kernel, com fuso configurável.

Closes #343
# Conflicts:
#	PARIDADE.md
#	apps/lumabot/docs/README.md
#	apps/lumabot/src/main.ts
@murillous
murillous merged commit 37eed82 into develop Oct 16, 2026
5 checks passed
@murillous
murillous deleted the feat/plugin-reminders branch October 17, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant