Skip to content

feat(ask): calendário ao vivo também via Google OAuth (não só iCal)#162

Merged
BrunooMoniz merged 1 commit into
mainfrom
feat/ask-calendar-gcal
Jun 19, 2026
Merged

feat(ask): calendário ao vivo também via Google OAuth (não só iCal)#162
BrunooMoniz merged 1 commit into
mainfrom
feat/ask-calendar-gcal

Conversation

@BrunooMoniz

@BrunooMoniz BrunooMoniz commented Jun 19, 2026

Copy link
Copy Markdown
Owner

Problema

A rota de agenda ao vivo do Consultar (PR #161) só consultava feeds iCal do cofre. Contas que conectam o Google direto em /app/fontes (vault kind google_oauth) — o caso do Bruno e de amigos — caíam no brain_search com dados velhos do índice (ex.: "quais eventos tenho essa semana" respondia com eventos de maio).

Correção

A rota ao vivo agora busca de ambas as fontes:

  • iCal (já existia)
  • Google OAuth: mesmo caminho do indexer (getGoogleAccountsgetGoogleAccessTokenForlistCalendarsWithToken → calendários selecionados via getSelectedCalendarIdslistEventsWithToken na janela), porém read-through, sem persistir. Reusa eventToDocument.

Eventos das duas fontes são mesclados e ordenados por data. A rota dispara só quando a conta tem alguma fonte (iCal ou Google); senão cai no brain_search. Qualquer falha no caminho ao vivo (refresh de token, rede) também cai no brain_search — nunca derruba a request (HTTP 200).

Testes

+4 casos em ask-calendar.test.ts (Google sozinho; iCal+Google mesclado/ordenado; Google com zero eventos → resposta honesta; falha ao vivo → fallback). Suite 1471/1471 verde. npm run build limpo.

🤖 Generated with Claude Code

A rota de agenda do Consultar só consultava feeds iCal do cofre. Contas que
conectam o Google direto em /app/fontes (vault kind google_oauth) caíam no
brain_search com dados velhos do índice.

Agora a rota ao vivo busca de AMBAS as fontes:
- iCal (já existia)
- Google OAuth: mesmo caminho do indexer (contas → access token → calendários
  SELECIONADOS → eventos na janela), porém read-through, sem persistir. Reusa
  eventToDocument e respeita o opt-in de getSelectedCalendarIds.

Eventos das duas fontes são mesclados e ordenados por data. Dispara só quando a
conta tem alguma fonte (iCal ou Google); senão cai no brain_search. Qualquer
falha no caminho ao vivo (refresh de token, rede) também cai no brain_search,
nunca derruba a request.

Testes: +4 casos (Google sozinho, iCal+Google mesclado/ordenado, Google com zero
eventos → resposta honesta, falha ao vivo → fallback). Suite 1471/1471.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@BrunooMoniz BrunooMoniz merged commit 8a0a273 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