7 Flechas.
Seg
Ter
Qua
Qui
Sex
Sáb
Dom

Sprint

Tasks

Milestones
0 elementos

Goals & Milestones

OKRs e KPIs por área e programa.

Dev

Fila de desenvolvimento. Editável inline. Mude a prioridade para reordenar.

Handbook — diretrizes do projeto

Documento vivo. Atualizado a cada decisão do projeto.
Carregando…
)', r' ' + hb + r' ', s) ``` --- ## 21. Operacional — secrets, credenciais, URLs ### Supabase - **URL**: `https://etajefcbqfimogamwups.supabase.co` - **Anon key**: público no index.html (linha ~14) - **Service role key**: NUNCA expor; só em CI secrets se necessário - **DB password**: GitHub Secrets `SUPABASE_DB_PASSWORD` - **Direct connection**: `db.etajefcbqfimogamwups.supabase.co:5432` (IPv6 only no free tier) - **Session Pooler** (IPv4): `aws-1-us-east-2.pooler.supabase.com:5432` com user `postgres.etajefcbqfimogamwups` - **SQL Editor**: https://supabase.com/dashboard/project/etajefcbqfimogamwups/sql/new ### GitHub - **Repo público**: `abrisolla/flecha-dashboard` (código) - **Repo privado**: `abrisolla/flecha-dashboard-backups` (backups) - **PAT `flecha-dashboard-cowork`**: usado pelo Claude pra push (escopo Contents:R/W em flecha-dashboard; precisa workflow scope pra editar Actions) - **PAT `flecha-backups-write`**: Action backup pra push em flecha-dashboard-backups (escopo Contents:R/W em flecha-dashboard-backups) - **Secrets necessários no flecha-dashboard repo**: - `SUPABASE_DB_PASSWORD` - `BACKUP_REPO_TOKEN` ### Netlify - **Site ID**: `096daca5-08a2-4bab-8411-a63d3b8c8a14` - **Project name**: `flecha-muvuka` - **Auto-deploy**: GitHub main → build automático - **Manual deploy**: drag-drop em https://app.netlify.com/drop ### Wix DNS - CNAME `flecha` → `flecha-muvuka.netlify.app` - SSL gerenciado por Netlify ### Google OAuth (planejado) - Project: `7-flechas-auth` (a criar) - Authorized redirect URIs: - `https://etajefcbqfimogamwups.supabase.co/auth/v1/callback` - `https://flecha.muvuka.org` ### Allowlist Auth (planejado) - `alezbrisolla@gmail.com` - `alexandre@muvuka.org` --- ## 22. Decision Log | Data | Decisão | Motivo | |---|---|---| | 2026-05-07 | Single-file HTML | Facilidade de upload e iteração via Cowork | | 2026-05-07 | Vanilla JS | MVP ~100KB, framework é overkill | | 2026-05-07 | localStorage | Sem necessidade de auth/sync no MVP | | 2026-05-07 | Sem ícones nem emojis | Preferência explícita do usuário | | 2026-05-07 | Figtree font | Mesma do Monday.com | | 2026-05-07 | Múltiplas listas de prioridades | Contextos diferentes (mês, sprint, ano) | | 2026-05-07 | Format per-row em OKR | Cada KPI tem unidade própria (R$, %, h, kg) | | 2026-05-07 | DependsOn como autocomplete | Evitar typos + relacionar tarefas/OKRs | | 2026-05-09 | Deploy em flecha.muvuka.org via Netlify | Padrão de subdomínio. DNS Wix CNAME | | 2026-05-09 | Handbook como aba interna do dashboard | Usuário sempre tem doc à mão + botão Baixar PDF | | 2026-05-09 | Drag-drop áreas no sidebar | HTML5 nativo, sem libs | | 2026-05-09 | Smart popover positioning | Flip pra cima quando overflow no rodapé | | 2026-05-09 | Calendário/Sprint sem subtítulos | Reduzir ruído visual | | 2026-05-09 | Sprint columns 4×2 chakra colors | Caber 8 colunas + estética 7 chakras | | 2026-05-09 | Aba Dev como fila | Transparência do backlog em localStorage | | 2026-05-09 | Convenção "próximos 3 passos" | Reduzir pingue-pongue | | 2026-05-09 | Calendário 52px | Caber 6 semanas em 720p (depois 75px v2.1) | | 2026-05-09 | Aba Tasks (Quick Tasks) | Tasks da semana agrupadas por dia | | 2026-05-09 | Phase 2: hierarquia Projeto sub-Programa | Layer adicional `projectsInProgram` | | 2026-05-09 | Dual-theme/dia no calendário | Diagonal split | | 2026-05-09 | Deploy safety integrado ao handbook | Pré-flight + smoke test obrigatórios | | 2026-05-09 | Auto-deploy GitHub→Netlify | Push triggera deploy | | 2026-05-11 | Tasks tab via dataDate | Era deadline; lookup quebrava pós Phase 2 | | 2026-05-11 | Keyboard-first Task Modal | Enter/Esc/Shift+Enter | | 2026-05-11 | Fontes 10.5px | Era 9px (pequeno demais), depois 13px (grande demais) | | 2026-05-11 | Cap largura tabelas Projetos | Não exceder container visível | | 2026-05-11 | Fix +Adicionar tarefa per-projeto | id non-unique → ref direto | | 2026-05-11 | addProject cria default projeto | Programa novo já vem com "Novo Projeto" | | 2026-05-11 | **POLÍTICA: real-time Supabase obrigatório** | Toda feature persistente sincroniza | | 2026-05-11 | **POLÍTICA: file > 240KB → Python+heredoc** | Edit tool trunca | | 2026-05-11 | Supabase integrado | supabase-js v2, project `etajefcbqfimogamwups` | | 2026-05-11 | Painel Atualizações Monday-style | Toolbar B/I/U/UL/OL/Checklist/Link/Attach/@ + real-time | | 2026-05-11 | Tasks defaultDate vai pra DATA | Click day-column → pré-fill Data (não Deadline) | | 2026-05-11 | Week label sempre com ano | Evitar confusão ao navegar entre anos | | 2026-05-11 | **POLÍTICA: paste normalizado** | Capture phase intercepta paste em contenteditable | | 2026-05-11 | Dev novo status "On Going" amarelo | 4ª opção | | 2026-05-11 | Default projeto name "Novo Projeto" | Era "Planilha de Controle" | | 2026-05-11 | Default column widths Innovation Latam | Baseline pra todos projetos | | 2026-05-11 | cell-clamp-1 em Elemento + Next Step | 1 linha + ellipsis, expande em focus | | 2026-05-11 | Centralização cols projetos | Status/Prioridade/Pessoa/Deadline/Data center | | 2026-05-11 | OKR deadline dd/mm/aa | Mask input | | 2026-05-11 | OKR/KPI centralização | Status/Deadline/Prog/Base/Target/Current/etc | | 2026-05-11 | "Progress" → "Prog" | Coluna mais compacta | | 2026-05-11 | Atualizações fonte 10.5px | Era 13px | | 2026-05-11 | Auto-linkify + target=_blank | URLs viram links automaticamente | | 2026-05-11 | Depende de inline autocomplete | 3-tier (mesmo projeto/programa/outros) | | 2026-05-11 | Tasks tab filtros multiselect | Área/Programa/Projeto/Status/Prioridade/Dependência | | 2026-05-11 | Tasks tab drag-drop entre colunas | Muda dataDate | | 2026-05-11 | Filtros UX polish | Hierarquia visual, search, keyboard, Vistas, tooltips | | 2026-05-11 | Cascading filters | Programa filtra por área; projeto por programa; auto-prune | | 2026-05-11 | Filtros default hide Done | Status vazio = tudo menos Done (ícone olho-riscado) | | 2026-05-11 | Vistas salvas (Save Views) | Pill "Vistas ▾" com save/load/rename/delete | | 2026-05-11 | Depende de multi-select Monday-style | Array em vez de string; picker com checkboxes; chips com X | | 2026-05-11 | Cards Tasks só título + clamp 2 linhas | Sem breadcrumb/status | | 2026-05-11 | Drag-drop reordenar dentro coluna Tasks | task.dayOrder | | 2026-05-11 | Campo Tipo + filtro Tipo | 5 defaults (Rua/Casa/Mobile/Desktop/Fup) + customizáveis | | 2026-05-11 | Filtro Título autocomplete | Substring match em task.name | | 2026-05-11 | Editar atualizações inline | Botão ✎ + mini-toolbar + Save/Cancel + updated_at | | 2026-05-11 | PWA setup (manifest + sw + icons) | Instalável iOS/Android/desktop | | 2026-05-11 | iOS-focused PWA | Apple-touch-icon 152/167/180; removeu maskables | | 2026-05-11 | Mobile responsive base | Hamburger drawer, brand "7 Flechas", tabs scroll horizontal | | 2026-05-11 | Botão "Baixar app" no sidebar | Modal com instruções iOS/Android/Desktop | | 2026-05-11 | AVAILABLE_VIEWS += 'APP' | Tag pra tasks de mobile/auth | | 2026-05-11 | 22 tasks APP backlog | Roadmap completo fases 1/2/3 + segurança | | 2026-05-11 | **CRITICAL FIX loadState destrutivo (v4.6.12-13)** | TIPO_DEFAULTS inline, safeMig, snapshots _lastGood/_prev, outer catch nunca DEFAULT_DATA | | 2026-05-11 | Backup completo Supabase (v4.7) | state_snapshots table + auto-snapshot debounce 30s + botão Restaurar | | 2026-05-11 | Cascade recovery loadState | parsed → _lastGood → _prev → Supabase → DEFAULT_DATA (com banner) | | 2026-05-11 | Postmortem documentado | Risk audit 14 pontos no HANDBOOK | | 2026-05-11 | Schema backup (v4.8) | pg_dump --schema-only + --data-only + --inserts combined | | 2026-05-11 | activity_log table | Audit trail (write a cada saveState — planejado) | | 2026-05-11 | Rollback Runbook | 7 cenários com passos detalhados | | 2026-05-11 | psql autonomous via psycopg2 | Pra DDL futuro sem precisar pedir SQL ao user | | 2026-05-11 | Área "Recovery" criada | 12 tasks recuperadas de task_updates órfãs | | 2026-05-11 | HANDBOOK v3.0 — reconstrução completa | Capturar TODO o histórico do chat | )', r' ' + hb + r' ', s) ``` --- ## 21. Operacional — secrets, credenciais, URLs ### Supabase - **URL**: `https://etajefcbqfimogamwups.supabase.co` - **Anon key**: público no index.html (linha ~14) - **Service role key**: NUNCA expor; só em CI secrets se necessário - **DB password**: GitHub Secrets `SUPABASE_DB_PASSWORD` - **Direct connection**: `db.etajefcbqfimogamwups.supabase.co:5432` (IPv6 only no free tier) - **Session Pooler** (IPv4): `aws-1-us-east-2.pooler.supabase.com:5432` com user `postgres.etajefcbqfimogamwups` - **SQL Editor**: https://supabase.com/dashboard/project/etajefcbqfimogamwups/sql/new ### GitHub - **Repo público**: `abrisolla/flecha-dashboard` (código) - **Repo privado**: `abrisolla/flecha-dashboard-backups` (backups) - **PAT `flecha-dashboard-cowork`**: usado pelo Claude pra push (escopo Contents:R/W em flecha-dashboard; precisa workflow scope pra editar Actions) - **PAT `flecha-backups-write`**: Action backup pra push em flecha-dashboard-backups (escopo Contents:R/W em flecha-dashboard-backups) - **Secrets necessários no flecha-dashboard repo**: - `SUPABASE_DB_PASSWORD` - `BACKUP_REPO_TOKEN` ### Netlify - **Site ID**: `096daca5-08a2-4bab-8411-a63d3b8c8a14` - **Project name**: `flecha-muvuka` - **Auto-deploy**: GitHub main → build automático - **Manual deploy**: drag-drop em https://app.netlify.com/drop ### Wix DNS - CNAME `flecha` → `flecha-muvuka.netlify.app` - SSL gerenciado por Netlify ### Google OAuth (planejado) - Project: `7-flechas-auth` (a criar) - Authorized redirect URIs: - `https://etajefcbqfimogamwups.supabase.co/auth/v1/callback` - `https://flecha.muvuka.org` ### Allowlist Auth (planejado) - `alezbrisolla@gmail.com` - `alexandre@muvuka.org` --- ## 22. Decision Log | Data | Decisão | Motivo | |---|---|---| | 2026-05-07 | Single-file HTML | Facilidade de upload e iteração via Cowork | | 2026-05-07 | Vanilla JS | MVP ~100KB, framework é overkill | | 2026-05-07 | localStorage | Sem necessidade de auth/sync no MVP | | 2026-05-07 | Sem ícones nem emojis | Preferência explícita do usuário | | 2026-05-07 | Figtree font | Mesma do Monday.com | | 2026-05-07 | Múltiplas listas de prioridades | Contextos diferentes (mês, sprint, ano) | | 2026-05-07 | Format per-row em OKR | Cada KPI tem unidade própria (R$, %, h, kg) | | 2026-05-07 | DependsOn como autocomplete | Evitar typos + relacionar tarefas/OKRs | | 2026-05-09 | Deploy em flecha.muvuka.org via Netlify | Padrão de subdomínio. DNS Wix CNAME | | 2026-05-09 | Handbook como aba interna do dashboard | Usuário sempre tem doc à mão + botão Baixar PDF | | 2026-05-09 | Drag-drop áreas no sidebar | HTML5 nativo, sem libs | | 2026-05-09 | Smart popover positioning | Flip pra cima quando overflow no rodapé | | 2026-05-09 | Calendário/Sprint sem subtítulos | Reduzir ruído visual | | 2026-05-09 | Sprint columns 4×2 chakra colors | Caber 8 colunas + estética 7 chakras | | 2026-05-09 | Aba Dev como fila | Transparência do backlog em localStorage | | 2026-05-09 | Convenção "próximos 3 passos" | Reduzir pingue-pongue | | 2026-05-09 | Calendário 52px | Caber 6 semanas em 720p (depois 75px v2.1) | | 2026-05-09 | Aba Tasks (Quick Tasks) | Tasks da semana agrupadas por dia | | 2026-05-09 | Phase 2: hierarquia Projeto sub-Programa | Layer adicional `projectsInProgram` | | 2026-05-09 | Dual-theme/dia no calendário | Diagonal split | | 2026-05-09 | Deploy safety integrado ao handbook | Pré-flight + smoke test obrigatórios | | 2026-05-09 | Auto-deploy GitHub→Netlify | Push triggera deploy | | 2026-05-11 | Tasks tab via dataDate | Era deadline; lookup quebrava pós Phase 2 | | 2026-05-11 | Keyboard-first Task Modal | Enter/Esc/Shift+Enter | | 2026-05-11 | Fontes 10.5px | Era 9px (pequeno demais), depois 13px (grande demais) | | 2026-05-11 | Cap largura tabelas Projetos | Não exceder container visível | | 2026-05-11 | Fix +Adicionar tarefa per-projeto | id non-unique → ref direto | | 2026-05-11 | addProject cria default projeto | Programa novo já vem com "Novo Projeto" | | 2026-05-11 | **POLÍTICA: real-time Supabase obrigatório** | Toda feature persistente sincroniza | | 2026-05-11 | **POLÍTICA: file > 240KB → Python+heredoc** | Edit tool trunca | | 2026-05-11 | Supabase integrado | supabase-js v2, project `etajefcbqfimogamwups` | | 2026-05-11 | Painel Atualizações Monday-style | Toolbar B/I/U/UL/OL/Checklist/Link/Attach/@ + real-time | | 2026-05-11 | Tasks defaultDate vai pra DATA | Click day-column → pré-fill Data (não Deadline) | | 2026-05-11 | Week label sempre com ano | Evitar confusão ao navegar entre anos | | 2026-05-11 | **POLÍTICA: paste normalizado** | Capture phase intercepta paste em contenteditable | | 2026-05-11 | Dev novo status "On Going" amarelo | 4ª opção | | 2026-05-11 | Default projeto name "Novo Projeto" | Era "Planilha de Controle" | | 2026-05-11 | Default column widths Innovation Latam | Baseline pra todos projetos | | 2026-05-11 | cell-clamp-1 em Elemento + Next Step | 1 linha + ellipsis, expande em focus | | 2026-05-11 | Centralização cols projetos | Status/Prioridade/Pessoa/Deadline/Data center | | 2026-05-11 | OKR deadline dd/mm/aa | Mask input | | 2026-05-11 | OKR/KPI centralização | Status/Deadline/Prog/Base/Target/Current/etc | | 2026-05-11 | "Progress" → "Prog" | Coluna mais compacta | | 2026-05-11 | Atualizações fonte 10.5px | Era 13px | | 2026-05-11 | Auto-linkify + target=_blank | URLs viram links automaticamente | | 2026-05-11 | Depende de inline autocomplete | 3-tier (mesmo projeto/programa/outros) | | 2026-05-11 | Tasks tab filtros multiselect | Área/Programa/Projeto/Status/Prioridade/Dependência | | 2026-05-11 | Tasks tab drag-drop entre colunas | Muda dataDate | | 2026-05-11 | Filtros UX polish | Hierarquia visual, search, keyboard, Vistas, tooltips | | 2026-05-11 | Cascading filters | Programa filtra por área; projeto por programa; auto-prune | | 2026-05-11 | Filtros default hide Done | Status vazio = tudo menos Done (ícone olho-riscado) | | 2026-05-11 | Vistas salvas (Save Views) | Pill "Vistas ▾" com save/load/rename/delete | | 2026-05-11 | Depende de multi-select Monday-style | Array em vez de string; picker com checkboxes; chips com X | | 2026-05-11 | Cards Tasks só título + clamp 2 linhas | Sem breadcrumb/status | | 2026-05-11 | Drag-drop reordenar dentro coluna Tasks | task.dayOrder | | 2026-05-11 | Campo Tipo + filtro Tipo | 5 defaults (Rua/Casa/Mobile/Desktop/Fup) + customizáveis | | 2026-05-11 | Filtro Título autocomplete | Substring match em task.name | | 2026-05-11 | Editar atualizações inline | Botão ✎ + mini-toolbar + Save/Cancel + updated_at | | 2026-05-11 | PWA setup (manifest + sw + icons) | Instalável iOS/Android/desktop | | 2026-05-11 | iOS-focused PWA | Apple-touch-icon 152/167/180; removeu maskables | | 2026-05-11 | Mobile responsive base | Hamburger drawer, brand "7 Flechas", tabs scroll horizontal | | 2026-05-11 | Botão "Baixar app" no sidebar | Modal com instruções iOS/Android/Desktop | | 2026-05-11 | AVAILABLE_VIEWS += 'APP' | Tag pra tasks de mobile/auth | | 2026-05-11 | 22 tasks APP backlog | Roadmap completo fases 1/2/3 + segurança | | 2026-05-11 | **CRITICAL FIX loadState destrutivo (v4.6.12-13)** | TIPO_DEFAULTS inline, safeMig, snapshots _lastGood/_prev, outer catch nunca DEFAULT_DATA | | 2026-05-11 | Backup completo Supabase (v4.7) | state_snapshots table + auto-snapshot debounce 30s + botão Restaurar | | 2026-05-11 | Cascade recovery loadState | parsed → _lastGood → _prev → Supabase → DEFAULT_DATA (com banner) | | 2026-05-11 | Postmortem documentado | Risk audit 14 pontos no HANDBOOK | | 2026-05-11 | Schema backup (v4.8) | pg_dump --schema-only + --data-only + --inserts combined | | 2026-05-11 | activity_log table | Audit trail (write a cada saveState — planejado) | | 2026-05-11 | Rollback Runbook | 7 cenários com passos detalhados | | 2026-05-11 | psql autonomous via psycopg2 | Pra DDL futuro sem precisar pedir SQL ao user | | 2026-05-11 | Área "Recovery" criada | 12 tasks recuperadas de task_updates órfãs | | 2026-05-11 | HANDBOOK v3.0 — reconstrução completa | Capturar TODO o histórico do chat |
v6.4.37