Skip to content

Releases: Soturine/SotuHire

SotuHire v1.9.7 — AI Evaluation, Tracing, Human Feedback & Outcome Learning

Choose a tag to compare

@Soturine Soturine released this 14 Jul 21:18

SotuHire v1.9.7 — AI Evaluation, Tracing, Human Feedback & Outcome Learning

A v1.9.7 torna a camada de IA mensurável e auditável sem transformar métricas em decisões automáticas. A release adiciona 16 tarefas registradas, AiRunStore 2.0, golden datasets multiárea, benchmark reprodutível, feedback humano, Outcome Learning e o painel /ai-quality.

Destaques

  • traces seguros com provider/modelo solicitado e usado, prompt, fallback, schema, latência, tokens e custo quando disponíveis;
  • retenção configurável, sem inputs/outputs completos por padrão;
  • 12 fixtures fictícias cobrindo 12 domínios e 17 categorias adversariais;
  • métricas de estrutura, extração, evidência, calibração, utilidade, operação e dedupe;
  • comparação de providers com regra explícita de tamanho de amostra;
  • feedback criável/removível e extensão 0.9.3 com payload mínimo;
  • outcomes manuais e associações exploratórias, sempre sem causalidade;
  • defesa em camadas contra prompt injection;
  • fallback local preservado.

Dados e migration

A migration 4 amplia ai_runs e cria ai_feedback, ai_benchmarks, ai_benchmark_results, outcome_events e outcome_metrics. A migração continua idempotente e deve seguir dry-run/backup/apply. Nenhuma base pessoal foi migrada automaticamente durante a preparação da release.

Segurança

Chaves antigas não foram usadas. Testes externos aceitam somente variáveis temporárias específicas e fixtures fictícias. Nenhuma chave deve entrar em Git, frontend, extensão empacotada, SQLite, logs, screenshots ou assets da release. Os fluxos de authenticated-browser permanecem inalterados.

Resultados de validação

O benchmark local executou 12 casos fictícios: schema validity 1,00, evidence precision 1,00 nos casos com referências mensuráveis, unsupported claim/hallucination rate 0,00, p50 1 ms e p95 26 ms. Required field completion foi 0,1667; o número é informativo e não bloqueante porque oito tarefas locais retornam defaults vazios seguros quando a extração específica não é suportada pela fixture.

O release-smoke real registrou 12 casos por provider:

Provider/modelo Schema Provider errors Unsupported claims Latência p50/p95 Tokens in/out Custo
local/local 1,00 0,00 0,00 1/21 ms não aplicável não aplicável
Gemini/gemini-2.5-flash 0,75 0,25 0,00476 7.374/12.998 ms 2.620/4.950 não estimado
OpenAI/gpt-4.1-mini 0,00 1,00 0,00 sem outputs válidos 6.302/6.726 ms não disponível não estimado

Gemini produziu structured output válido no teste opt-in e em 9/12 casos do smoke. OpenAI foi realmente chamada, mas a conta/credencial temporária retornou HTTP 429; os testes foram marcados como xfail explícito e nenhum baseline OpenAI foi criado. O baseline Gemini é indicativo e permanece abaixo do alvo de schema 0,98. Custo não foi inventado: ficou null porque o runtime não possui tabela confiável de preço.

Confidence calibration está implementada e coberta por testes determinísticos, mas não foi agregada no smoke externo porque as saídas comparáveis não forneceram labels de confiança suficientes. O teste A/B local de política cobre os cenários sem Perfil, Perfil confirmado, Perfil+RAG e itens não confirmados; o cenário D mantém taxa de promoção de item não confirmado em 0,00 na fixture controlada.

Assets capturados com dados fictícios incluem resumo, providers, prompts, benchmarks, feedback, outcomes, privacidade e feedback da extensão. A suíte Python final passou com 505 testes, 4 skips opt-in e cobertura total de 85% (17.286 statements); Ruff, Pyright, MkDocs strict, compileall, frontend unit/lint/typecheck/build, E2E padrão e cross-browser também passaram. O health check de uma base temporária migrada ao schema 4 ficou verde; a base pessoal permaneceu intencionalmente no schema 3 e não foi alterada automaticamente.

Limites e pendências

  • custo permanece ausente quando o provider não informa uso suficiente ou não há tabela confiável configurada;
  • qualidade por domínio precisa de amostras humanas reais antes de comparação conclusiva;
  • Ollama/LM Studio/OpenAI-compatible local permanece preparado como evolução futura, sem adapter novo nesta release;
  • LLM-as-a-judge não é requisito e não decide release.

