Spaces:
Sleeping
Download docs/IMPLEMENTATION_PLAN_DASHBOARD_OPERACIONAL_CACHE_SHORTCUTS_COMPACT.md from JuanCS-Dev/twitch-byte-bot: direct link, hf CLI and curl.
- Browser
- Download file 5.33 kB
-
https://huggingface.co/spaces/JuanCS-Dev/twitch-byte-bot/resolve/main/docs/IMPLEMENTATION_PLAN_DASHBOARD_OPERACIONAL_CACHE_SHORTCUTS_COMPACT.md
- Command line
-
hf download hf://spaces/JuanCS-Dev/twitch-byte-bot/docs/IMPLEMENTATION_PLAN_DASHBOARD_OPERACIONAL_CACHE_SHORTCUTS_COMPACT.md
-
curl -L -o IMPLEMENTATION_PLAN_DASHBOARD_OPERACIONAL_CACHE_SHORTCUTS_COMPACT.md https://huggingface.co/spaces/JuanCS-Dev/twitch-byte-bot/resolve/main/docs/IMPLEMENTATION_PLAN_DASHBOARD_OPERACIONAL_CACHE_SHORTCUTS_COMPACT.md
Plano Executavel - Dashboard Operacional (Cache + Shortcuts + Compact Mode)
Data: 2026-02-21 Status: pronto para execucao Escopo: melhorias de velocidade operacional sem alterar contratos principais do agente.
Links rapidos:
1) Objetivo
- Reduzir latencia percebida da dashboard em acessos repetidos.
- Acelerar operacao ao vivo com atalhos de teclado.
- Criar visualizacao "second screen" com menor ruido e foco no essencial.
2) Escopo fechado (3 features)
F1. Cache seletivo de assets estaticos com ETag + Cache-Control.
F2. Atalhos de teclado operacionais (r refresh, g run tick).
F3. Modo compacto para monitoramento continuo.
3) Baseline AS-IS (confirmado no codigo)
bot/dashboard_server.pyaplicaCache-Control: no-storepara toda resposta, inclusive assets estaticos.- Dashboard ja tem botoes para
Re-Sync,Refresh QueueeRun 1 Tick, mas sem atalhos de teclado globais. - Nao existe estado de "compact mode" em
dashboard/index.html,dashboard/main.jse CSS. - Rotas e autenticacao estao corretas (challenge Basic em
/dashboard, token para/api/*).
4) Requisitos obrigatorios
R1. API e HTML continuam sem cache (no-store).
R2. Apenas CSS/JS/static recebem cache curto com revalidacao por ETag.
R3. r dispara refresh operacional sem quebrar foco de campos de input.
R4. g dispara POST /api/autonomy/tick com feedback visual.
R5. Compact mode preserva controles criticos no topo e oculta blocos densos.
R6. Estado do compact mode persiste em localStorage.
R7. Nenhum arquivo novo/alterado passa de 300 linhas.
5) Contrato tecnico alvo
5.1 Cache seletivo de assets
Backend (bot/dashboard_server.py):
- Adicionar branch de resposta para assets estaticos:
index.html:Cache-Control: no-store..css/.js:Cache-Control: public, max-age=120, must-revalidate.- Gerar
ETagforte por hash de bytes do arquivo. - Aceitar
If-None-Matche retornar304sem body quando bater. - Manter auth exatamente igual (sem bypass por cache).
5.2 Shortcuts operacionais
Frontend:
- Novo modulo
dashboard/features/shortcuts/controller.js. r: executa sequencia rapida:- refresh observability;
- refresh action queue;
channel-control list(re-sync de canais).g: dispara o mesmo handler deRun 1 Tick.- Ignorar atalhos quando foco estiver em
input,textarea,selectou elementocontenteditable. - Adicionar throttle de 1.2s para evitar spam por key repeat.
5.3 Compact mode
Frontend:
- Toggle visual no topo (
Compact: on/off) emdashboard/index.html. - Persistencia em
localStoragecom chavebyte.dashboard.compact_mode. - Classe
body.compact-modepara alterar layout. - Em compact mode:
- manter visiveis: topbar, channel manager, KPIs, autonomy runtime, risk queue.
- recolher/ocultar: tabelas longas de analytics, context internals e listas extensas.
- reduzir paddings e fontes secundarias para caber em second screen.
6) Plano por fases
Fase 0 - Safety baseline (pre-condicao)
- Criar testes de contrato atuais em
bot/tests/scientific/suite_http.py: - dashboard asset retorna
200com body; - API continua
Cache-Control: no-store. - Aceite: baseline travada antes de mudar cache.
Fase 1 - Cache seletivo de assets
- Implementar helpers de cache em
bot/dashboard_server.py: - calculo de
ETag; - resposta
304; - headers por tipo de recurso.
- Nao alterar
handle_get/handle_postda API. - Testes:
suite_http: cobertura deETag,If-None-Match,304, eno-storepara API.- Aceite:
- assets repetidos respondem
304; - endpoints API continuam sem cache.
Fase 2 - Shortcuts de teclado
- Criar
dashboard/features/shortcuts/controller.js. - Integrar no bootstrap em
dashboard/main.js. - Exibir feedback curto no topo ao executar atalho (ex.:
Shortcut: refresh). - Testes/smoke:
- validar que
regfuncionam com foco fora de input; - validar que nada dispara digitando em campos.
- Aceite:
- operacao principal fica acionavel sem mouse, sem regressao de UX.
Fase 3 - Compact mode
- Adicionar botao/estado no
index.html. - Implementar controlador de estado compacto em
dashboard/main.jsou modulo proprio. - Adicionar regras CSS em
dashboard/styles/layout.cssedashboard/styles/components.css. - Testes/smoke:
- persistencia apos reload;
- layout legivel em 1366x768 e em mobile sem quebrar fluxo atual.
- Aceite:
- visual compacto reduz ruido e mantem controles de operacao ao vivo.
Fase 4 - Validacao final e deploy
- Rodar testes rapidos:
pytest bot/tests/test_scientific.py -v -xpytest bot/tests/test_observability.py -v -x- Smoke manual:
/dashboardauth;- refresh via teclado;
- tick manual via teclado;
- modo compacto persistente.
- Deploy com rollback simples (reverter revisao Cloud Run anterior).
7) Definition of Done
- Cache seletivo ativo apenas para assets estaticos, com
ETagfuncional. - Shortcuts
regoperando de forma segura e previsivel. - Compact mode funcionando e persistente, sem perda de controle critico.
- Sem regressao de auth/dashboard API.
- Documentacao indexada em
docs/INDEX.md.