Skip to content

fix(portal): checklist de ativação marca agenda Google e primeira pergunta#159

Merged
BrunooMoniz merged 1 commit into
mainfrom
fix/activation-checklist
Jun 19, 2026
Merged

fix(portal): checklist de ativação marca agenda Google e primeira pergunta#159
BrunooMoniz merged 1 commit into
mainfrom
fix/activation-checklist

Conversation

@BrunooMoniz

Copy link
Copy Markdown
Owner

Problema

No checklist "Ative seu cérebro" (Início), duas pontas eram impossíveis de completar pelo uso normal do produto:

  1. "Conecte uma agenda"getActivationState só contava link iCal (getIcalLinks), ignorando a conta Google OAuth, que é o caminho recomendado (com toggles por calendário). Quem conecta o Google nunca via o item marcar.
  2. "Faça a primeira pergunta" — dependia do flag setado por markAskDone(), que é código morto (nenhum caller no front; ask() do chat nunca o dispara). Além disso nunca cobriria perguntas via Claude.ai (MCP), que não tocam o portal.

Correção (aditiva, sem migração)

  • agenda: marca com iCal ou conta Google conectada (getGoogleAccounts).
  • ask: marca pelo flag legado ou qualquer busca em ai_search_log (portal Consultar + Claude.ai + Claude Code), a fonte de verdade de atividade de consulta.
  • hasSearchActivity() é best-effort (no-op false sem DB, swallow de erro), mesmo padrão de recordSearchEvent.

Testes

2 novos testes unitários em activation.test.ts (Google marca agenda; linha em ai_search_log marca a pergunta). Suíte completa: 1448/1448 verde, build (tsc) limpo.

🤖 Generated with Claude Code

…gunta

Duas pontas do checklist "Ative seu cérebro" eram impossíveis de completar
pelo uso normal do produto:

- "Conecte uma agenda" só contava link iCal (getIcalLinks), ignorando a
  conta Google OAuth — o caminho recomendado, com toggles por calendário.
  Agora marca com iCal OU conta Google conectada.
- "Faça a primeira pergunta" dependia do flag setado por markAskDone(), que
  é código morto (nenhum caller no front; ask() do chat nunca o dispara) e
  ainda não cobriria perguntas via Claude.ai. Agora marca pelo flag legado
  OU por qualquer busca em ai_search_log (portal + Claude.ai + Claude Code),
  a fonte de verdade de atividade de consulta.

hasSearchActivity() é best-effort (no-op false sem DB, swallow de erro),
mesmo padrão de recordSearchEvent. Aditivo, sem migração.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@BrunooMoniz BrunooMoniz merged commit 3771b3f into main Jun 19, 2026
4 checks passed
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