SotuHire v1.9.6 — Data Reliability, Migrations, Backups, Snapshots & Documentation Integrity

Choose a tag to compare

@Soturine Soturine released this 13 Jul 03:55

SotuHire v1.9.6 — Data Reliability, Migrations, Backups, Snapshots & Documentation Integrity

Destaques

  • Repository abstraction e SQLite local versionado.
  • Migração segura dos stores JSON/JSONL, sempre preservando os originais.
  • Backup, export, restore e data health com validação de integridade.
  • Snapshots imutáveis de vagas, currículos, editais e análises.
  • Tracker ligado à vaga, ao currículo e às análises realmente usados.
  • Deduplicação, identidade canônica e proveniência reforçadas.
  • Perfil Universal e Career Context auditados por finalidade.
  • Capabilities manifest e matriz de integração verificável.
  • AiRunStore para rastreabilidade sem segredos.
  • Extensão com handshake, snapshots, JSON-LD e fila offline confiável.
  • Painel de Dados e Privacidade, README e documentação reorganizados.
  • CI com matriz Windows/Ubuntu, Python 3.11/3.12 e testes frontend unitários.

Segurança

  • Nenhuma chave exposta foi usada ou validada.
  • Testes reais de IA continuam opt-in por variável local temporária.
  • Nenhuma chave deve entrar em Git, frontend, site, extensão empacotada, log, screenshot, backup ou release.
  • Sem auto-apply, candidatura ou inscrição automática.
  • Sem pagamento, boleto ou envio automático de documentos.
  • Sem scraping autenticado novo.
  • Sem alteração no fluxo authenticated-browser.

Migração

Primeiro execute:

python scripts/migrate_local_data.py --dry-run

O dry-run detecta stores, contagens, duplicatas, rejeições e warnings sem criar banco ou backup. Para aplicar:

python scripts/migrate_local_data.py --apply
python scripts/migrate_local_data.py --verify

O apply cria backup completo antes da transação, registra migration_history, valida schema/FKs e não apaga JSON/JSONL. Registros legados sem texto original não recebem snapshot inventado.

Para voltar aos arquivos antigos, mantenha os stores preservados e configure a versão anterior para lê-los. Para restaurar um backup:

python scripts/restore_data.py data/backups/ARQUIVO.zip
python scripts/restore_data.py data/backups/ARQUIVO.zip --apply

A primeira chamada valida sem gravar. O painel web exige confirmação textual e cria backup preventivo antes do restore.

Validações

Resultados locais antes da tag, todos sem chave externa:

  • ruff check . e ruff format --check .: aprovados;
  • pyright: aprovado, sem erros;
  • pytest: 483 aprovados e 2 ignorados por opt-in de IA externa;
  • cobertura: 86% de 16.105 statements, sem threshold artificial;
  • extensão: 46 testes direcionados aprovados e ZIP 0.9.2 validado;
  • frontend: 6 testes Vitest/Testing Library/MSW aprovados;
  • Playwright: 55 aprovados em Chromium, Firefox e WebKit; 5 skips intencionais;
  • build, lint e typecheck do frontend: aprovados;
  • mkdocs build --strict, compileall, contratos de capabilities/matriz/prompts e verificação de schema: aprovados;
  • instalação limpa a partir de git archive HEAD: aprovada, incluindo pytest, extensão, docs, frontend e E2E Chromium;
  • CI remoto: aprovado na matriz Ubuntu/Windows, Python 3.11/3.12, frontend, extensão e cobertura;
  • CodeQL remoto: aprovado para Python e JavaScript/TypeScript;
  • dry-run local: 1 perfil, 112 memórias, 3 candidaturas e 2 projetos; 69 memórias duplicadas detectadas;
  • data health: saudável, com um warning de oportunidade sem referência de origem;
  • backup local: seis arquivos com checksums e schema 3; restore validado em dry-run sem sobrescrita.

Nenhuma migração --apply foi executada sobre os dados pessoais da instalação auditada. O apply foi validado apenas em fixtures temporárias.

