tane/apps/app_seeds/lib
vjrj 71413f3801 perf(startup): paint a splash immediately, run init off the first frame
main() awaited all of configureDependencies() (open the encrypted DB,
derive the social key, seed/scan the species catalog) before the first
runApp, so nothing painted until init finished — startup jank visible as
skipped frames. Now main() runs runApp immediately with a Bootstrap
widget that shows a native-splash-matching green splash while the heavy
work runs, then swaps in TaneApp. On failure it shows a localized error
with a retry (configureDependencies is idempotent, so retry is safe).

Adds a bootstrap i18n group (en/es/pt/ast) and a widget test for the
splash/error frame.
2026-07-10 17:34:08 +02:00
..
data perf(species): seed the bundled catalog only once per version 2026-07-10 15:46:04 +02:00
db feat(inventory): photo-first drafts + on-device OCR (digitization R2+R4) 2026-07-09 21:23:46 +02:00
di feat(chat): app-wide inbox listener so messages arrive without opening the chat 2026-07-10 16:53:03 +02:00
domain Solve lint issue 2026-07-10 10:34:43 +02:00
i18n perf(startup): paint a splash immediately, run init off the first frame 2026-07-10 17:34:08 +02:00
security feat(backup): sealed backups + printable recovery sheet 2026-07-09 22:32:13 +02:00
services feat(chat): app-wide inbox listener so messages arrive without opening the chat 2026-07-10 16:53:03 +02:00
state fix(chat): dedupe messages on display, not just in the store 2026-07-10 17:02:40 +02:00
ui feat(chat): app-wide inbox listener so messages arrive without opening the chat 2026-07-10 16:53:03 +02:00
app.dart feat(chat): app-wide inbox listener so messages arrive without opening the chat 2026-07-10 16:53:03 +02:00
bootstrap.dart perf(startup): paint a splash immediately, run init off the first frame 2026-07-10 17:34:08 +02:00
main.dart perf(startup): paint a splash immediately, run init off the first frame 2026-07-10 17:34:08 +02:00