CL-2026-03-17-BK-129
- Status: (P)
- Escopo: multi-projeto
- Projetos afetados:
cerebro-kernel,cerebro-studio,rionoteatro - Aprovacao humana obrigatoria: nao
- Revisor IA: auto-revisao
Resumo
Slice inicial do runtime de browser control no cerebro-kernel, abrindo a trilha oficial para automacao real por navegador em casos onde API publica nao resolve mais o fluxo.
Este changelog ja registra um fechamento parcial da Fase 1, suficiente para mergear a fundacao tecnica agora e retomar depois sem perder o plano operacional.
Motivacao
- o
BK-104dorionoteatrofechou a RCA da Graph API deFacebook Page Eventscomo bloqueada porcode 100 / subcode 33; - insistir em payload Graph API nao e mais a trilha correta;
- faltava no
cerebroum contrato canonico para perfis de browser control, catalogo e preview deterministico de plano.
Entregas
- modulo
kernel/browser_control.jscom: - leitura de perfis em
kernel/config/browser_profiles/; - validacao estrutural da definicao;
- preview deterministico com placeholders resolvidos.
- perfil inicial
rnt-facebook-page-event-create-v1. - handlers WS minimos:
studio_browser_catalogstudio_browser_plan_preview- executor real
kernel/browser_executor.js, usandoplaywright-corecom Chromium do host. - dependencia
playwright-coreadicionada emkernel/package.jsonpara reutilizar o browser do sistema sem baixar runtime extra. - suporte a
storage stateno runtime para fluxos que exigem sessao autenticada. - runner CLI
kernel/scripts/browser_profile_runner.jspara preview/execucao controlada de browser profiles. - overrides operacionais no runner CLI para
--storage-statee--output-root, evitando depender de env e reduzindo risco de artefato dentro do repo. - capturador guiado
kernel/scripts/browser_capture_storage_state.jspara preparar sessao autenticada fora do repo. - handler WS adicional:
studio_browser_run_start- cobertura unitario em
kernel/tests/unit/browser-control.test.js. - teste local de execucao real em
kernel/tests/unit/browser-executor.test.js. - perfil read-only
rnt-facebook-page-events-probe-v1para coletar evidencia segura da superficie real do Facebook. - backlog/spec/lock alinhados ao novo BK.
Validacoes executadas
node --check kernel/browser_control.jsnode --check kernel/browser_executor.jsnode --check kernel/index.jsnode --check kernel/tests/unit/browser-control.test.jsnode --check kernel/tests/unit/browser-profile-runner.test.jsnode --check kernel/tests/unit/browser-executor.test.jsnpx jest --runInBand tests/unit/browser-control.test.jsnpx jest --runInBand tests/unit/browser-profile-runner.test.jsnpx jest --runInBand tests/unit/browser-executor.test.jsgit diff --checknode scripts/browser_profile_runner.js --profile rnt-facebook-page-events-probe-v1 --input-json '{"page_slug":"rionoteatro"}'node scripts/browser_profile_runner.js --profile rnt-facebook-page-events-probe-v1 --input-json '{"page_slug":"rionoteatro"}' --execute --confirmednode --check kernel/scripts/browser_capture_storage_state.js- smoke local via
nodechamandolistProfiles()ebuildPlanPreview()com o perfilrnt-facebook-page-event-create-v1 - execucao real contra HTML temporario local usando Chromium do host
- probe read-only externo em
https://www.facebook.com/rionoteatro/events, gerando screenshot e HTML preservados fora do repo em/tmp/cerebro-bk129-artifacts/rnt-facebook-page-events-probe-v1-1773727313219/
Observacao operacional
Este slice ja executa browser real em ambiente local controlado, usando playwright-core com o Chromium do host e artefatos de screenshot.
O probe externo mostrou um estado hibrido importante:
- o
<title>veio comoRio No Teatro | Facebook; - a URL
/rionoteatro/eventsfoi carregada; - o HTML ainda traz sinais de login (
CAALoginCometHeaderLoginForm.reacte campopassword).
Conclusao pratica:
- a superficie publica e alcancavel pelo browser control;
- para atingir controle de criacao de evento, o proximo passo precisa carregar sessao autenticada via
storage state, nao apenas refinar seletor em contexto anonimo; - o runner ja consegue receber esse
storage statepor flag explicita e gravar artefatos fora do repo, reduzindo atrito para a primeira prova autenticada.
Proximos passos canonicos apos o merge parcial
- Capturar
storage stateautenticado da Meta fora do repo comkernel/scripts/browser_capture_storage_state.js. - Rodar o perfil
rnt-facebook-page-events-probe-v1com--storage-statee--output-root /tmp/cerebro-browser-runs. - Confirmar em artefatos que a sessao autenticada alcanca os controles corretos de
Facebook Page Events. - Evoluir
rnt-facebook-page-event-create-v1para um create-flow controlado, primeiro sem publicar e depois com gate humano. - Reaplicar a trilha no
BK-104dorionoteatroe, por ultimo, expor acionamento seguro no Studio.
O script global npm test -- --runInBand tests/unit/browser-control.test.js do kernel continua puxando a suite inteira do projeto; neste worktree ele bateu em dependencia ausente de ambiente (better-sqlite3) fora do escopo do BK-129. Por isso a evidencia canônica deste slice ficou no jest isolado do novo modulo.