Gaps corrigidos

  • health check agora é read-only inclusive para banco pré-schema;
  • restore valida checksum, formato, versão, schema, SQLite e FKs;
  • manifest registra schema real e máximo suportado;
  • snapshots bloqueiam update/delete e usam FKs RESTRICT;
  • timelines legadas de edital seguem o contrato de lista;
  • scripts de dados executam corretamente fora da raiz;
  • Tracker preserva eventos e vínculos de snapshots;
  • permissões de IA, fallback OpenAI e warnings do frontend foram corrigidos;
  • fila e fallback da extensão deixam de ser decorativos/silenciosos.
  • teste GitHub deixou de depender da existência de evidências pessoais na máquina e agora passa em checkout limpo.
  • notificações do frontend aguardam o navegador ficar ocioso e não atualizam o Sonner durante renderizações concorrentes.
  • lockfile frontend inclui dependências opcionais necessárias ao npm ci em Linux;
  • instalação limpa sem navegador fica no job Python, enquanto Chromium/E2E permanece obrigatório no job frontend.

Pendências

  • benchmark completo e baseline humano de IA ficam para o ciclo de avaliação;
  • Exam Fit e plano de estudo ainda são resultados transitórios;
  • candidatos da análise GitHub direta precisam de revisão integrada mais completa na tela;
  • stores legados continuam durante a adoção gradual do SQLite;
  • a migração dos dados pessoais deve ser acionada conscientemente pela pessoa usuária.

SotuHire v1.9.5 — Product QA, Demo Polish & Portfolio Launch

Choose a tag to compare

@Soturine Soturine released this 12 Jul 00:51

SotuHire v1.9.5 — Product QA, Demo Polish & Portfolio Launch

Destaques

  • Auditoria completa de integração e fechamento de gaps concretos.
  • Perfil Profissional Universal validado como núcleo preferencial.
  • Career Context Engine com source_ref e evidências exibidas.
  • Deduplicação consolidada para URL, DOI, ORCID, GitHub, Perfil, memória e edital.
  • Extensão v0.9.1 redesenhada, independente/integrada, com fila offline e Gemini/OpenAI próprios opcionais.
  • Catálogo oficial de modelos, seleção funcional e análise pública avançada de perfis/repositórios GitHub.
  • Provider, modelo, prompt e fallback rastreáveis nos fluxos principais.
  • Demo coerente com sete trajetórias e restauração segura.
  • Dashboard agregado, Settings deduplicado e mocks atuais.
  • README/docs/portfólio, screenshots, GIF e clean install revisados.

Segurança

  • Sem auto-apply ou inscrição automática.
  • Sem pagamento, boleto ou envio automático de documentos.
  • Sem scraping autenticado novo ou CAPTCHA bypass.
  • Chave do app somente no backend; chave própria da extensão isolada no service worker, em sessão por padrão ou cofre IndexedDB após consentimento.
  • Sem chave em content script, página GitHub, logs, screenshots, commits ou chrome.sync.
  • Testes externos somente por env opt-in.
  • Sem alteração em authenticated-browser.

Validações

  • ruff check .: passou; ruff format . --check: 420 arquivos formatados.
  • pytest -q: 428 passed, 2 skipped; skips externos por ausência das variáveis opt-in.
  • mkdocs build --strict: passou.
  • python -m compileall -q modules tests apps scripts: passou.
  • pyright: 0 erros, 0 warnings.
  • npm ci, lint, typecheck e build: passaram; auditoria npm sem vulnerabilidades.
  • Playwright cross-browser: 52 passed, 5 skipped em Chromium, Firefox e WebKit.
  • Smoke Chromium após correção de notificações: 18 passed, sem warning React no console.
  • Harness da extensão confirmou modelo selecionado nas chamadas Gemini/OpenAI e isolamento de segredo.
  • extensão v0.9.1 validada/empacotada; screenshots do popup e modal GitHub geradas.
  • clean install por git archive com venv nova e pip install -e .[dev]: passou integralmente.
  • scanner de segredos: nenhum valor encontrado.
  • hashes dos dois arquivos protegidos de authenticated-browser: inalterados.

Testes reais externos não foram executados: SOTUHIRE_TEST_GEMINI_API_KEY e
SOTUHIRE_TEST_OPENAI_API_KEY não estavam definidas. Os providers da extensão foram validados
com harness de rede controlado, sem chave real ou persistência de segredo no repositório.

