Lembretes
O recurso Lembretes permite definir lembretes agendados que disparam como notificações toast no seu navegador. Agende um lembrete e a plataforma notificará quando o horário chegar.
Criando um Lembrete
Use o comando /remind em qualquer chat:
/remind 30m verificar o status do build
A plataforma analisa o horário e mensagem, agenda o lembrete e confirma no chat:
Lembrete definido para 30m: verificar o status do build
Sintaxe do Comando
/remind [tempo] [mensagem]
As palavras "me" e "in" são opcionais e serão ignoradas:
/remind me in 30 minutes to check the build
/remind 2h review the PR
/remind 1d deploy to production
Formatos de Tempo
| Formato | Unidade | Exemplo |
|---|---|---|
30s, 30sec, 30seconds | Segundos | /remind 30s check the timer |
5m, 5min, 5minutes | Minutos | /remind 5m take a break |
2h, 2hrs, 2hours | Horas | /remind 2h review PR |
1d, 1day, 1days | Dias | /remind 1d follow up on email |
O valor de tempo deve ser um número seguido por uma unidade. Apenas tempos relativos ("em X minutos/horas") são suportados.
Você pode usar a palavra "to" entre o tempo e mensagem para fraseado natural:
/remind 1h to check the deployment
Como Lembretes Funcionam
- Quando você cria um lembrete, ele é armazenado no IndexedDB sob a chave
ais-reminders - Um
setTimeoutJavaScript é agendado para a duração especificada - Quando o timer dispara, uma notificação toast aparece com sua mensagem
- O lembrete é automaticamente removido do armazenamento após disparar
Verificação de Visibilidade de Página
Lembretes também verificam itens vencidos sempre que sua aba do navegador se torna visível (usando a API de Visibilidade de Página). Isso lida com o caso onde seu computador estava dormindo ou a aba estava em segundo plano quando o lembrete venceu.
Lembretes requerem que a aba do navegador esteja aberta. Eles não são notificações push do lado do servidor. Se você fechar a aba ou o navegador, lembretes dispararão na próxima vez que você abrir o aplicativo (se estiverem vencidos), mas não acordarão seu dispositivo.
Visualizando Lembretes Ativos
Lembretes ativos (ainda não disparados) são armazenados no IndexedDB. Atualmente, você pode vê-los via mensagem de confirmação no chat. Uma UI dedicada de gerenciamento de lembretes está planejada para uma versão futura.
Cancelando Lembretes
Lembretes disparam uma vez e são automaticamente removidos. Atualmente não há comando para cancelar um lembrete pendente antes de disparar. Para evitar um lembrete indesejado, você pode limpar o chat ou recarregar a página (lembretes são reagendados do armazenamento no carregamento, então isso por si só não os cancelará).
Persistência
Lembretes sobrevivem a recarregamentos de página. Quando o aplicativo inicializa:
- Todos os lembretes salvos são carregados do IndexedDB
- O timeout de cada lembrete é reagendado baseado em seu horário vencido armazenado
- Se um lembrete já está vencido, dispara imediatamente
Limitações
| Limitação | Detalhe |
|---|---|
| Aba do navegador necessária | Lembretes são apenas do lado do cliente -- eles precisam que a aba esteja aberta |
| Apenas tempo relativo | Sem "às 15h" ou "amanhã às 9h" -- apenas "em X minutos/horas/dias" |
| Sem lembretes recorrentes | Cada lembrete dispara uma vez |
| Dispositivo único | Lembretes são armazenados no navegador e não sincronizam entre dispositivos |
| Timeout máximo | JavaScript setTimeout tem um máximo de ~24.8 dias (2^31 ms). Lembretes além disso podem não disparar com precisão |
Lembretes são associados a um bot específico. O lembrete é armazenado com o ID do bot, então está vinculado à conversa onde você o criou.