Pular para conteúdo

v1.6.0 - Stability, Cross-browser QA & Kanban UX

Objetivo

A v1.6.0 estabiliza o frontend web-first do SotuHire para uso local-first mais confiavel. O foco foi reduzir fragilidade visual, ampliar QA cross-browser, melhorar responsividade, tornar o Kanban mais util no dia a dia e deixar estados de IA/fallback mais claros.

Nenhuma regra de negocio foi movida para o frontend. Scores, validacoes, fallback e regras anti-invencao continuam no backend/core.

O que foi estabilizado

  • Status do tracker no frontend alinhados aos enums reais do backend.
  • Kanban com drag-and-drop visual e rollback quando a API falha.
  • Alternativa acessivel por select em cada card e na lista.
  • Badges e mensagens de IA para local, provider configurado, provider nao configurado, timeout, erro/limite, chave invalida e fallback local.
  • Painel Extensao Local com metadados de historico: tipo, origem, URL, data, ultima sincronizacao e quantidade de capturas.
  • Launcher Windows com diagnostico de porta ocupada, PID/processo e logs mais claros.

Telas testadas

Tela Rota Status
Home / Testada
Dashboard /dashboard Testada
Curriculo /resume Testada
Vaga /job Testada
Compatibilidade /match Testada
ATS /ats Testada
Tailor /tailor Testada
GitHub Analysis /github Testada
Candidaturas/Kanban /tracker Testada
Inteligencia /intelligence Testada
Fontes e Captura /sources Testada
Configuracoes /settings Testada
Privacidade /privacy Testada

Playwright v1.6.0 roda projetos:

chromium
firefox
webkit

O smoke cross-browser cobre abertura das telas principais, menu lateral, demos de analise, IA Settings, Fontes e Captura, Kanban e ausencia de textos publicos legados.

Responsividade testada

O teste responsivo roda uma matriz em Chromium:

Mobile: 390x844
Tablet: 768x1024
Desktop: 1440x1000

Rotas obrigatorias foram verificadas contra overflow horizontal de pagina. O Kanban usa rolagem interna no quadro em telas pequenas, evitando quebrar o layout global.

Melhorias no Kanban

  • Drag-and-drop visual entre colunas.
  • Patch real para /api/v1/tracker/jobs/{id}.
  • Atualizacao otimista no cache do React Query.
  • Rollback visual quando a API falha.
  • Mensagem de erro quando a alteracao e revertida.
  • Select de status em cada card para teclado/mobile.
  • Lista tabular com rolagem interna no mobile.
  • Cards exibem cargo, empresa, origem, status, score, ultima analise, notas e data.

Status usados pelo frontend estao alinhados com modules.tracker.status.JobStatus:

found
analyzed
good_fit
applied
message_sent
follow_up
interview
technical_test
offer
rejected
archived

Aliases antigos como ready_to_apply e tech_test continuam normalizados no client para dados legados/mockados, mas a UI envia os valores reais para a API.

Melhorias da extensao/local companion

O painel Extensao Local em Fontes e Captura agora mostra:

  • status do companion;
  • ultima sincronizacao;
  • quantidade de capturas;
  • capturas visiveis na sessao;
  • tipo (job, github_repo, profile, other);
  • origem;
  • URL;
  • data;
  • acoes para importar para Vaga, salvar em Candidaturas, enviar para GitHub Analysis ou ignorar localmente na sessao.

O backend expande a resposta segura de /api/v1/extension/captures com kind, source e captured_at. Nao houve alteracao no fluxo sensivel de authenticated browser, Chromium/CDP, login manual, crawler logado ou auto-apply.

Melhorias de IA/fallback

Estados padronizados:

IA desativada
Provider local
Provider configurado
Provider nao configurado
Analisando com IA
Fallback local
Limite/erro do provider
Timeout do provider
Chave invalida

As telas de Match, ATS, Tailor e GitHub tambem mostram:

  • por que a recomendacao apareceu;
  • evidencias usadas;
  • o que melhorar primeiro;
  • proximas acoes;
  • copiar sugestoes;
  • copiar plano de acao;
  • aviso para nao adicionar experiencia, habilidade, certificacao ou metrica que nao seja verdade.

Performance e build

O build Vite continua sem alertas criticos. Principais chunks esperados:

  • index-*.js: runtime principal do app;
  • api-mode-badge-*.js: shell/API mode;
  • generateCategoricalChart-*.js: Recharts para inteligencia;
  • rotas como sources-*, tracker-*, settings-*, match-*, ats-*, tailor-* e github-*.

Recharts permanece como maior dependencia visual, mas restrita as telas de metricas/graficos ja existentes. Nenhuma biblioteca pesada de drag-and-drop foi adicionada; o Kanban usa HTML5 DnD com fallback por select.

Acessibilidade basica

Checklist v1.6.0:

  • botoes principais tem texto claro;
  • menu mobile tem aria-label;
  • Kanban tem alternativa por select;
  • cards do Kanban recebem role=article, tabIndex e label descritivo;
  • inputs de IA, tracker e filtros permanecem com foco visivel;
  • modais usam largura maxima e ficam dentro da viewport;
  • mensagens de erro/fallback aparecem como texto visivel.

Limitacoes conhecidas

  • Drag-and-drop nativo funciona bem em desktop; em mobile a alternativa principal e o select de status.
  • O teste responsivo completo roda em Chromium; Firefox/WebKit cobrem os fluxos funcionais.
  • O painel "Ignorar" da extensao oculta a captura apenas na sessao da UI; nao altera o store local.
  • GitHub Pages continua estatico/demo-oriented.
  • Streamlit continua legado/dev e nao e iniciado pelo launcher web-first.