Gaps corrigidos

  • teste Lattes dependente do segundo do relógio;
  • falsos positivos do scanner por chaves fake;
  • source_ref perdido no contexto;
  • identidades incompatíveis e memória repetida;
  • editais duplicados por tracking;
  • trace de IA incompleto/não exibido;
  • UI antiga da extensão, provider único e seleção de modelo sem catálogo oficial;
  • segredo standalone antigo sem isolamento de service worker ou política explícita de sessão/persistência;
  • componente Settings antigo e mock health desatualizado;
  • dependências ausentes do pyproject.toml apesar do comando documentado.
  • backend PEP 517 ausente em venv Python 3.12 realmente vazia;
  • PIP_NO_BUILD_ISOLATION externo interferindo no verificador e EOL CRLF em git archive Windows.

Pendências

  • PDF/HTML direto de Lattes e edital.
  • Plano de estudo avançado/calendário.
  • Notificações nativas do sistema.
  • Testes reais de IA dependem de chave opt-in local.

SotuHire v1.9.4 — AI Providers, Model Catalog, Extension Bridge & End-to-End QA

Choose a tag to compare

@Soturine Soturine released this 07 Jul 07:51

SotuHire v1.9.4 - AI Providers, Model Catalog, Extension Bridge & End-to-End QA

Destaques

  • Configurações de IA simplificadas com presets.
  • Catálogo de modelos por provider.
  • Botões para obter chave Gemini/OpenAI.
  • OpenAI deixa de ser apenas planejado e passa a ter provider backend local.
  • Gemini/OpenAI usam o modelo selecionado no backend.
  • Editais/Concursos com IA validados com provider/fallback.
  • Extensão passa a capturar edital/concurso como fluxo próprio.
  • Extensão conversa melhor com o site e com contexto seguro do Perfil Universal.
  • Área de Extensão Local no site permite importar captura como edital.
  • QA ponta a ponta documentado.

Segurança

  • API keys continuam apenas no backend local/env local.
  • Sem API key no frontend, extensão, localStorage ou sessionStorage.
  • Sem alteração no /authenticated-browser/collect.
  • Testes reais de IA são opt-in e não rodam sem env var explícita.
  • Sem inscrição automática, candidatura automática, pagamento, boleto ou envio automático de documento.
  • Sem login em banca/órgão, crawler logado, cookies, tokens, sessão, headers ou CAPTCHA bypass.

Validações

  • ruff check . passou.
  • ruff format --check . passou após formatação mecânica de arquivos Python.
  • pytest passou com 413 passed, 2 skipped; os dois skips são testes externos opt-in sem SOTUHIRE_TEST_GEMINI_API_KEY e SOTUHIRE_TEST_OPENAI_API_KEY.
  • mkdocs build --strict passou.
  • python -m compileall modules tests apps scripts passou.
  • pyright passou com 0 errors.
  • node --check docs/javascripts/sotuhire-demo.js passou.
  • cd apps/web && npm ci passou após encerrar um Vite local antigo que travava lightningcss.
  • cd apps/web && npm run build passou.
  • cd apps/web && npm run lint passou.
  • cd apps/web && npm run typecheck passou.
  • cd apps/web && npm run test:e2e passou com 49 passed, 5 skipped em Chromium/Firefox/WebKit.
  • python scripts/package_extension.py passou e gerou dist/sotuhire-extension-v0.9.0.zip.
  • python scripts/capture_web_walkthrough.py passou e atualizou screenshots/GIF.

Testes reais com provider externo não foram executados porque as variáveis locais SOTUHIRE_TEST_GEMINI_API_KEY e SOTUHIRE_TEST_OPENAI_API_KEY não estavam definidas.

Pendências conhecidas

  • Atualização automática contínua de modelos pode evoluir.
  • Publicação da extensão em store pode ser versão futura.
  • Notificações nativas do sistema operacional podem ficar para depois.
  • QA com chaves reais depende de env local da pessoa usuária.
  • Upload direto de PDF/HTML de edital continua fora do escopo.

SotuHire v1.9.3 — Public Exams & Edital Intelligence Foundation

Choose a tag to compare

@Soturine Soturine released this 03 Jul 16:26

SotuHire v1.9.3 — Public Exams & Edital Intelligence Foundation

Destaques

  • Módulo modules/public_exams criado para editais e concursos.
  • Importação de edital por texto colado.
  • Extração local de órgão, banca, cargo, datas, taxa, salário, requisitos, etapas e conteúdo programático.
  • IA/Gemini opcional para estruturar edital como rascunho revisável.
  • Comparação inicial com o Perfil Profissional Universal.
  • Evidências acadêmicas/Lattes passam a ajudar na análise de requisitos.
  • Exam Fit Score inicial.
  • Checklist de requisitos/documentos.
  • Plano de estudo inicial simples.
  • Tela inicial de Editais/Concursos no frontend.
  • Fundação de Radar/Tracker para oportunidades públicas.
  • Documentação atualizada.

