CI: canário noturno das APIs privadas do player numa live real#47
Open
juansilvadesign wants to merge 2 commits into
Open
CI: canário noturno das APIs privadas do player numa live real#47juansilvadesign wants to merge 2 commits into
juansilvadesign wants to merge 2 commits into
Conversation
…popup Novo engine/telemetry.js (dual-load, como o controller): um log limitado de amostras (1/s, 2 min — [t, latência, buffer, velocidade aplicada]) e contadores de sessão por stream (tempo assistido, atraso recuperado pelo catch-up, pulos para o ao vivo, travadas, latência média ponderada). Tudo vive só na memória da aba; nada é persistido nem enviado. O popup ganha duas ações no painel avançado: "Diagnóstico" copia um JSON com as amostras, caps do player, estado do controlador, modo e configurações — pronto para issues (o template de bug agora traz o bloco) — e "Resumo da sessão" copia um texto curto e compartilhável. A ponte popup→content→página segue o padrão do video-meta: só responde o frame que tem live de verdade; sem live, o timeout do popup vira o aviso "abra uma live". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AiLQznJ15KbuK73b9YxAjS
Todo dia, scripts/canary.mjs (npm run canary) carrega a extensão descompactada num Chrome via puppeteer (devDep que o repo já tinha), abre uma live 24/7 (padrão: Lofi Girl; CANARY_VIDEO para trocar) e verifica as duas coisas que hoje só relatório de usuário revelava DEPOIS do estrago: (1) as oito APIs privadas do player que o motor usa ainda existem — o risco que o próprio ROADMAP chama de existencial — e (2) o motor liga e amostra a live de verdade, provado pela ponte de diagnóstico (_zd_diag_request/_response). Duas tentativas com navegador novo; relatório em canary-report.json (gitignored, vira artifact). Falha abre/atualiza UMA issue deduplicada (label canary) — nunca bloqueia merge, porque YouTube visto de IP de datacenter é instável por natureza (validado na prática: nesta rede a live carrega playability UNPLAYABLE mesmo com todas as APIs presentes; o relatório agora distingue esse caso de uma mudança real de API e manda verificar localmente). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AiLQznJ15KbuK73b9YxAjS
13 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Descrição da mudança
O ROADMAP chama o acoplamento do motor às APIs privadas do player de risco existencial — e hoje o alarme são os relatórios de usuário, DEPOIS do estrago. Esta PR adiciona um canário noturno: um workflow diário que carrega a extensão descompactada num Chrome (via puppeteer, devDep que o repo já tem) numa live 24/7 real e verifica:
probe_capsdo motor usa ainda existem (getStatsForNerds,getProgressState,getVideoData,setPlaybackRate,getPlaybackRate,seekToLiveHead,playVideo,getPlayerStateObject);_zd_diag_request/_zd_diag_response) — content script injetado, engine attach, telemetria rodando.Comportamento em falha: abre/atualiza uma issue deduplicada (label
canary) com ocanary-report.jsonembutido e a instrução de verificar localmente antes de reagir — nunca bloqueia merge, porque YouTube visto de IP de datacenter é instável por natureza (validado na prática: numa das redes de teste a live carrega com playabilityUNPLAYABLEmesmo com todas as APIs presentes; o relatório distingue esse caso de uma mudança real de API). Duas tentativas com navegador novo por execução;CANARY_VIDEO(repository variable) troca a live padrão (Lofi Girl) se ela um dia cair;npm run canaryroda localmente.Tipo de mudança
Impacto em storage
Testes
npm run lintsem errosnpm testsem falhasScreenshots
N/A — tooling de CI.
Checklist final
🤖 Generated with Claude Code
https://claude.ai/code/session_01AiLQznJ15KbuK73b9YxAjS