tane/apps/app_seeds/test
vjrj b607ddde41 feat(plantare): PlantareService — orchestrate the signed handshake
The app-layer driver that turns local intent into a signed proposal,
counter-signs or declines incoming ones, and reconciles every move into
the local ledger. Cryptography and wire format stay in commons_core;
this owns persistence and orchestration.

- propose(): builds + self-signs a PlantarePledge, records the local row
  (remoteState=proposed, my stub) and sends it. Direction maps to
  debtor/creditor: iReturn = I received and owe, owedToMe = I gave.
- accept(): counter-signs the exact in-hand proposal (verified) and sends
  the doubly-signed copy back, closing the row.
- decline(): notifies the proposer and marks the row declined.
- ingest(): verifies stubs before storing — a bad-signature proposal or a
  half-signed "accept" is dropped; proposals not addressed to me are
  ignored. Pending proposals held in memory keyed by pledge id (relay
  redelivers on reconnect), so accept signs the verified payload.

Wired into DI + Bootstrap alongside the inbox/sync listeners and torn
down/rebuilt on identity switch. SocialSession now exposes the transport.

Tests: full propose→accept close, decline, and the three drop paths with
a records-only transport + real repos. services/data green.
2026-07-14 11:21:46 +02:00
..
data feat(plantare): schema v12 — bilateral signed columns + repo 2026-07-14 11:21:46 +02:00
db feat(plantare): schema v12 — bilateral signed columns + repo 2026-07-14 11:21:46 +02:00
domain feat(seed-saving): per-crop 'how to save this seed' guidance 2026-07-11 07:18:39 +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(plantare): PlantareService — orchestrate the signed handshake 2026-07-14 11:21:46 +02:00
state feat(social): standard NIP-56 reporting — ReportTransport in commons_core, report sheet on offers and chats, local hide + optional block 2026-07-13 08:26:38 +02:00
support feat(chat): usable 1:1 chat — bottom-anchored, Drift-backed, dated 2026-07-11 06:40:50 +02:00
tool feat(species): expand catalog to ~1200 edible species from Wikidata 2026-07-10 02:00:47 +02:00
ui feat(settings): collapse language list into a picker 2026-07-13 18:11:42 +02:00
flutter_test_config.dart feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
no_stream_first_in_widget_tests_test.dart test(fix): stop handover widget test hanging on awaited stream .first 2026-07-12 08:17:12 +02:00