Segurança

  • Sem inscrição automática.
  • Sem pagamento automático.
  • Sem envio automático de documentos.
  • Sem login em banca/órgão.
  • Sem scraping autenticado.
  • Sem CAPTCHA bypass.
  • Sem API key do app no frontend.
  • Sem alteração no /authenticated-browser/collect.
  • O edital oficial sempre prevalece.

Validações

  • git fetch origin --tags --force — passou.
  • pytest tests/test_public_exams.py — passou: 8 testes.
  • ruff check . — passou.
  • ruff format --check . — passou.
  • pytest — passou: 405 testes, 1 warning de depreciação do Starlette/TestClient.
  • mkdocs build --strict — passou; exibiu aviso informativo do Material for MkDocs sobre MkDocs 2.0.
  • python -m compileall modules tests apps scripts — passou.
  • pyright — passou: 0 erros.
  • node --check docs/javascripts/sotuhire-demo.js — passou.
  • cd apps/web && npm ci — primeira tentativa falhou com EPERM porque um processo Vite mantinha lightningcss aberto; após parar o dev server do workspace, passou com 0 vulnerabilidades.
  • cd apps/web && npm run build — passou.
  • cd apps/web && npm run lint — passou.
  • cd apps/web && npm run typecheck — passou.
  • cd apps/web && npm run test:e2e — passou: 49 testes, 5 skipped esperados.
  • cd apps/web && npm run test:e2e:cross-browser — passou: 49 testes, 5 skipped esperados.
  • python scripts/capture_web_walkthrough.py — passou; atualizou GIF e screenshots, incluindo sotuhire-web-public-exams.png.
  • python scripts/package_extension.py — passou; gerou dist/sotuhire-extension-v0.9.0.zip.

Pendências conhecidas

  • Upload direto de PDF/HTML do edital.
  • Parser avançado por banca.
  • Histórico de chamadas/convocações.
  • Radar público automático seguro.
  • Plano de estudo avançado.
  • Comparação edital antigo vs novo.

SotuHire v1.9.2 — Lattes, Academic Profile & AI-Assisted Evidence Extraction

Choose a tag to compare

@Soturine Soturine released this 30 Jun 03:33

SotuHire v1.9.2 — Lattes, Academic Profile & AI-Assisted Evidence Extraction

Destaques

  • Importação assistida de Currículo Lattes por texto colado.
  • Parser local para formação, pesquisa, publicações, extensão, docência, eventos, prêmios e produção técnica/artística.
  • Extração assistida por IA/Gemini, quando configurada, sempre como rascunho revisável.
  • Evidências confirmadas entram no Perfil Profissional Universal.
  • Career Context Engine passa a considerar evidências acadêmicas.
  • Match, ATS e Tailor passam a diferenciar evidências profissionais e acadêmicas.
  • GitHub/Portfólio pode gerar candidatos acadêmicos revisáveis.
  • Fundação documental para Editais/Concursos atualizada.
  • README e docs principais revisados com português, acentos e gramática melhores.

Segurança

  • Sem login no Lattes.
  • Sem scraping autenticado.
  • Sem crawler logado.
  • Sem inscrição automática em concursos/editais.
  • Sem auto-apply.
  • Sem API key do app no frontend.
  • Sem alteração no /authenticated-browser/collect.
  • Nada extraído do Lattes é salvo no Perfil sem revisão humana.

Validações

  • python scripts/capture_web_walkthrough.py — passou; screenshots e GIF web atualizados.
  • ruff check . — passou.
  • ruff format --check . — passou.
  • pytest — passou com 397 passed, 1 warning.
  • mkdocs build --strict — passou.
  • python -m compileall modules tests apps scripts — passou.
  • pyright — passou com 0 errors, 0 warnings.
  • node --check docs/javascripts/sotuhire-demo.js — passou.
  • cd apps/web && npm ci — passou após encerrar um servidor Vite antigo que mantinha lightningcss aberto no Windows.
  • cd apps/web && npm run build — passou.
  • cd apps/web && npm run lint — passou.
  • cd apps/web && npm run typecheck — passou.
  • cd apps/web && npm run test:e2e — passou com 46 passed, 5 skipped.
  • cd apps/web && npm run test:e2e:cross-browser — passou com 46 passed, 5 skipped.
  • python scripts/package_extension.py — passou; gerou dist/sotuhire-extension-v0.9.0.zip.

