What's Changed
- fix(containers): handle missing volume id/name without crashing (#108)
- fix(manifest): remove default WorkManager initializer (#109)
- fix(containers): guard nullable volume id before edit/delete (#107)
- fix(ci): pin Android SDK packages; keep docs local
- fix(ui): cloud sync wizard, device-add polish, insets
- feat(apps): clearer batch-update FAB with collapsing 'Updates' label
- feat(ui): adaptive onboarding, full-page details, HCI fixes; clean up app actions
- truenas-connect: add 6-size previews
- truenas-connect: cap Medium+ content at 640 via AdaptiveFormScreen
- software-information: previews at 6 sizes
- software-information: release notes url opens browser
- local-admin-setup: cap form at 640dp via AdaptiveFormScreen on Medium+; add previews
- software-information: adaptive container (Medium capped 840, Expanded+ InfoCardGrid capped 1100)
- truenas-connect: dedupe local InfoCard/InfoRow to shared expressive components
- software-information: dedupe local InfoCard/InfoRow/ExpressiveSection to shared components
- network-edit: cap form at 640dp via AdaptiveFormScreen; add previews
- api key create: wrap Medium+ form in AdaptiveFormScreen, cap 640 (step 1)
- Nest the active bottom nav pill closer to the bar
- Match Google Photos pill: label-only unselected, icon+label active
- Add adaptive UI kit tier A: window classes, tokens, containers, dialogs
- Add Compose previews for the floating bottom bar
- Widen active bottom nav pill with horizontal icon + label
- Loosen bottom nav spacing and cap destinations at four
- Add debug-only bottom bar preview harness
- Make bottom nav compact with persistent labels; fix #104 portal host
- Add service screens skeletons, floating bottom bar, and search improvements
- Add shimmer skeleton loading for the homepage dashboard
- Add services module HCI/accessibility audit; remove old plan docs
- Fix P0 lockouts and silent failures; refine share screen
- Apply HCI and accessibility Phase 2 fixes across homepage module
- container finished and started work on vms page
- complete container management workflows
- initial containers work
- remove recovery planning documents
- merge: integrate app-wide transport recovery
- add recovery diagnostics
- add deferred transport recovery
- implemented session coordinator
- docs: propose app-wide transport recovery
- merge: integrate TrueNAS session recovery
- fix: recover sessions during refresh retries
- merge: integrate Hilt migration into v0.8.1
- refactor: migrate services and auth view models to Hilt
- refactor: migrate homepage view models to Hilt
- experimental: introduce Hilt with SessionHolder/AppModule (WIP)
- Unify auth via SessionProvider; fix API key login and account switching
- porting wrap up
- part 2 of porting missing endpoints
- starting port of all other endpoint that are missing for the lib
- App resource usage implemented
- remove app control widget (irrelevant)
- New version Download flow added in settings
- feat(widget): add App Control widget with config activity and sync
- session: shared worker bootstrap reusing valid tokens; workers warm persistent cache
- persistent app-wide cache: disk-backed per-server store, cache-first dashboard, hydrate on session bind
- session: persist token ttl/acquiredAt, single recovery owner with dedupe, proactive refresh, long-lived tokens
- pool details minimal header + outlined card; translucent alerts sheet; glassier dashboard card with softer borders
- revert pill bar to translucent nav bar; soften card outlines
- compact pill bottom bar, fix double bottom inset
- translucent widgets, pill bottom bar with hide-on-scroll, shortcut icon fix
- app shortcut icons
- theming tweaks
- haptics for delete, upgrade and rollback states; routable webui host from saved server
- vibration work done
📦 Download
Choose the APK matching your device architecture (ARM64 for most modern phones).
- armv7a — older 32-bit ARM devices
- arm64 — most modern 64-bit devices
- x86_64 — 64-bit emulators / x86 devices
⚠️ Installing a New Version
- APKs are signed with a release certificate.
- If your previously installed build used a different certificate, uninstall it first.