Releases: Soturine/SotuHire
Release list
SotuHire v1.9.7 — AI Evaluation, Tracing, Human Feedback & Outcome Learning
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
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.
AiRunStorepara 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-runO 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 --verifyO 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 --applyA 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 .eruff 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 ciem 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
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_refe 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 archivecom venv nova epip 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_refperdido 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.tomlapesar do comando documentado. - backend PEP 517 ausente em venv Python 3.12 realmente vazia;
PIP_NO_BUILD_ISOLATIONexterno interferindo no verificador e EOL CRLF emgit archiveWindows.
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
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,
localStorageousessionStorage. - 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.pytestpassou com413 passed, 2 skipped; os dois skips são testes externos opt-in semSOTUHIRE_TEST_GEMINI_API_KEYeSOTUHIRE_TEST_OPENAI_API_KEY.mkdocs build --strictpassou.python -m compileall modules tests apps scriptspassou.pyrightpassou com0 errors.node --check docs/javascripts/sotuhire-demo.jspassou.cd apps/web && npm cipassou após encerrar um Vite local antigo que travavalightningcss.cd apps/web && npm run buildpassou.cd apps/web && npm run lintpassou.cd apps/web && npm run typecheckpassou.cd apps/web && npm run test:e2epassou com49 passed, 5 skippedem Chromium/Firefox/WebKit.python scripts/package_extension.pypassou e geroudist/sotuhire-extension-v0.9.0.zip.python scripts/capture_web_walkthrough.pypassou 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
SotuHire v1.9.3 — Public Exams & Edital Intelligence Foundation
Destaques
- Módulo
modules/public_examscriado 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 comEPERMporque um processo Vite mantinhalightningcssaberto; 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, incluindosotuhire-web-public-exams.png.python scripts/package_extension.py— passou; geroudist/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
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 com397 passed, 1 warning.mkdocs build --strict— passou.python -m compileall modules tests apps scripts— passou.pyright— passou com0 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 mantinhalightningcssaberto 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 com46 passed, 5 skipped.cd apps/web && npm run test:e2e:cross-browser— passou com46 passed, 5 skipped.python scripts/package_extension.py— passou; geroudist/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
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 formatarapps/api/services/extension.pye
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 ciemapps/web- primeira tentativa falhou por lock do Windows no binario nativo
lightningcss; processos locaisnpm run dev/vite devdo workspace foram encerrados e a nova
execucao passou: 0 vulnerabilidades.npm run buildemapps/web- passou.npm run lintemapps/web- passou.npm run typecheckemapps/web- passou.npm run test:e2eemapps/web- passou: 43 passed, 5 skipped; Vite registrou console error de
Toast durante a suite, sem falhar os testes.npm run test:e2e:cross-browseremapps/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 geroudist/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
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 cipara manterpackage-lock.jsonsincronizado. - 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 geroudist/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
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
localStorageousessionStorage.
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 okDurante 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
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
ProfileContexteProfileContextOrchestrator. - 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.