tane/apps/app_seeds/lib
vjrj 7fd87e6e62 feat(block2): offers logic layer — OffersCubit + OfferMapper (no UI yet)
The testable core of the offers UI slice, transport-agnostic:
- OfferMapper: pure app-sharing-intent (OfferStatus) -> network Offer/OfferType
  mapping; keeps price only for sales, refuses to publish private lots.
- OffersCubit: discover(geohash) streams results; publish() reports the verdict;
  depends on the OfferTransport interface (fake in tests) and degrades
  gracefully offline (null transport = social layer unavailable, never throws).

8 tests green (fake in-memory transport, no relay). Screen/routing/i18n come
next — they need two product decisions (coarse-area capture, relay list).
2026-07-10 02:49:06 +02:00
..
data feat(species): derived verified reference links (GBIF/Wikipedia/Wikispecies) 2026-07-09 22:44:12 +02:00
db feat(inventory): photo-first drafts + on-device OCR (digitization R2+R4) 2026-07-09 21:23:46 +02:00
di feat(block2): wire the social identity into app_seeds (DI, no UI) 2026-07-10 02:44:37 +02:00
domain feat(species): derived verified reference links (GBIF/Wikipedia/Wikispecies) 2026-07-09 22:44:12 +02:00
i18n Merge branch 'main' into claude/trusting-shannon-ff64dd 2026-07-09 23:56:45 +02:00
security feat(backup): sealed backups + printable recovery sheet 2026-07-09 22:32:13 +02:00
services feat(block2): offers logic layer — OffersCubit + OfferMapper (no UI yet) 2026-07-10 02:49:06 +02:00
state feat(block2): offers logic layer — OffersCubit + OfferMapper (no UI yet) 2026-07-10 02:49:06 +02:00
ui Merge branch 'main' into claude/trusting-shannon-ff64dd 2026-07-09 23:56:45 +02:00
app.dart feat(inventory): photo-first drafts + on-device OCR (digitization R2+R4) 2026-07-09 21:23:46 +02:00
main.dart feat(inventory): photo-first drafts + on-device OCR (digitization R2+R4) 2026-07-09 21:23:46 +02:00