Pendências conhecidas

  • Upload direto de PDF/HTML do Lattes pode ficar para versão futura.
  • Parser real de edital/concurso pode ficar para v1.9.3.
  • Plano de estudo por edital pode ficar para versão futura.
  • Matching adaptativo por domínio pode ser aprofundado.

SotuHire v1.9.1 — Release Integrity, README Overhaul, Context Unification & Extension Profile Bridge

Choose a tag to compare

@Soturine Soturine released this 30 Jun 02:30

SotuHire v1.9.1 - Release Integrity, README Overhaul, Context Unification & Extension Profile Bridge

Destaques

  • Integridade da release/tag v1.9.0 revisada.
  • Lockfile do frontend validado com npm ci.
  • README reestruturado como pagina profissional do projeto.
  • Screenshots/GIF do frontend web moderno atualizados.
  • Career Context Engine criado para unificar Perfil Universal, RAG local e sinais do produto.
  • Integrações iniciais do contexto em Radar, Wishlist, Match, ATS, Tailor, Kanban/Tracker, Fontes,
    Notificacoes, Extensao e GitHub/Portfolio.
  • Extension Profile Bridge: capturas e projetos da extensao podem gerar evidencias candidatas
    revisaveis para o Perfil Profissional Universal.
  • Roadmap e docs atualizados.

Segurança

  • Sem auto-apply.
  • Sem candidatura automatica.
  • Sem bypass de CAPTCHA.
  • Sem captura de cookies/tokens/sessao/headers.
  • Sem API key do app no frontend.
  • Sem alteracao no fluxo /authenticated-browser/collect.
  • Evidencias vindas da extensao exigem revisao humana antes de entrar no Perfil.

Documentacao

  • README deixou de ser changelog.
  • Links principais reorganizados.
  • Preview visual atualizado.
  • Docs de contexto e ponte da extensao adicionados.
  • README da extensao documenta app v1.9.1 compativel com extensao v0.9.0.

Validacoes

Executadas nesta preparacao da v1.9.1:

  • git status --short, git branch --show-current, git fetch origin --tags --force,
    git log --oneline -25, git tag --list, git ls-remote --tags, git rev-parse - executados
    na auditoria/retomada.
  • python scripts/capture_web_walkthrough.py - passou e gerou screenshots/GIF web, incluindo
    sotuhire-web-extension-profile-candidates.png.
  • ruff check . - passou.
  • ruff format --check . - passou depois de formatar apps/api/services/extension.py e
    tests/test_api_extension_bridge.py.
  • pytest - passou: 385 passed, 1 warning.
  • mkdocs build --strict - passou, com aviso informativo do Material for MkDocs sobre MkDocs 2.0.
  • python -m compileall modules tests apps scripts - passou.
  • pyright - passou: 0 errors, 0 warnings.
  • node --check docs/javascripts/sotuhire-demo.js - passou.
  • npm ci em apps/web - primeira tentativa falhou por lock do Windows no binario nativo
    lightningcss; processos locais npm run dev/vite dev do workspace foram encerrados e a nova
    execucao passou: 0 vulnerabilidades.
  • npm run build em apps/web - passou.
  • npm run lint em apps/web - passou.
  • npm run typecheck em apps/web - passou.
  • npm run test:e2e em apps/web - passou: 43 passed, 5 skipped; Vite registrou console error de
    Toast durante a suite, sem falhar os testes.
  • npm run test:e2e:cross-browser em apps/web - passou: 43 passed, 5 skipped; Vite registrou
    erros de importacao de modulo apos a conclusao dos testes, sem falha da suite.
  • python scripts/package_extension.py - passou e gerou dist/sotuhire-extension-v0.9.0.zip.

Pendencias conhecidas

  • Matching adaptativo por dominio pode ser aprofundado.
  • Upload direto de arquivos para Perfil pode ficar para versao futura.
  • Integracao avancada de GitHub/Portfolio com Perfil pode evoluir.
  • Notificacoes nativas do sistema operacional podem ficar para versao futura.
  • Investigar logs de console do Vite/Playwright que aparecem apos suites E2E verdes.

SotuHire v1.9.0 — Scheduled Radar & Notifications

Choose a tag to compare

