tane/apps/app_seeds/lib
vjrj 33d8b2a4d7 fix(chat): dedupe messages on display, not just in the store
Duplicated bubbles came from the cubit emitting every inbox event to the
screen regardless of whether it was already shown. On opening a chat the
saved message loads from history AND the live subscription hands back the
same stored gift wrap the relay re-delivers — two bubbles. (The store was
already idempotent, but the cubit ignored that for display.)

MessagesCubit now keeps a seen-set (sender+timestamp+text): a re-delivered
or already-loaded message is skipped, and pre-existing duplicates in old
saved history collapse on load too. Arrival order preserved (no resort).
Tests: re-delivered wrap shown once; history-raced-by-live shown once.
2026-07-10 17:02:40 +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 fix(market): search your zone by a coarse prefix, not the exact cell 2026-07-10 16:12:38 +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
main.dart feat(chat): app-wide inbox listener so messages arrive without opening the chat 2026-07-10 16:53:03 +02:00