-
v0.4.1 — sync 5xx com retry + SSE multilinha Pre-Release
released this
2026-11-06 10:38:19 -03:00 | 0 commits to main since this releaseO que mudou
- Sync 5xx com retry: push/pull mapeiam ApiResult.Server 5xx para SyncOutcome.Transient; SyncWorker retorna Result.retry() (antes caia em Failed sem retry).
- runSync robusto: trata Failed -> SyncPhase.Error e NotConfigured explicitamente (antes o cast push as Success quebraria nesses casos).
- SSE multilinha: SseClient junta blocos data: com \n conforme a spec SSE.
- ApiClient: remove imports sem uso.
Verificado
- testDebugUnitTest verde + assembleDebug + assembleRelease limpos (JDK 21 / AGP 8.13.2 / Kotlin 2.2.20 / SDK 36).
- Release R8 aprox 1,9 MB.
APK: app-debug-v0.4.1.apk anexado — adb install -r app-debug-v0.4.1.apk (se a versão anterior estiver instalada com assinatura diferente, adb uninstall com.labexposed.notas antes).
Downloads
-
v0.4.0 — AGP 8.13 + Kotlin 2.2 + alvo Android 16 Pre-Release
released this
2026-11-06 08:48:52 -03:00 | 3 commits to main since this releaseFatia B — toolchain moderna, alvo Android 16 real:
- Gradle 8.13 · AGP 8.13.2 · Kotlin 2.2.20 · KSP 2.2.20-2.0.4
- compileSdk/targetSdk 36 (Android 16 como alvo, não só compatibilidade)
- Compose BOM 2026.06 (material3 1.4.0 estável — sem betas, a pedido)
- Room 2.8.3 · WorkManager 2.10.1 · navigation-compose 2.9.0 · lifecycle 2.9.0 · activity-compose 1.10.1 · DataStore 1.1.7 · kotlinx-serialization 1.8.1 · coroutines 1.10.2
- Testes unitários verdes; APKs debug + release (R8) OK
Verificado no emulador Android 16 (API 36, Pixel 6): upgrade in-place da v0.3.1 sem bloqueio, criar nota → autosave → Room → lista, editor WYSIWYG/Preview, sem crashes.
APK:
app-debug-v0.4.0.apkanexado —adb install -r app-debug-v0.4.0.apk.Downloads
-
released this
2026-11-05 22:10:32 -03:00 | 4 commits to main since this releaseCorrige o bloqueio de instalação no Android 16 / One UI 8.
O APK v0.3.0 ficou sem
targetSdkVersionno manifest (regressão do bump de versão da v0.2.2: o AGP usouminSdk26 como alvo), e o instalador do Android 16 recusa apps "construídos para versão antiga do Android".targetSdk = 35restaurado;aapt2 dump badgingconfirmatargetSdkVersion:'35'.- Verificado em emulador Android 16 (API 36, Pixel 6):
adb installsem bloqueio, boot limpo, fluxo config → lista (status compacto, busca, empty state) funcionando.
Mesmo conteúdo visual da v0.3.0 (edge-to-edge, chips de sync M3, busca, pull-to-refresh, ícones).
APK:
app-debug-v0.3.1.apkanexado —adb install -r app-debug-v0.3.1.apk(se a versão anterior estiver instalada com assinatura diferente,adb uninstall com.labexposed.notasantes).Downloads
-
v0.3.0 — modernização visual Material 3 Pre-Release
released this
2026-11-05 21:48:41 -03:00 | 5 commits to main since this release⚠️ NÃO INSTALAR — APK sem targetSdkVersion (regressão); o Android 16 / One UI 8 bloqueia a instalação. Use a v0.3.1.
Downloads
-
v0.2.2 — robustez de sync e cancelamento Pre-Release
released this
2026-11-05 21:04:01 -03:00 | 6 commits to main since this releaseCorreções de robustez de sincronização:
- SyncEngine: CancellationException volta a propagar (não vira erro falso)
- SyncWorker: erro de servidor (4xx/5xx) agora é falha definitiva, só falta de rede retenta
- ApiClient: retry com delay() não-bloqueante
- SseClient: cancelar fecha o socket; parse tolera
data:sem espaço - Room v3: migração real 2→3 preservando a fila de sync
APK:
app-debug.apkanexado — instale comadb install -r app-debug.apk.Downloads
-
v0.2.1 — exclusão de notas com sincronização Pre-Release
released this
2026-11-05 07:47:40 -03:00 | 9 commits to main since this release- Botão Excluir no card da lista e na barra do editor, com diálogo de confirmação
- Exclusões entram na fila (
delete) e sobem na próxima sincronização; nota local-only some direto; 404 no servidor limpa a fila - Outras sessões (web/app) recebem o evento SSE
deletede a nota some para elas também
APK assinado (~1,8 MB) para celular real: minSdk 26. Atualiza por cima da v0.2.0 sem perder dados.
Downloads
-
released this
2026-11-04 20:53:44 -03:00 | 11 commits to main since this releaseCorreções (bug reportado em celular real)
- Mudanças só de título/formato/categorias agora entram na fila de sync
- Auto-reconciliação: qualquer nota suja sem entrada na fila é enfileirada a cada rodada
- Sync também ao voltar para o app (ON_RESUME); botão Sincronizar com feedback visual
- WYSIWYG: chamadas de WebView sempre na main thread (corrigido crash que fechava o app)
Novidades
- SSE em tempo real: nota limpa recarrega sozinha quando a Web edita; banner de conflito quando você estava editando; selo 👥 de presença
- Editor com 3 modos: Editar (toolbar Markdown) / WYSIWYG (contenteditable com conversão html→md) / Preview
- Lista rica: chips de filtro por categoria (caminho da árvore) e tags, status de sync por nota, Material 3 dynamic color
APK assinado (~1,8 MB, R8) para celular real: minSdk 26. Instale
notas-v0.2.0.apk, configure URL + token na primeira tela.Downloads
-
v0.1.0 — primeira versão para testes Pre-Release
released this
2026-11-04 19:28:19 -03:00 | 12 commits to main since this releaseCliente Android offline-first (Kotlin + Jetpack Compose) para a plataforma notas-online.
- Room + outbox FIFO com índice único; sync bidirecional via WorkManager (periódico 1h + gatilhos de rede/edição/manual)
- Conflitos: base_hash/409 → servidor vence a nota + cópia local "(conflito)" (idempotente)
- Autosave por ociosidade (10 s), silencioso; editor com categorias multi-seleção
- Validado no emulador Android 15 x86_64 contra o servidor real (criar offline, fila, pull, conflito)
APK assinado (R8, ~1,6 MB) para celular real: minSdk 26. Instale
notas-v0.1.0.apk, configure URL + token na primeira tela.Downloads