@Soturine Soturine released this 29 Jun 21:06

SotuHire v1.9.0 - Scheduled Radar & Notifications

Destaques

  • Radar agendado local.
  • Agendamentos por wishlist, fonte e palavras-chave.
  • Execucao manual run now.
  • Quiet hours.
  • Cooldown contra alertas repetidos.
  • Historico de execucoes agendadas.
  • Central de notificacoes local/in-app.
  • Integracao com Perfil Profissional Universal.
  • Verificacao local de npm ci para manter package-lock.json sincronizado.
  • Captura assistida autenticada tratada como lembrete revisavel, sem coleta de sessao.

Seguranca

  • Sem auto-apply.
  • Sem clique automatico em candidatura.
  • Sem envio automatico de curriculo.
  • Sem automacao de login.
  • Sem bypass de CAPTCHA.
  • Sem captura de cookies, tokens, sessao, headers ou storage de terceiros.
  • Sem API key no frontend.
  • Resultados e notificacoes exigem revisao humana antes de virar candidatura.

Validacoes

Executadas em 2026-06-29:

  • ruff check . - passou.
  • ruff format --check . - passou apos formatacao pontual.
  • pytest - passou na segunda rodada final: 372 passed, 1 warning.
  • mkdocs build --strict - passou.
  • python -m compileall modules tests apps scripts - passou.
  • pyright - passou: 0 errors, 0 warnings.
  • node --check docs/javascripts/sotuhire-demo.js - passou.
  • cd apps/web && npm ci - passou.
  • cd apps/web && npm run build - passou.
  • cd apps/web && npm run lint - passou.
  • cd apps/web && npm run typecheck - passou.
  • cd apps/web && npm run test:e2e - passou: 43 passed, 5 skipped.
  • cd apps/web && npm run test:e2e:cross-browser - passou: 43 passed, 5 skipped.
  • python scripts/package_extension.py - passou e gerou dist/sotuhire-extension-v0.9.0.zip.

Pendencias conhecidas

  • Notificacoes nativas do sistema operacional podem ficar para versao futura.
  • Matching adaptativo por dominio pode ser aprofundado depois.
  • Upload direto de arquivos para Perfil pode ficar para versao futura.
  • Mais sinais no detalhe do Kanban podem ficar para versao futura.

SotuHire v1.8.2 - Perfil Profissional Universal, Inteligencia Multiarea & Captura Assistida Segura

Choose a tag to compare

@Soturine Soturine released this 29 Jun 16:51

SotuHire v1.8.2 - Perfil Profissional Universal, Inteligencia Multiarea & Captura Assistida Segura

Destaques

  • Perfil Profissional Universal persistido localmente.
  • Nova rota/tela /profile.
  • Nova API /api/v1/profile.
  • Importacao assistida de texto para itens de perfil.
  • Itens com origem, evidencia, confianca e revisao do usuario.
  • Deduplicacao simples e segura.
  • Uso do perfil no Radar/Wishlist.
  • Integracao inicial do perfil com Match, ATS, Tailor, Fontes e Captura.
  • Suporte multiarea real: saude, direito, engenharia, educacao, artes, pesquisa, industria,
    turismo, laboratorio, tecnico, academico e outras areas.
  • Preparacao para curriculo comum, curriculo Lattes, portfolio, certificacoes e registros
    profissionais.
  • Captura Assistida Segura em Browser Autenticado com login manual e revisao humana.

Perfil Profissional Universal

O SotuHire agora possui um perfil central local-first e baseado em evidencias. O perfil evita
duplicacao de contexto entre abas e permite representar formacoes, cursos, projetos, experiencias,
registros, certificacoes, portfolios e preferencias sem assumir uma area profissional especifica.

Inteligencia Multiarea

O sistema nao assume que a pessoa e de TI/dev, tem GitHub, trabalha remoto, possui CLT, graduacao,
registro profissional ou experiencia formal. A extracao local e o prompt profile_items_extractor_v1
foram desenhados para trajetorias academicas, tecnicas, cientificas, artisticas, profissionais,
formativas e de transicao de carreira.

Captura Assistida Segura

  • Login e manual.
  • Captura e iniciada pelo usuario.
  • Captura salva texto visivel ou selecionado para revisao.
  • Nao burla CAPTCHA.
  • Nao faz auto-apply.
  • Nao captura cookie, token, sessao ou headers autenticados.
  • Usuario revisa antes de salvar ou analisar.

