tane/apps/app_seeds
vjrj 2e25e34d11 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
..
android refactor(branding): rename app Tanemaki → Tane 2026-07-12 13:04:16 +02:00
assets feat(i18n): full RTL/CJK support — fonts, Japanese locale, directional fixes 2026-07-14 11:11:19 +02:00
drift_schemas feat(plantare): schema v12 — bilateral signed columns + repo 2026-07-14 11:21:46 +02:00
fastlane/metadata/android docs(store): rename Tanemaki → Tane in Play Store metadata and mockups 2026-07-12 13:16:53 +02:00
fonts feat(ui): align inventory + detail with mockups (seed icons, green theme) 2026-07-08 00:14:43 +02:00
integration_test test(ui): scroll to the save button in the taller edit sheet; fix doc lint 2026-07-09 21:58:43 +02:00
ios feat(block2): 'use my location' — set the sharing area without typing a code 2026-07-10 10:25:44 +02:00
lib feat(plantare): PlantareService — orchestrate the signed handshake 2026-07-14 11:21:46 +02:00
linux fix(linux): set GTK window icon from bundled app icon 2026-07-09 12:39:29 +02:00
test feat(plantare): PlantareService — orchestrate the signed handshake 2026-07-14 11:21:46 +02:00
tool refactor(branding): rename app Tanemaki → Tane 2026-07-12 13:04:16 +02:00
web fix(branding): rename remaining Tanemaki → Tane in platform metadata 2026-07-12 13:15:33 +02:00
windows fix(branding): rename remaining Tanemaki → Tane in platform metadata 2026-07-12 13:15:33 +02:00
.gitignore feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
.metadata feat(inventory): photo-first drafts + on-device OCR (digitization R2+R4) 2026-07-09 21:23:46 +02:00
analysis_options.yaml feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
build.yaml feat(inventory): informal quantity scale (number + unit) + seed/plant lots 2026-07-08 10:51:02 +02:00
dart_test.yaml test: global 90s timeout + document the hang-proof test workflow 2026-07-11 00:26:55 +02:00
pubspec.yaml feat(i18n): full RTL/CJK support — fonts, Japanese locale, directional fixes 2026-07-14 11:11:19 +02:00
README.md feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
slang.yaml feat(block1): variety detail + edit screen with reactive lots 2026-07-07 15:56:03 +02:00

tane

A new Flutter project.

Getting Started

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.