Skip to content

Prescripta v0.8.7

Choose a tag to compare

@Soturine Soturine released this 29 Jul 09:55
· 79 commits to main since this release

Prescripta v0.8.7

Resumo

A v0.8.7 fecha lacunas técnicas comprovadas após a v0.8.6: dose verdadeiramente dimensional,
autorização por relação clínica explícita, perfis profissionais por capacidades, proteção contra
DNS rebinding, atualização controlada da cadeia de dependências e uma nova interface responsiva com
cobertura frontend/browser material.

Prescripta permanece uma demonstração educacional 0.x. Não é dispositivo médico, não possui
validação clínica/regulatória/institucional e deve usar somente dados fictícios.

Segurança clínica e autorização

  • concentração × volume, massa, peso, superfície, infusão, taxa, intervalo, duração e PRN usam
    dimensões canônicas, precisão decimal e abstention quando a conversão não é provada;
  • limites diários, por administração, procedimento, taxa e cumulativos preservam unidade e fonte;
  • a mesma instituição deixa de ser autorização implícita: lista e objeto exigem relação, purpose e
    capability; break-glass tem duração, motivo, idempotência, encerramento e auditoria;
  • override não altera o achado: só o autor solicita, crítico/hard block não admite, e um segundo médico
    distinto precisa revisar conforme a policy;
  • segmentos psicológicos possuem capacidade separada.

Segurança de saída

OpenAI e Gemini usam destinos oficiais; Ollama é local-only. A policy normaliza URL, valida todos os
IPs, fixa a conexão no endereço aprovado, preserva Host/SNI, ignora proxies, bloqueia redirects e
limita tempo/tamanho. Credencial nunca é encaminhada fora do destino autorizado.

Frontend e qualidade

  • design system Tailwind 4, shell por capacidades, drawer responsivo, breadcrumbs, skip link, foco e
    reduced motion;
  • dashboards e workspaces próprios para os sete perfis demonstrativos;
  • checagem estruturada exibe decisão, cobertura, fontes, dados faltantes, auditoria, relatórios e IA
    apenas depois da persistência;
  • Vitest possui thresholds de statements/lines 75%, functions 70% e branches 65%; Playwright cobre
    sessão, perfis, autorização, dose, override/revisão, auditoria, falhas, responsividade, axe e visual;
  • assets correntes são recapturados por script e verificados por manifesto SHA-256.

Dependências

Backend, frontend e Actions foram atualizados em commits separados. Actions permanecem fixadas por
SHA completo. pydantic-core 2.47 foi corretamente deferido porque Pydantic 2.13.4 exige 2.46.4.
React Router 7.18.2 mantém risco temporário documentado para a superfície RSC não usada pela SPA; o
gate expira em 15/08/2026.

Upgrade e rollback

  1. Faça backup PostgreSQL e teste a restauração.
  2. Instale pelos locks com Python 3.12+ e Node 24+.
  3. Execute alembic upgrade head; o head esperado é b87a224c617e.
  4. Revise os grants/care teams/care episodes gerados pelo backfill; tenant não basta mais.
  5. Mantenha IA externa desligada até configurar allowlist, egress, secret manager e policy.
  6. Execute os gates de docs/testing/ci-and-release-gates.md.

Rollback exige restaurar backup compatível e reverter aplicação/migrations em ambiente isolado. Não
use alembic downgrade como substituto de recuperação de dados. O redesign frontend pode ser revertido
independentemente das regras do backend.

Evidências e limitações

Validação clínica por especialidade/farmácia/enfermagem/psicologia, pentest, LGPD institucional,
interoperabilidade oficial, usabilidade assistiva e enquadramento regulatório continuam externos.

Publicação