Seguranca

  • IA sugere, backend valida, usuario revisa.
  • Itens extraidos por IA nunca entram como confirmados automaticamente.
  • Registros profissionais so sao tratados como fato quando ha evidencia.
  • API key permanece backend-side e nunca retorna ao frontend.
  • O frontend nao salva chave em localStorage ou sessionStorage.

Validacoes

Resultados finais executados na release:

ruff check .                                               ok
ruff format --check .                                      ok
pytest                                                     ok - 366 passed, 1 warning
mkdocs build --strict                                      ok
python -m compileall modules tests apps scripts            ok
pyright                                                    ok - 0 errors, 0 warnings
node --check docs/javascripts/sotuhire-demo.js             ok
cd apps/web && npm install                                 ok - up to date, 0 vulnerabilities
cd apps/web && npm run build                               ok
cd apps/web && npm run lint                                ok
cd apps/web && npm run typecheck                           ok
cd apps/web && npm run test:e2e                            ok - 43 passed, 5 skipped
python scripts/package_extension.py                        ok - dist/sotuhire-extension-v0.9.0.zip
OpenAPI profile/radar/sources check                        ok

Durante a auditoria final, foram corrigidos pontos pequenos encontrados pelas validacoes:

  • ordenacao de imports apontada pelo Ruff;
  • tipagem de payload apontada pelo Pyright;
  • expectativa de versao visual no teste do README;
  • seletor/estrutura da tela Perfil no Playwright;
  • mojibake nas release notes antes da publicacao.

Pendencias conhecidas

  • v1.9.0 implementara Scheduled Radar & Notifications.
  • Matching adaptativo por dominio pode ser aprofundado em versoes futuras.
  • Upload direto de arquivos para o Perfil pode ficar para versao futura.
  • Mais sinais do Perfil dentro do detalhe de candidatura/Kanban ficam para um proximo ciclo.

SotuHire v1.8.1 - AI Wishlist, Radar Stability & Profile Context Prep

Choose a tag to compare

@Soturine Soturine released this 29 Jun 15:29

SotuHire v1.8.1 - AI Wishlist, Radar Stability & Profile Context Prep

Destaques

  • Wishlist com IA/local no Radar.
  • Novo endpoint POST /api/v1/radar/wishlists/draft.
  • Novo prompt job_wishlist_builder_v1.
  • Preparação do ProfileContext e ProfileContextOrchestrator.
  • Fallback local multiárea para pedidos de vagas em diferentes áreas profissionais.
  • Revisão obrigatória antes de salvar wishlist.
  • Controles de IA por feature: currículo, vaga, importações e Radar.
  • Melhorias de UX/estabilidade no Radar.
  • CI expandido para backend, frontend e extensão.
  • Docs, roadmap e preview visual atualizados.

Multiárea

Esta versão reforça que o SotuHire não é um produto apenas para TI/dev.

O sistema passa a preparar base para atender trajetórias como:

  • estudantes;
  • técnicos;
  • tecnólogos;
  • engenheiros;
  • profissionais da saúde;
  • direito;
  • educação;
  • artes/design;
  • pesquisa;
  • laboratório;
  • turismo;
  • profissionais regulamentados;
  • pessoas com Lattes, portfólio, certificações e experiências não formais.

Segurança

  • Sem auto-apply.
  • Sem crawler logado novo.
  • Sem automação de login.
  • Sem bypass de CAPTCHA.
  • Sem captura de cookies, tokens ou sessão.
  • Sem API key no frontend.
  • Wishlist gerada sempre exige revisão humana.

Validações

  • ruff check .: passou.
  • ruff format --check .: passou.
  • pytest: passou, 358 testes.
  • mkdocs build --strict: passou.
  • python -m compileall modules tests apps scripts: passou.
  • pyright: passou.
  • node --check docs/javascripts/sotuhire-demo.js: passou.
  • npm install: passou, sem vulnerabilidades reportadas.
  • npm run build: passou.
  • npm run lint: passou.
  • npm run typecheck: passou.
  • npm run test:e2e: passou após correção de timeout no teste de mojibake em Firefox.
  • python scripts/package_extension.py: executado na preparação da release.

Pendências conhecidas

  • v1.8.2 implementará o Perfil Profissional Universal completo.
  • Conectar mais sinais reais de perfil/currículo persistido à wishlist.
  • Avaliar o warning React/toast observado no servidor Vite durante E2E, sem impacto nos testes finais.