Skip to content

Releases: assertlab/bisolhador

Release v3.4.0: Governance & Risk Edition

19 Feb 21:10

Choose a tag to compare

☢️ v3.4.0 - Governance & Risk Edition ✅

  • Análise de Risco Avançada (Bus Factor): Motor matemático baseado em limite de 70% de esforço (Pareto) e novo componente visual BusFactorCard (Barra Horizontal Empilhada) para alertar sobre centralização de conhecimento.

Release v3.3.0: Data Science Edition (CSV Export)

19 Feb 20:15

Choose a tag to compare

📊 v3.3.0 - Data Science Edition ✅

  • Exportação Avançada (CSV): Motor nativo de exportação CSV (sem bibliotecas externas) com escape RFC 4180 e UTF-8 BOM para compatibilidade com Excel. Integrado no Dashboard (13 métricas do repositório) e na Tabela Comparativa do Benchmark (exporta colunas idênticas à tabela visual). Headers traduzidos dinamicamente via i18n (PT-BR/EN-US).

Release v3.2.0: Resilience & Stability

19 Feb 19:36

Choose a tag to compare

🛡️ v3.2.0 - Resilience & Stability ✅

  • Resiliência de Analytics (Exponential Backoff): Implementação de lógica de retentativas com Exponential Backoff no serviço de analytics do Supabase, garantindo que oscilações de rede não percam dados.
  • UX de Falhas Parciais (PartialDataAlert): Componente PartialDataAlert no GitHub Service para tratamento de falhas parciais da API (ex: Rate Limit de commits). O painel renderiza os dados disponíveis e exibe um banner amigável detalhando os dados ausentes.

Release v3.1.2: Dynamic Version Badge Fix

13 Feb 19:58

Choose a tag to compare

Dynamic Version Badge Fix

fix(ui): exibe versão dinâmica do package.json no header

Release v3.1.1: Refactoring Edition (Performance, Security & Clean Code)

13 Feb 19:50

Choose a tag to compare

Refactoring Edition — 5 Sprints de Maturidade Técnica

Refatoração completa da codebase baseada no Tech Debt Report v3.1.0, executada em 5 sprints incrementais.

🐛 Sprint 1 — Bug Fixes & Quick Wins

  • Fix useChartTheme: Adicionadas propriedades tooltipBg/tooltipText + useMemo no retorno do hook para corrigir tooltips sem cor em dark mode.
  • Safe localStorage: Criado wrapper src/utils/storage.js com try-catch para evitar exceções em navegação privada (Safari/Firefox).
  • Dead code removido: sanitizeForJson.js e export allSuccess não utilizado em useBenchmarkRepos.

⚡ Sprint 2 — Performance (useMemo em Charts)

  • Memoização de charts: chartData e chartOptions envolvidos em useMemo em Timeline.jsx, BenchmarkEvolutionChart.jsx, BenchmarkComparisonChart.jsx e CommitActivityChart.jsx.
  • Padronização: Todos os gráficos seguem o mesmo padrão de memoização para evitar re-criação do canvas Chart.js.

🔄 Sprint 3 — DRY (useTimeFilter Unificado)

  • useTimeFilter hook: Lógica de filtragem temporal (7d/30d/60d/90d/all) extraída para hook reutilizável, eliminando duplicação entre Timeline e Benchmark.
  • <TimeRangeFilter> component: Componente de UI unificado para seleção de período temporal.

🏗️ Sprint 4 — Architecture (Componentização)

  • Dashboard extraído: Dashboard movido de App.jsx para src/pages/Dashboard.jsx com snapshotAdapter.js separado.
  • Benchmark componentizado: 5 sub-componentes extraídos (BenchmarkSearchForm, BenchmarkRepoChips, BenchmarkHealthBars, BenchmarkBusFactorRisk, BenchmarkDetailTable).

🛡️ Sprint 5 — Security & Polish

  • Proteção XSS: dangerouslySetInnerHTML substituído por componente Trans do react-i18next.
  • i18n completo: Todas as strings hardcoded em português migradas para arquivos de locale.
  • Constantes extraídas: Magic numbers movidos para src/constants.js (API pagination, thresholds, PDF config).
  • Migração de contexto: docs/CONTEXT.md migrado para CLAUDE.md no padrão oficial Claude Code.

Release v3.1.0: Benchmark Edition

13 Feb 14:48

Choose a tag to compare

🎉 Major Feature: Benchmark Multi-Repo

  • Página Benchmark (/benchmark): Comparação simultânea de até 10 repositórios com seleção via chips coloridos e remoção individual.
  • Gráficos de Evolução Comparativa: Line charts com eixo temporal (chartjs-adapter-date-fns) mostrando evolução de Stars por repositório.
  • Gráficos de Comparação por Categoria: Bar charts agrupados por Popularidade (Stars, Forks), Velocidade (Lead Time, Code Churn) e Qualidade (Health Score, Divergência).
  • Tabela Comparativa: Tabela detalhada com Health Score, Lead Time, Divergência, Code Churn e classificação de risco Bus Factor.
  • Hook useBenchmarkRepos: Busca paralela de dados via TanStack Query com useQueries, parse de full_report e extração de histórico completo.

