| name | newsession |
| description | Handover para nova sessão — carrega contexto do trabalho em andamento e instrui próximos passos |
Skill: newsession
Handover para nova sessão — carrega contexto do trabalho em andamento e instrui próximos passos.
STATUS ATUAL: 2026-06-28 — TELEGRAM MINI APP MVP ENTREGUE
Data: 28/06/2026
Foco da sessão: Implementar e deployar Telegram Mini App MVP para participantes do BigCartola.
O que foi entregue (tudo commitado / pushed / verificado em prod):
- Telegram Mini App MVP — ranking da liga + bracket PC acessíveis direto do Telegram via botão inline do bot.
- URL:
https://supercartolamanager.com.br/mini/
- Endpoints:
POST /api/mini/validate, GET /api/mini/ranking, GET /api/mini/pc-bracket
- Auth: HMAC
initData Telegram → lookup telegram_vinculos → sessionToken UUID TTL 5min (in-memory Map)
- Segurança: IDOR bloqueado (liga_id da sessão, nunca do cliente), XSS bloqueado (
esc()), replay attack bloqueado (auth_date ≤ 3600s)
- Bot: botões inline adicionados em
bigcartola/src/chat-handler.js via MINI_RANKING_RE / MINI_PC_RE
- Commits:
a1fc1ecb (feat), 4a3be293 (fix IDOR+XSS), 3cfe2bc4 (fix replay), bdc05aa6 (docs)
- Deploy verificado: container
scm-prod Up healthy, VPS em bdc05aa6, endpoints 401 correto sem session.
Estado do repo: main limpo, local = origin = VPS = bdc05aa6.
Pendências abertas / próximos passos:
- Issue #105 (CRÍTICA — Mini App inutilizável sem isso): Admin UI para vincular participantes Telegram → liga. Sem vínculos em
telegram_vinculos, nenhum participante consegue autenticar no Mini App.
- Issue #104: Registrar hook auto-push em
settings.json — hook existe em .claude/hooks/post-tool-use-autopush mas não está no settings.json. Commits desta sessão não foram auto-pushed; precisou push manual.
- F2-BC / F3-BC (
fancy-baking-pumpkin.md): RAG personalizado da liga e MODO GOD — retomar no Brasileirão (~02/08/2026; lembrete em bigcartola/src/reminder.js).
Alerta de infra (observação passiva — não agir):
traefik-myri-traefik-1 estava em Restarting (1) no encerramento desta sessão. Pertence ao projeto myri, não ao SuperCartolaManager.
Restrições permanentes (não violar): Groq-only para LLM (zero API paga); NUNCA API-Football no BigCartola; nunca commitar credenciais; ADMIN_TIME_ID = 13935277 é o único GOD.
Restrições permanentes (não violar): Groq-only para LLM (zero API paga); NUNCA API-Football no BigCartola; nunca commitar credenciais; ADMIN_TIME_ID = 13935277 é o único GOD.
STATUS ANTERIOR: 2026-04-17 — AUDITORIA FINANCEIRA CONCLUÍDA + REDESIGN TESOURARIA SPEC PRONTO
Data: 17/04/2026
Última ação: Auditoria financeira completa dos 35 participantes da Liga Super Cartola (684cb1c8af923da7c7df51de). 58 registros criados (AjusteFinanceiro + AcertoFinanceiro). Spec do redesign da tesouraria admin escrito e aprovado — aguarda plano de implementação.
Pendências abertas:
- Invocar
writing-plans para gerar o plano de implementação do redesign da tesouraria admin (spec em docs/superpowers/specs/2026-04-17-tesouraria-admin-redesign.md)
SESSÃO 17/04/2026 — AUDITORIA FINANCEIRA 2026 + SPEC TESOURARIA
Correções financeiras aplicadas (script scripts/correcoes-financeiras-2026.js)
58 registros criados na Liga 684cb1c8af923da7c7df51de para 33 participantes:
- AjusteFinanceiro: Inscrição 2026 (−180) para todos os participantes devidos
- AjusteFinanceiro: Saldo transferido/acumulado 2025 (positivo ou negativo)
- AcertoFinanceiro: quitações e pagamentos parciais de inscrição
Participantes resolvidos anteriormente (não tocados):
- FloriMengo FC [645089] — ajuste −120 + acerto 60 = saldo −44 ✓
- Urubu Play F.C. [13935277] — SEM_INSCRICAO (Paulinett Miranda)
- China Guardiola [1097804] — inscrição + saldo anterior já no cache historico_transacoes
Posição financeira atual (saldo = rodadas + ajustes + acertos):
| Status | Participantes | Destaques |
|---|
| CREDORES (11) | BarrosB, China, Cássio, Diego, Mauricio, Randim, Sir Gegé, Tabaca, Vitim, Wesley, juniel | Vitim +1.394 / Mauricio +1.129 |
| DEVEDORES (24) | demais | Raylson −491 / Raimundo −415 / Jonney −398 |
Auditoria de módulos financeiros 2026
| Módulo | Mecanismo | Status |
|---|
| Pontos Corridos | Automático (historico_transacoes) | ✅ 20 transações |
| Mata-Mata | Automático (historico_transacoes) | ✅ 7 transações |
| Resta Um | Automático (AjusteFinanceiro) | ✅ 6 débitos −2,27 (E1 em andamento) |
| Melhor do Mês | Manual via Ajustes (admin) | Intencional |
| Top 10 | Manual ao final da R38 | Intencional |
| Ranking Geral | Manual ao final da temporada | Intencional |
| Artilheiro | Manual ao final da R38 | Intencional |
| Luva de Ouro | Manual ao final da R38 | Intencional |
| Capitão de Luxo | Manual ao final da R38 | Intencional |
Redesign Tesouraria Admin — Spec aprovado
Spec: docs/superpowers/specs/2026-04-17-tesouraria-admin-redesign.md
Commit: 6faac2c9
Resumo do design (Opção B — Lista Compacta + Chips Inline):
- Remove 11 colunas de módulos (Timeline, PC, MM, Top10, MelhorMes, Artilheiro, Luva, RestaUm, Capitão, AjManuais, Acertos)
- Adiciona barra de resumo (4 stats: A Receber / A Pagar / Devedores / Credores)
- Filtros rápidos client-side (Todos / Devedores / Credores / Insc. Pendente / Ordenar Saldo ↓)
- Chips inline por linha — só aparecem quando valor ≠ 0 (2025±, Insc✓/−, PC±, MM±, RU−, Pag+)
- Mantém botão Extrato → modal existente inalterado
Arquivos a modificar:
public/js/fluxo-financeiro/fluxo-financeiro-ui.js — substituir header e linhas da tabela
public/css/modules/fluxo-financeiro.css — estilos chips, summary bar, filtros
public/js/fluxo-financeiro/fluxo-financeiro-core.js — cálculo totais summary bar
Próximo passo: invocar skill writing-plans passando o spec acima para gerar o plano de implementação passo a passo.
SESSÃO 01/03/2026 — FIXES COPA 2026 + CSP
| Fix | Arquivo | Commit |
|---|
CSP font-src + db.onlinewebfonts.com (fontes F1 Tiro Certo) | middleware/security.js | 255fc01 |
copa-mundo-2026.css ausente no SPA | public/participante/index.html | dde4e3a |
| Imagens estádios — URLs Wikipedia com 404, baixadas localmente via API+proxy | public/img/estadios/ + config/copa-do-mundo-2026.js + SW v29 | 34550a5 |
pending-tasks.md zerado | .claude/pending-tasks.md | e2d3290 |
SESSÃO 18/02/2026 — AUDITORIA INSCRIÇÕES + BANCO ÚNICO
Última ação: Fix bug inscrição 2026 — débitos faltantes inseridos + código corrigido + não-renovantes inativos. Commit 5343052.
Fixes aplicados (resumo)
| Módulo | Score antes → depois | Commits |
|---|
| Top 10 | 82→92 | fd14c11 |
| Melhor Mês | 78→90 | fd14c11 |
| Campinho | 88/100 — sem fixes | — |
| Dicas Premium | 87/100 — sem fixes | — |
| Pontos Corridos | 82→93 | ec2a48f |
| Mata-Mata | 91→95 | 21d8e5d |
| Luva de Ouro | 73→91 | 012ede2 |
| Capitão de Luxo | 80→92 | 6412d2b, 6b214c9 |
| Artilheiro | 70→90 | 68acaaf, 0824f17, 900b38e |
Correções financeiras / infraestrutura
- Fix
criarTransacoesIniciais — liga_id como String em extratofinanceirocaches
saldo-calculator.js — != false → === true (linhas 158 e 287)
- Banco único
cartola-manager — MONGO_URI_DEV descontinuada
- Sincronismo 2025/2026 —
>= 2026 → >= CURRENT_SEASON
DADOS DE REFERÊNCIA
Liga principal: Super Cartola 2026
- Liga ID:
684cb1c8af923da7c7df51de
- Inscrição: R$ 180,00
- Owner: Paulinett Miranda (time_id: 13935277, premium: true)
- 35 participantes ativos
Liga secundária: Cartoleiros do Sobral — 684d821cf1a7ae16d1f89572
Liga Os Fuleros: 6977a62071dee12036bb163e — 8 inscritos
Rodada atual Cartola: R4 (temporada 2026)
ARQUIVOS CRÍTICOS
| Arquivo | Papel | Status |
|---|
utils/saldo-calculator.js | Fonte da verdade financeira | OK (=== true) |
middleware/security.js | CSP headers produção | OK (db.onlinewebfonts.com adicionado) |
config/copa-do-mundo-2026.js | Dados Copa 2026 | OK (paths locais /img/estadios/) |
public/img/estadios/ | 16 imagens estádios | OK (baixadas 01/03/2026) |
public/participante/service-worker.js | SW PWA | v29-20260301 |
public/participante/index.html | SPA entry | OK (copa-mundo-2026.css incluído) |
public/participante/css/copa-mundo-2026.css | CSS flip cards sedes | OK |
config/seasons.js | Fonte da verdade temporada | CURRENT_SEASON = 2026 |
controllers/inscricoesController.js | Inscrições temporada | OK (!== true, liga_id String) |
SCHEMA CRÍTICO — TIPOS DE ID
| Collection | Campo liga | Tipo |
|---|
extratofinanceirocaches | liga_id | String |
inscricoestemporada | liga_id | ObjectId |
times | id | Number |
Regra: NUNCA usar ObjectId em queries de extratofinanceirocaches. Sempre String.