Skip to content

Changelog

The full changelog is in the repository root file:

CHANGELOG.md — repository root


Latest Versions

[0.56.0] — 2026-07-06

Multi-role user support (Issue #357) — usuários com múltiplos papéis simultâneos. user_roles join table com migration. AuthPrincipal.roles[] + primaryRole. JWT com roles[] array. requireRole() usa roles.some().

RBAC simplificado — VOLUNTEER removido. VOLUNTARIO_KIDS renomeado para VOLUNTARIO (#362).

[0.55.0] — 2026-07-05

CSP: nonces dinâmicos via Pages Middleware com HTMLRewriter. CSP sem 'unsafe-inline' em script-src.

Fix: ThemeProvider crash (Context.Provider faltando). React 18/19 version conflict resolvido.

[0.54.0] — 2026-07-05

EntityRepository pattern (I5-I9, ADR-0021) — EntityRepository<T> com D1EntityRepo + MemoryEntityRepo. 3 serviços migrados: classService, userService, roleService. Queries inline extraídas para módulos de serviço. RBAC scope integrado.

Temas IJCP — 3 fases: fonte Nunito + logo (F1), galeria de temas no Settings (F2), página /themes interativa (F3).

OnlineProxygetStore() retorna OnlineProxy quando backend está disponível. Endpoint proxy no Worker. Hot-swap na transição offline.

Cobertura de testes: 62 testes frontend (7 módulos). OnboardingPage com 15 testes (I4).

MUI removido@mui/material, @mui/icons-material, @emotion/* eliminados. as any eliminado do código de produção (22 instâncias).

[0.53.0] — 2026-07-01

PBKDF2 — hashing de senha com 600k iterações. timingSafeEqual para comparação em tempo constante. Login lockout com backoff exponencial (5s→30s) + lockout duro após 10 falhas.

OnlineProxy adapterStorageBackend que delega para SQLiteStore via API.

Rate limiting — fail-closed em erros D1. Rotas de evento rate-limited (5/min register, 3/min proof).

[0.52.0] — 2026-06-29

CSP hash-based (#324) — nonces substituídos por SHA-256 hashes. Removido unsafe-eval (SQLite WASM 3.53.0 não precisa).

Fix: Blank page no / (OPFS schema init). Login redirect em produção. ThemeToggle freeze (110% CPU). ChartContext + TVOverlay stale closures.

Segurança: CSPRNG para nonces (16 bytes). Validação de tema no backend.

[0.51.0] — 2026-06-27

Design System: MUI 7 removed (~400KB). ThemeProvider + dark mode toggle active. Self-hosted Inter + JetBrains Mono fonts.

Storage: SWM complete — Dexie, DexieAdapter, repositories, transactionalWriter removed. SQLite WASM sole storage backend. test-helpers.ts unified mock system.

Docs: ADR-0017 (Dexie→SQLite migration), ADR-0018 (Design System). STACK.md updated. 3 ADRs superseded.

Tests: 429 pass, 0 fail. 2 skipped test files reactivated. fake-indexeddb removed. Coverage baseline created.

[0.20.0] — 2026-06-10

Architecture: AuthContext de-monolithized (642 → 213 lines). 4 modules extracted with tests. Constants consolidated in config.ts. StudentsPage and ImportExportPage de-monolithized.

Fix: wrangler.toml moved to workers/ (Wrangler 4.x compatibility).

Tests: 6 new tests. Total: 172 tests (117 app + 36 workers + 16 schemas + 9 backend).

View full changelog →

Distribuído sob licença MIT.