⏱️ Filtros Temporais Unificados (Time Range)

  • Benchmark Filters: Sistema de filtros (7d, 30d, 60d, 90d, todo histórico) acima dos gráficos do Benchmark. Default: 30d para normalizar visualização inicial de repos com datas de início diferentes.
  • Timeline 60d: Novo filtro de 60 dias adicionado à página Timeline, expandindo as opções existentes.
  • Filtragem por created_at: Dados filtrados via useMemo antes de serem passados aos componentes de chart, mantendo apenas registros dentro da janela temporal selecionada.

🌐 Internacionalização

  • Benchmark i18n: Todas as strings do Benchmark traduzidas em PT-BR e EN-US (título, subtítulo, filtros, categorias, tabela, estados vazios/erro).
  • Filtro 60d: Labels "60 dias" (PT) / "60 days" (EN) adicionados em timeline.filters e benchmark.filters.

🎨 UI/UX

  • Segmented Control Filters: Botões de período com estilo consistente dark mode (mesmo padrão da Timeline).
  • Repo Chips: Tags de seleção com cor identificadora, nome e botão de remoção.
  • Lazy Loading: Charts do Benchmark carregados via React.lazy + Suspense.

Release v3.0.2: Security Hotfix (Critical updates for PDF generation), Atualização de Documentação e Roadmap

13 Feb 13:11

Choose a tag to compare

🔒 Security Hotfix

  • Dependency Updates: Atualização crítica do html2pdf.js (v0.14.0) e jspdf para mitigar vulnerabilidades de XSS e injeção detectadas em CVEs anteriores.
  • Security Audit: Varredura completa de dependências para garantir segurança da cadeia de suprimentos.

✨ Enhancements

  • Filtros Temporais no Timeline: Implementação de controles de período (7d, 30d, 90d, todo histórico) na página Time Machine, permitindo análise focada de intervalos específicos.
  • UX Improvements: Interface segmentada com botões de filtro estilizados e suporte completo a dark mode.

Release v3.0.0: Time Machine & Analytics History

13 Feb 12:51

Choose a tag to compare

🎉 Major Feature: Time Machine (Histórico de Evolução)

  • Visualização Temporal de Métricas: Nova página /timeline/:owner/:repo para visualizar a evolução histórica de repositórios através de gráficos de linha interativos.
  • Gráficos de Evolução: Gráficos Chart.js mostrando evolução de Stars, Forks e Watchers ao longo do tempo com dados extraídos de snapshots históricos.
  • Supabase RPC: Nova função get_repo_history(p_repo_name) para buscar histórico completo de análises ordenadas cronologicamente.
  • UI Enhancements: Botão "📈 Ver Evolução" adicionado ao RepoInfoCard para acesso direto à timeline do repositório.
  • Cards de Resumo: Visualização de primeira análise, última análise e crescimento total de stars.
  • Internacionalização Completa: Todas as strings da nova feature traduzidas em PT-BR e EN-US.

🛠️ Backend

  • Nova RPC: get_repo_history com segurança SECURITY DEFINER e SET search_path = public.
  • Serviço Analytics: Método getRepoHistory(repoName) adicionado para consumir a nova RPC.

🎨 UX/UI

  • Nova Rota: /timeline/:owner/:repo integrada ao React Router.
  • Estado de Loading/Error: Tratamento robusto de estados de carregamento e erro com feedback visual claro.
  • Dark Mode Support: Tema escuro totalmente suportado nos novos gráficos através do hook useChartTheme.
  • Botão de Navegação: Botão "Voltar ao Dashboard" para navegação intuitiva.

📊 Data Visualization

  • Line Charts: Gráficos de linha com preenchimento gradiente e tensão suavizada (0.4).
  • Tooltips Interativos: Tooltips detalhados mostrando valores de múltiplas métricas por data.
  • Cores Semânticas: Dourado (#FFD700) para Stars, Azul (#3B82F6) para Forks, Verde (#10B981) para Watchers.

Release v2.8.3: UI/UX Polish & Bugfixes

20 Jan 21:16

Choose a tag to compare

Fix (Navigation): Header State Management

  • Global Modal State: Refactored settings modal state to App.jsx level, ensuring Header buttons (Settings & Language) work consistently across all routes (Dashboard & Ranking).
  • Cross-Route Functionality: Fixed issue where configuration and language buttons were non-responsive in Ranking page due to isolated state management.

Fix (i18n): Complete Internationalization

  • Missing Translations: Added complete translations for Help Modal, Settings Modal, Ranking table, and Navigation links.
  • Header Navigation: Implemented i18n for "Buscar/Search" and "Ranking" navigation links.
  • Modal Content: Fully translated Help Modal (about, token setup, usage steps) and Settings Modal (title, description, labels, buttons).
  • Ranking Page: Translated all table headers, loading/error messages, and empty state content.

UX: Universal Access to Settings

  • Consistent Experience: Users can now access settings and change language from any page in the application.
  • State Persistence: Modal state properly managed globally to prevent navigation issues.

Release v2.8.2: Global Timezone, Auto-Save & Documentation Update

19 Dec 11:25

Choose a tag to compare

Feat (i18n): Timezone Detection

  • Automatic Timezone Detection: Implemented automatic timezone detection using Intl.DateTimeFormat().resolvedOptions().timeZone. Date searches now respect the user's local timezone (e.g., Japan, Lisbon) instead of being fixed to 'America/Recife'.

Backend: RPC Update

  • Dynamic Timezone Parameter: Updated buscar_snapshot_por_data RPC to accept dynamic p_timezone parameter.