tane/apps/app_seeds/test
vjrj 21ec836bd8 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 style: dart format reflow (no behavior change) 2026-07-09 22:19:43 +02:00
domain feat(species): auto-classify variety species from its label 2026-07-10 02:23:32 +02:00
i18n feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
security feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +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
support i18n: RTL smoke tests, Portuguese locale and a translation guide 2026-07-09 23:06:49 +02:00
tool feat(species): expand catalog to ~1200 edible species from Wikidata 2026-07-10 02:00:47 +02:00
ui fix(nav): inventory is a spoke off the home hub — back arrow, no duplicate drawer 2026-07-10 16:24:54 +02:00
flutter_test_config.dart feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00