Skip to content

v1.36.0 — Web Push pro guardião

Choose a tag to compare

@mouradjnet mouradjnet released this 16 Jul 20:46
· 107 commits to master since this release
10d552e

Fecha o laço central do produto: pedido → aviso → decisão. Antes, o Web Push era exclusivo da criança e o guardião só descobria um pedido abrindo o painel ou pelo digest de email das 22h.

O que muda pra quem usa

O toggle Notificações push em Configurações sai de "Em breve" e passa a funcionar. Com ele ligado, o guardião recebe no celular:

  • Filho pediu acesso — na hora, com o nome dele e o que foi pedido
  • Tempo de tela esgotado
  • Tentativa de acesso fora do horário (hora de dormir / dia bloqueado)

No máximo um aviso por filho, por tipo, por dia. Tocar na notificação abre o painel direto nos pedidos pendentes.

Todos os guardiões ativos recebem — admin ou collaborator. Sem gate de licença: um controle parental que não avisa o pai está quebrado, não "limitado".

iPhone: o painel agora é instalável (manifest). O Safari só entrega Web Push em site adicionado à Tela de Início — sem isso, a feature nasceria cega no iOS.

Técnico

  • Migração 024 (guardian_push_subscriptions + guardian_push_dedup), DB v23→v24
  • 3 rotas /guardian/push/{key,subscribe,unsubscribe} (auth: nonce + requireCollaboratorOrAbove)
  • GuardianAuth::isActiveGuardian(), PushSender::sendToGuardians(), GuardianNotifier (funil único, dedupe por evento no fuso do site)
  • sw.js em JS puro (sem Workbox) — push não exige que o SW controle a página, então o painel dispensa o PWA inteiro que o app-child precisa
  • GC do dedupe (>30d) no cron diário

Deploy idempotente: tabelas novas com IF NOT EXISTS, nenhum dado existente tocado, caminho de push da criança inalterado. Rollback = desativar o plugin.

Suítes: PHP 582 · app-parent 319 · app-child 110. CI 4/4.

Spec e plano em docs/superpowers/.